Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Userform lenta

Ultimo Aggiornamento: 05/06/2017 11:37
Post: 6
Registrato il: 29/12/2016
Città: REGGIO CALABRIA
Età: 43
Utente Junior
2007, 2010
OFFLINE
01/06/2017 10:04

Buongiorno a tutti,
premetto che non sono un programmatore e quel poco che sono in grado di fare con vba è dato da letture, scopiazzamenti di pezzi di codice adattati alle mie esigenze e soprattutto prove su prove senza alcuna base tecnica ne teorica(non ho mai studiato informatica)

Dopo la doverosa premessa passo al mio problema.
sto creando un gestionale per la mia azienda utilizzando excel.
So che lo strumento più adatto sarebbe Access ma in questo momento non possiamo permetterci investimenti neanche piccoli, abbiamo tuttavia l'esigenza di velocizzare alcuni processi che riguardano la gestione di anagrafiche di aziende e dipendenti e i relativi corsi di formazione a cui questi dovranno partecipare negli anni.

Ho realizzato inizialmente un gestionale gestibile direttamente dalle pagine in excel (se vorrete allegherò anche quello) che però ogni tanto si inceppava ma soprattutto considerando gli utenti medi molte cose non erano facilmente intuibili.

Ho dunque pensato di utilizzare le userform riscrivendo per filo e per segno quanto fatto nella precedente versione.

Il punto è che utilizzando le userform, non ne capisco il motivo, le pagine in cui si inseriscono i dati (soprattutto DBAPP, AVANZAMENTO e DBCONFERIMENTI) risultano lentissime sia in fase di inserimento dei dati al click del bottone dell'userform, sia entrando direttamente dentro la pagina e provando a modificare i dati di una cella.

Riuscite ad aiutarmi per velocizzare il tutto?

Allego il file privo di dati sensibili e di password.

Grazie
Post: 1.367
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
01/06/2017 10:27

ciao
ELIMINA (non copia) quei fogli e li ricrei, tanto hanno solo intestazioni.

Fossi in te eliminerei anche calendario (magari fai un copia incolla valori temporaneamente su altro file per non riscrivere il tutto).

Non entro nel merito del resto in quanto mi sembra molto "pasticciato"

Infine, non te la prendere, ma si concilia male:

"...premetto che non sono un programmatore e quel poco che sono in grado di fare con vba è dato da letture, scopiazzamenti di pezzi di codice adattati alle mie esigenze e soprattutto prove su prove senza alcuna base tecnica ne teorica(non ho mai studiato informatica)..."


con:

"...sto creando un gestionale per la mia azienda utilizzando excel. ..."

saluti
Domenico
Win 10 - Excel 2016
Post: 6
Registrato il: 29/12/2016
Città: REGGIO CALABRIA
Età: 43
Utente Junior
2007, 2010
OFFLINE
01/06/2017 12:52

Ciao grazie per la risposta.

A dire il vero avevo già provveduto a fare quanto mi hai suggerito, le pagine infatti sono "nuove" e non copiate.
Il punto è che non appena inserisco 2.3 righe di dati comincia a rallentare parecchio.

Per quanto riguarda l'ossimoro tra il mio non saper fare ed il mio voler fare capisco possa essere un controsenso ma ho necessità di "gestire" più di 150 clienti in una provincia vasta dal po' al confine con la toscana e son da solo a far tutto ciò.

Se potessi anche darmi una mano sul "pasticciaccio" te ne sarei grato

Grazie ancora
Post: 1.369
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
01/06/2017 18:20

Ciao
non intendevo esprimere un concetto di "ossimoro" né mettere in discussione la tua volontà di fare, ma semplicemente dire che non va bene non avere un minimo di conoscenze di base quando si affronta un gestionale di tale portata, e ne stai constatando i risultati.

Comunque il grosso problema del tuo file è la quantità di formule e la loro struttura.

Fai questa prova:
menu file > opzioni > formule > opzioni di calcolo metti manuale
poi prova ad inserire quello che vuoi dove vuoi e constaterai che è un fulmine. Ricordati di rimettere in automatico.

Ti faccio un esempio per spiegarmi meglio: tuo foglio DBAPP, è vuoto, eppure se provi a scriverci qualcosa, ci mette una vita a recepirlo. Il motivo è presto detto: quel foglio, fino a riga 5.000 e col. Y (quindi per 125.000 celle) è la base di riferimento di una mole di celle presenti in diversi fogli del tuo lavoro.
Prova in tale foglio DBAPP a metterti in una cella vuota qualsiasi e poi dal menu formule, clicca su "individua dipendenti" e fai doppio click sulla punta della freccia che appare; come potrai notare c'è l'elenco di tutte le celle e di tutti i fogli cui quella singola cella fa riferimento, di conseguenza vengono ricalcolate tutte quelle formule prima che il dato immesso sia disponibile.

Spero di aver chiarito.

Quel documento andrebbe rifatto completamente sostituendo quasi tutte le formule con una gestione in vb.

Questo è il mio modesto parere.

Ora se in nessuno di quei fogli scrivi manualmente, cioè tutto quello che devi scrivere lo inserisci tramite le userform, allora potresti disattivare il calcolo automatico all'apertura delle varie userForm e riattivarlo alla chiusura; in questo modo il ricalcolo verrebbe fatto una sola volta e non ogni volta che inserisci un dato in una cella qualsiasi.

saluti


[Modificato da dodo47 01/06/2017 19:00]
Domenico
Win 10 - Excel 2016
Post: 7
Registrato il: 29/12/2016
Città: REGGIO CALABRIA
Età: 43
Utente Junior
2007, 2010
OFFLINE
05/06/2017 11:14

Ammetto di non essere in grado da solo di sostituire tutte le formule (o quasi) con la gestione vb. Però d'altra parte non posso inserire manuale e automatico in apertura e chiusura perchè non sarò l'unico a lavorare sul file.

:(
Post: 1.376
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
05/06/2017 11:37

Non lo devi fare manualmente, ad inizio e fine di ciascuna macro (fermo restando quanto precisato sull'input dei dati):

Sub TuaSub()
Application.Calculation = xlCalculationManual

'tue istruzioni....

Application.Calculation = xlCalculationAutomatic
End Sub

Ti ricordo che è bene inserire una gestione di errori che, nel caso, ripristini comunque il automatico il calcolo.

saluti
Domenico
Win 10 - Excel 2016
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
tagliare riga al verificarsi di condizione (2 messaggi, agg.: 31/03/2018 15:22)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 19:35. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com