Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Calcolare foglio excel tramite VBA

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Calcolare foglio excel tramite VBA

Postdi mattia138 » 27/08/18 11:14

Buongiorno a tutti,
Sono nuovo nel forum e colgo l'occasione per salutare tutti.
La ragione per cui creo questo topic è chiedere aiuto per quanto riguarda un file excel purtroppo poco gestibile, pesa solo 2,4MB ma nonostante questo è talmente popolato di formule (principalmente cerca vert) che ogni variazione richiede almeno 1 minuto di calcolo.
Attualmente il listino dell'azienda per cui lavoro è basato su excel, cercherò di riassumere brevemente la composizione che è piuttosto articolata:

Il foglio "padre" ha una prima parte di colonne che fungono da matrice, per identificare se il codice indicato nella colonna AN è presente su una o più macchine, tale matrice, ha riportato su ogni colonna (da colonna A a colonna AM) la macchina di riferimento.
Nella colonna AO riporto la descrizione dei componenti.
Nella colonna AW vi è una formula che consulta la matrice e se nella riga il codice è presente su più macchine mi riporta "comune" se invece è presente solo su una macchina mi riporta "specifico".
Nella colonna AX mi identifica l'appartenenza del codice a un determinato gruppo di codici, se "base", "optional", "kit".
Quindi nella colonna AY la combinazione dei precedenti, compresa la macchina, mediante concatena, che mi genera un codice parlante.
Nella colonna AZ vi è un cerca verticale che mediante i concatena in AY, interroga un foglio apposito (foglio 2) in cui ho riportato i markup che voglio applicare.
Per finire, vi sono delle moltiplicazioni per calcolarmi il listino mediante i costi moltiplicati per i markup che mi riporta in AZ.

Nel foglio 2 quindi, come detto sopra, ho riepilogato i markup, in modo che so sempre esattamente cosa è stato applicato e se voglio cambiare qualcosa agisco cambiando un solo numero

Nel foglio 3 ho riportato invece i diversi scenari che mi aspetto, tramite dei semplici riferimenti a "n" fogli. Mi è indispensabile per capire se il listino che voglio applicare mi genera un aumento considerevole rispetto quello attuale.

"n" fogli, ciascuno corrispondente a una macchina, in cui la colonna chiave è la "i" nel quale riporto i codici, in cui tramite cerca vert mi riporto la descrizione, indicata nel foglio padre e i prezzi anch'essi indicati nel foglio padre. Ho scelto di mantenere "manuale" la colonna "i" perché desidero che per ogni modifica devo capire esattamente dove collocare un codice.

Purtroppo mi accorgo che è molto articolato, ma non riesco a farne a meno che utilizzarlo in questo modo per avere tutto sotto controllo.

Esistono soluzioni per velocizzarne il calcolo? I cerca vert so che sono deleteri per questo file, ma non ho formule sostitutive che riescano a fare questo lavoro, ho provato anche con un indice/confronta, ma peggiora la situazione.
Grazie anticipatamente.
mattia138
Newbie
 
Post: 1
Iscritto il: 23/08/18 08:58

Sponsor
 

Re: Calcolare foglio excel tramite VBA

Postdi Anthony47 » 27/08/18 23:56

Purtroppo senza il file sottomano solo uno stregone puo' dirti cosa fare.
Se ritieni che sia il Cerca.Vert la funzione che rallenta di piu', allora puoi valutare di ordinare la tabella di ricerca in ordine crescente di colonna cercata, e poi usare il parametro [Intervallo] pari a Vero. In questo modo, infatti, la ricerca e' fatta per convergenze successive, molto veloce; con [Intervallo] pari a Falso invece la ricerca puo' solo essere consecutiva, necessariamente piu' lenta. Ma con Vero se la chiave non viene trovata invece che #N/D viene restituito il valore appena inferiore alla chiave cercata.

Oppure mettere in una colonna di servizio (o piu' colonne) i risultati di funzioni lente che ora vengono calcolate all'interno di molte formule e sfruttare nelle molte formule questo unico calcolo.
Vanno anche pesate le formule che usano funzioni "volatili"; ad esempio Scarto, Indiretto, Casuale, Oggi, Adesso, alcune formulazioni di Somma.Se e alcune altre meno comuni.
Queste funzioni infatti si ricalcolano in continuazione (e a cascata le formule che ne usano il risultato), non solo quando cambiano i propri riferimenti.

Se invece riesci ad allegare un file dimostrativo allora forse si puo' guardare piu' in dettaglio. Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17442
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Calcolare foglio excel tramite VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti