Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[EXCEL] Macro semplici eppure...

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

[EXCEL] Macro semplici eppure...

Postdi RPD » 19/02/09 16:15

... non sono capace!!
Ciao a tutti, sto studiando il vba per saper districarmi in qualche macro necessaria qua e là nei miei fogli di calcolo ma ce ne sono un paio che mi servirebbero subito e non mi lasciano il tempo di aspettare la fine del manuale vba... La prima mi serve per alleggerire le dimensioni della cartella e ora la spiegherò, per la seconda devo vedere come va la prima. E' presto detto: nella cartella "RP" ho, tra gli altri, un foglio di lavoro anch'esso denominato "RP" nel quale vi è un imponente archivio da 63000 righe di formule. Dal momento che solo una parte di tali valori mi interessa, pensavo a una macro che mi cancellasse le formule in tutte le righe inutili: queste possono essere facilmente individuate perché contengono il valore "100" nella colonna E. Preferisco che tale macro cancelli le formule nelle riga piuttosto che eliminare tutta la riga per non dover ricontrollare i tanti vari riferimenti incrociati che ci sono. Non credo si tratti di un comando difficile da formulare sotto forma di macro (alla fine si tratta solo di trovare tutti i valori "100" nella colonna E e fare "cancella formule" in tutte le righe corrispondenti), però purtroppo da solo non sono ancora in grado di farlo.
Grazie a tutti!
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Sponsor
 

Re: [EXCEL] Macro semplici eppure...

Postdi Anthony47 » 19/02/09 16:21

Basta un filtro su colonna E:
-selezione colonna E, Menu /Dati /Filtro /Filtro automatico
-selezioni lla freccina in E1, scegli 100
-ti saranno selezionate tutte le righe che hanno il valore 100; selezioni dalla prima all' ultima e Cancelli

Attenzione: se in col E ci sono piu' di 1000 valori diversi allora potrebbe essere necessario ripetere piu' volte il processo di Filtro/cancella.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 24/02/09 21:03

Grazie Anthony,
non conoscevo le funzionalità del filtro automatico, ora con quello ho risolto.
Ora però per un'altra operazione che dovo fare credo che non si possa prescindere da una macro... in sostanza dovrei semplicemente far sì che ad ogni lancio della macro il valore numerico presente nella cella A1 del foglio "Archivio" della cartella "N3" incrementi di un'unità. Come si fa un comando del genere?
Grazie tante
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Re: [EXCEL] Macro semplici eppure...

Postdi Anthony47 » 24/02/09 22:51

Per il nuovo quesito, dovresti mettere nel codice della macro di cui parli qualcosa come
Codice: Seleziona tutto
Workbooks("N3.xls").Worksheets("Archivio").Range("A1").value = _
   Workbooks("N3.xls").Worksheets("Archivio").Range("A1").value +1

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 24/02/09 23:07

Come prevedevo erano comandi semplici, grazie ai vostri consigli riuscirò ad applicarli anche in altre circostanze!
Infine un'ultima cosa: mi manca un'ultima parte di codice che ad ogni lancio di macro copi l'intervallo fisso "D4:Q4", Foglio "RP6", Cartella "N3" nella cartella "Storico", Foglio "Lista", prima cella vuota cercando dall'alto verso il basso della colonna D. Purtroppo con il solo registratore non sono riuscito a venirne a capo... Grazie infinite per la pazienza!
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Re: [EXCEL] Macro semplici eppure...

Postdi Tribuno » 25/02/09 00:04

Ciao RPD,

per la prima riga vuota di colonna D:

Riga_Vuota = Range("D65356").End(XlUp).Row + 1

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 25/02/09 14:14

Il comando suggerito da Tribuno, se non ho capito male, individua la prima cella vuota partendo dal basso. Ma come devo fare per specificare che la ricerca va fatta in un determinato foglio di lavoro esterno alla cartella di partenza? Se poteste farmi un esempio, i nomi di fogli e cartelle sono quelli riportati nel mio msg precedente. Inoltre quale comando deve seguire per incollare i soli valori dell'intervallo selezionato? [anche Anthony al riguardo che propone?]
Grazie
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Re: [EXCEL] Macro semplici eppure...

Postdi Anthony47 » 25/02/09 17:30

La sintassi per riferimenti ad altra cartella e' quella che ti ho dato per l' incremento di A1.
Quindi qualcosa come:
Codice: Seleziona tutto
    Workbooks("N3.xls").Worksheets("RP6").Range("D4:Q4").copy Destination:= _
       Workbooks("Storico.xls").Worksheets("Lista").Range("D65536").End(XlUp).Offset(1,0)


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 25/02/09 17:45

Grazie Anthony, il pezzo di codice che mi hai suggerito funziona proprio come mi serviva. Solo come posso specificare che mi incolli soltanto i valori delle celle copiate e non le formule?
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Re: [EXCEL] Macro semplici eppure...

Postdi Anthony47 » 25/02/09 18:07

Queste, invece di quanto scritto prima:
Codice: Seleziona tutto
Workbooks("N3.xls").Worksheets("RP6").Range("D4:Q4").copy
Workbooks("Storico.xls").Worksheets("Lista").Range("D65536").End(XlUp).Offset(1,0).PASTESPECIAL PASTE:=XLPASTEVALUES, _
OPERATION:=XLNONE, SKIPBLANKS:=FALSE, TRANSPOSE:=FALSE

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 28/02/09 20:25

Grazie Anthony, anche questa volta mi hai aiutato a superare il punto morto a cui mi ero arrestato!
La mia macro adesso funziona benissimo, il che mi dà una particolare soddisfazione dato che è tra le mie prime. Approfitto per chiederti un'ultima cosa: dovendo reiterare l'operazione comandata dalla macro circa un migliaio di volte, esiste una proprietà tipo "repeat" che inserita nel codice mi ripete l'operazione un numero specificato di volte? Non sarò mica costretto a ricorrere al mezzuccio (così poco elegante) di copiare la parte di codice interessata ed incollarla nell'editor tot volte quante sono le reiterazioni necessarie... oppure è l'unico modo?
Grazie
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53

Re: [EXCEL] Macro semplici eppure...

Postdi Anthony47 » 28/02/09 23:24

Devi inserire il codice in un ciclo del tipo For I=1 to 1000 / Next I, oppure un ciclo simile basato su quei parametri che governano la ripetizione della tua macro.

Se non ti basta questo spunto allora descrivi meglio appunto questi aspetti.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro semplici eppure...

Postdi RPD » 28/02/09 23:58

La macro che dovrei reiterare 3000 volte ha questo codice:
Codice: Seleziona tutto
Windows("L3.xls").Activate
Worksheets("Archivio").Range("A1").Value = Worksheets("Archivio").Range("A1").Value + 1
    Calculate
    Worksheets("RP6").Range("D6:Q6").Copy
    Workbooks("Storico.xls").Worksheets("Lista").Range("D65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Sheets("RP1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("cRP1").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Sheets("RP5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("cRP5").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Sheets("RP6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("cRP6").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Windows("STORICO.xls").Activate

A questo punto dove e in che modo dovrei inserirvi le istruzioni del ciclo?
RPD
Utente Junior
 
Post: 35
Iscritto il: 21/12/08 16:53


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Macro semplici eppure...":


Chi c’è in linea

Visitano il forum: saxas e 12 ospiti