cicli di scrittura dati e copia dati secondo una griglia predefinita

ocheloso

Nuovo Utente
30 Apr 2016
1
0
0
Buonasera a tutti,
colgo l'occasione per fare i complimenti al forum e ai suoi partecipanti e da neofito di VBA per excel approfitto del vostro aiuto.

Dovrei risolvere un problema di j cicli di una macro, dove: scrivo al ciclo j-esimo in due celle predefinite dei valori che vado a leggere in una tabella rispettivamente colonna A e colonna B alla riga j+1 poi faccio dei calcoli e incollo il risultato in un file nella cella risultante sempre dalla stessa tabella colonna C alla riga j+1, poi copio lo stesso risultato in un altro file e copio dei successivi calcoli in un altro file nella cella risultante sempre dalla stessa tabella dei riferimenti alla colonna D riga j+1

Comunque per essere piu preciso:
descrivo dettagliatamente la macro: al ciclo j-esimo si deve:

scrivere nel file test/ foglio "test" /in cella O2 e P2 due numeri che si trovano leggere nel file macro/ foglio "Tabelle input" rispettivamente la colonna A e la colonna B alla riga j+1

si deve far calcolare la macro 2 del file test

si deve filtrare nel foglio "db" del file test il campo in b2="NEWS"

si deve aprire il file portafoglio

si deve aprire il file ottimizzazione

si deve copiare il filtro su indicato del file test e incollare solo i valori nel file Ottimizzazione/ foglio dati/ cella secondo la tabella del file macro colonna C riga j+1

si deve incollare lo stesso filtro solo i valori nel file Portafoglio/portafoglio globale/cella A12 (uguale ogni ciclo)

si deve copiare dal foglio "sintesi" del file portafoglio le celle D2:D36 nel file ottimizzazione foglio "DB ottimizzazioni" nella cella che si trova leggendo nel file macro foglio tabelle input nella colonna D, riga j+1 esima

si fa girare una macro 2 nel file portafoglio (per pulire i dati inseriti) si salva e si chiude il file portafoglio

si salva e si chiude il file ottimizzazione

si deseleziona il filtro nel foglio db del file test attivato in precedenza

si fa girare la macro 2 del file test per pulire i dati

........
da qui inizia un nuovo ciclo j+1 e cosi fino alla fine della macro; i cicli sono 132.


La macro in se dovrebbe prevedere penso una sub e diverse funzioni legate alla tabella con i riferimenti dei numeri e delle celle, ma non so come mettere insieme piu cicli e sub e funzioni insieme insomma sono alle prime armi.....
Qualcuno puo aiutarmi a scrivere la macro?

Grazie in anticipo della disponibilità

:byebye:
 
il codice che scrivi per excel deve essere all'interno di "Sub - End Sub"
puoi definire "sub" che racchiudono parti comuni e richiamarle con la "call" all'interno di altro codice

puoi evitare il "ballo" dei fogli durante l'esecuzione con "Application.ScreenUpdating = False"

le variabili che usi all'interno del codice puoi dichiararle in modo esplicito con "Option Explicit" (codice più ordinato e chiaro)
oppure usarle quando ti capita senza dichiarare nulla

puoi dichiarare ciascun foglio una sola volta con, per esempio, "Set ws_Samples = Worksheets("Samples")"
e poi indirizzare con "ws_ws_Samples.Activate"
(se ti dovesse succedere di cambiare nome al foglio, cambi una sola definizione

i cicli li puoi gestire con "for", "do" o altro che tu preferisca

fai riferimento alle celle con "Cells(riga, colonna).Value = variabile" oppure al contrario "variabile = Cells(riga, colonna).Value"

poi riferendoti a qualche libro, ti suggerisco di cominciare a scrivere un po' di codice,
sarà più facile aiutarti e sarò ben felice di farlo
ciao
Marino
 
giusto per ... partire
Codice:
Sub Macro1()

Set ws_Foglio1 = Worksheets("Foglio1")
Set ws_Foglio2 = Worksheets("Foglio2")
Set ws_Foglio3 = Worksheets("Foglio3")

colonna = 12
For riga = 6 To 12
    ws_Foglio1.Cells(riga, colonna).Value = riga * colonna
    ws_Foglio2.Cells(riga, colonna).Value = 2 * riga * colonna
    ws_Foglio3.Cells(riga, colonna).Value = 3 * riga * colonna
Next

End Sub
 

Discussioni simili