Condividi:        

Avvio Macro

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

Avvio Macro

Postdi Fabiolan » 12/02/17 19:22

Salve ragazzi, sono nuovo qui nel forum e ho bisogno di aiuto.
Ho registrato una Macro in Excel e ho bisogna che questa venga lanciata automaticamente ogni cambio mese.
Come posso fare?
Grazie
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Sponsor
 

Re: Avvio Macro

Postdi patel » 12/02/17 19:49

nel modulo di Questa_cartella_di_lavoro inserisci
Codice: Seleziona tutto
Private Sub Workbook_Open()
if day(date) <> 1 then exit sub
' segue il tuo codice
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Avvio Macro

Postdi Fabiolan » 12/02/17 20:51

Ciao, quale cadice devo inserire?
Il codice generato da Excel nel Modulo?
Grazie
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 12/02/17 21:00

Inoltre, la macro con quel codice, si attiva solo la prima volta che apro il foglio e il giorno è diverso dal 1 o ogni volta che apro il file?
Grazie
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi patel » 12/02/17 21:09

Ciao, quale cadice devo inserire? - non mi sembra una domanda sensata
la Sub Workbook_Open() viene lanciata ogni volta che il file viene aperto, se è lunedi procede col tuo codice registrato, altrimenti esce senza eseguirlo
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Avvio Macro

Postdi Fabiolan » 12/02/17 21:13

Eh, ma per la funzione che deve eseguire, ho la necessità che venga eseguita una sola volta...durante il primo del mese, non deve più attivarsi.
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 12/02/17 21:14

Scusami la domanda, ma perché domanda stupida?
Cosa devo inserire? Il codice della macro generato nella sezione Modulo?
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi ricky53 » 12/02/17 22:49

Ciao,
Fai come ti aveva scritto Patel: copia il codice e di inseriscilo in "Questa_cartella_di_lavoro".
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Avvio Macro

Postdi Anthony47 » 13/02/17 02:25

Ciao Fabiolan, benvenuto nel forum.
Ho registrato una Macro in Excel e ho bisogna che questa venga lanciata automaticamente ogni cambio mese.

Mi permetto di suggerire una cosa appena piu' articolata di quanto suggerito da patel, che attiva la macro tutte le volte che il file viene aperto il primo giorno del mese.
1) Come ultima istruzione della macro che hai registrato, subito prima di End Sub, scrivi in una cella libera del file la data di esecuzione; se la cella (libera) prescelta fosse Foglio3!Z1 l'istruzione relativa sara'
Codice: Seleziona tutto
ThisWorkbook.Sheets("Foglio3").Range("Z1") = Now

2) Poi inserisci questa macro nel Modulo di classe Questa_Cartella_Di_Lavoro del vba.
Codice: Seleziona tutto
Private Sub Workbook_Open()
If Month(ThisWorkbook.Sheets("Foglio3").Range("Z1")) <> Month(Now) Then
    Call LaTuaMacroRegistrata
End If
End Sub

In questo modo la macro si attiva tutte le volte che all'apaertura del file il mese sia cambiato rispetto all'ultima volta che la macro fu eseguita; in questo modo, ad esempio, puoi fare Capodanno in pace e la macro partira' la prossima volta che apri il file.

Per localizzare il modulo Questa_Cartella_Di_Lavoro guarda qui:
viewtopic.php?f=26&t=103893&p=622593#p622593

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

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 10:57

Ciao, la tua soluzione è perfetta.
Solo un'ultima cosa, come posso fare per far si che la macro venga eseguita in ogni foglio tranne un specifico foglio..essendo il codice presente in Questa_cartella di lavoro, viene eseguito su ogni foglio..
Grazie :)
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 12:44

Come non detto, ho inserito un For e funziona!
Grazie
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 14:43

Scusate ragazzi, ma nei vari test che ho effettutato, il For sembra non funzionare bene..
ho usato questo codice
Codice: Seleziona tutto
Private Sub Workbook_Open()
For Each Worksheet In Worksheets
    If Worksheet.Name <> "no" Then
        If Month(ThisWorkbook.Sheets("Foglio1").Range("BD5")) <> Month(Now) Then
            Call Macro2
        End If
    End If
