Primo: ti vedo male allora.
Secondo: cosa intendi per automaticamente? Che premi "un bottone" e questo ti porta i dati nell'altro foglio? Che lo deve fare all'apertura del foglio origine o del foglio destinazione? Che lo deve fare quando tu pensi "Adesso copia"?
EDIT: Comunque vuoi sapere qual è il modo migliore per avere una buona approssimazione del programmino che ti serve?
Apri il foglio origine.
Poi fai Strumenti - Macro - Registra nuova macro (se hai Office 2007 o 2010 devi abilitare il "tab" Developer nel ribbon).
A questo punto esegui manualmente le operazioni che ti servono per la gestione della manutenzione straordinaria del mezzo.
Quando hai finito fai "Stop registrazione".
A questo punto avrai ottenuto una macro (che è un programma VBA) che approssima abbastanza quello che ti serve.
Ovviamente non è parametrico perchè sarà "cablato" sui dati selezionati quando hai fatto le operazioni manualmente.
Quello che devi fare tu con il programma già fatto dal punto di vista della logica è proprio renderlo parametrico.
Gli oggetti che si utilizzano hanno gli stessi "nomi" di quelli comunemente utilizzati (workbook, worksheet ecc. ecc. ecc.)
La cosa più complicata è proprio l'object model di Excel perchè via codice puoi pilotare proprio tutto.
Ultima modifica di FunMBnel; 13/09/2010 alle 11:19
Neutrofilo, normofilo, fatalistofilo: il politically correct della meteo
27/11: fuori a calci i pregiudicati. Liberazione finalmente.
Ho visto..
So programmare ad oggetti in C++ perciò il VBA mi risulta abbastanza comprensibile.
Una sera che non ho nulla da fare mi metterò lì e proverò a parametrizzare il tutto.. (che poi a me basterebbero dei gran cicli di for con all'interno le condizioni da filtrare)
Per far eseguire le istruzioni senza il click su bottone è un casino?
![]()
C'è una macro che si chiama auto_open che dovrebbe esistere ancora per retrocompatibilità. In questo caso se nella auto_open chiami la tua funzione ecco che questa parte quando apri il foglio.
Ma il mio suggerimento è di metterlo in una toolbar (custom per esempio; o nella barra di accesso rapido di Excel 2007+).
Magari nella macro ci metti anche l'apertura dei fogli origine e destinazione così ti basta premere il pulsante nella toolbar per fare tutto.
Quando ti guardi il VBA focalizzati sugli oggetti Range e Cell.
Se devi fare delle operazioni massive su tutto il foglio segnati l'oggetto UsedRange.
Righe e colonne (che si referenziano in vari modi) sono Range pure loro se te lo stessi chiedendo.
Nota a margine: VBA è drammaticamente lento nel pilotare le proprietà delle singole celle. Ergo se hai fogli con migliaia di righe l'uso di for innestati sulle singole celle potrebbe diventare pesantuccio (per chi aspetta la risposta).
Nel caso parliamo di come evitare il problema.![]()
Neutrofilo, normofilo, fatalistofilo: il politically correct della meteo
27/11: fuori a calci i pregiudicati. Liberazione finalmente.
Segnalibri