Next Worksheet
End Sub



dove sbaglio?
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Anthony47 » 13/02/17 15:53

Quanto ti abbiamo suggerito serve ad avviare la tua macro; cosa fa la tua Macro2 lo ignoriamo, quindi per me la tua domanda ("come posso fare per far si che la macro venga eseguita in ogni foglio tranne un specifico foglio") e' incomprensibile.
Se la tua macro fa riferimento al foglio attivo e hai bisogno di eseguirla su ogni foglio (eccetto uno) allora prova a modificare la macro come segue:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Dim Wk
For Each Wk In Worksheets
    If Wk.Name <> "no" Then
        Wk.Select
        If Month(ThisWorkbook.Sheets("Foglio1").Range("BD5")) <> Month(Now) Then
            Call Macro2
        End If
    End If
Next Wk
End Sub

NB: Per il futuro evita di assegnare a "variabili" il nome di "oggetti" excel e ti troverai bene.

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

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 17:20

Niente, ci rinuncio.
Il tuo codice funziona, ma c'è una cosa strana.
La macro serve per spostare delle "x" da un intervallo all'altro e rendere il precedente intervallo (quello contenente le "x") vuoto.
Bene, succede che la macro funziona solo per un foglio (in particolare il foglio "1" ), ma invece di spostare solamente, mi cancella anche i bordi, nonostante non fosse previsto quando ho registrato la macro.
Se potete aiutarmi, spero per l'ultima volta, ve ne sarai grato.
Grazie

https://drive.google.com/open?id=0B-zWA ... U9QVDJwUUE
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 17:42

Allora, il problema dei bordi, l'ho risolto.
Però, la Macro viene eseguita solo sul foglio immediatamente successivo a quello in cui essa non deve agire, oppure è semplicemente il primo dopo il foglio da esclude (il foglion da escludere è il primo foglio da sinistra).
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 13/02/17 19:48

Si, ho registrato nuovamente la Macro, però funziona solo sul primo foglio su cui lho registrata
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Anthony47 » 13/02/17 23:55

Ho seguito con pazienza il codice della Macro2 e mi pare che essa possa essere ridotta a
Codice: Seleziona tutto
Sub Macro2()
    Range("F5:BA244").Copy Destination:=Range("B5")
    Range("AX5:BA244").ClearContents
    Application.CutCopyMode = False
    ThisWorkbook.Sheets("IMPIANTI").Range("B4") = Now
End Sub

Avendo popolato un po' a caso i vari fogli mi pare che il comportamento ottenuto sia quello di shiftare verso sinistra tutte le attivita' di 4 settimane, che forse era l'obiettivo di Macro2.

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

Re: Avvio Macro

Postdi Fabiolan » 14/02/17 13:19

Ciao grazie, per l'interessamento.
Mi dispiace ma utilizzando la tua macro è ritornato il problema dei bordi che avevo risolto con la nuova macro ed è rimasto il problema che la macro funziona solo per il foglio in cui l'ho registrata, mentre, necessito che venga applicata a tutti i fogli tranne quello denominato "IMPIANTI".
Come posso procedere secondo te?
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 14/02/17 21:08

Vi allego il file aggiornato con la nuova Macro..il problema ora è solo che essa si attiva solo per il foglio "1" e invece si deve attivare per tutti i fogli (escluso il foglio "IMPIANTI")

https://www.dropbox.com/s/19fqsz92r1okb ... .xlsm?dl=0
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Re: Avvio Macro

Postdi Fabiolan » 14/02/17 23:38

Ragazzi, finalmente ci sono riuscitoooo!
Praticamente, mi ostinavo a inserire il For in Questa_Cartella di lavoro, invece, lo dovevo inserire nella Macro!
Adesso funziona.
L'unica cosa, come posso fare far si che alla fine, si ritorni al primo foglio e non che resti all'ultimo?
In Questa_Cartella ho inserito : Worksheets."IMPIANTI").Select, però non funziona
Fabiolan
Utente Junior
 
Post: 65
Iscritto il: 12/02/17 19:19

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Avvio Macro":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti