Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

NON vedere l'esecuzione della 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

NON vedere l'esecuzione della macro

Postdi Lyke73 » 19/11/14 02:07

Ciao a tutti non riesco a capire dove sbaglio, ho inserito nelle macro
Codice: Seleziona tutto
Application.ScreenUpdating = False
Application.EnableEvents = False

alla fine ovviamente diventano True, ma continuo a vedere l'esecuzione della macro, riuscite a trovare l'errore?
Allego le due macro in questione
Codice: Seleziona tutto
Sub seleziona_dati()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim D1, D2 As Date
Dim tempoimpiegato As String
D1 = Time
Sheets("Foglio1").Unprotect Password:="password"
Sheets("Foglio2").Unprotect Password:="password"
Sheets("Foglio1").Select
 For riga = 2 To 91
 Sheets("Foglio1").Select
    Range("a" & riga).Copy
Range("U1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
       
Call filtro

Range("DJ1").Copy
Sheets("Foglio2").Select
Columns("C").Select
Colonna = ActiveCell.Column
Cells(65535, Colonna).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Sheets("Foglio1").Range("Dl1").Copy
Sheets("Foglio2").Select
Columns("D").Select
Colonna = ActiveCell.Column
Cells(65535, Colonna).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Next

Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True
Sheets("Foglio1").Protect Password:="password"
Sheets("Foglio2").Protect Password:="password"
D2 = Time
tempoimpiegato = Format(D2 - D1, "hh:mm:ss")
MsgBox "Tempo impiegato: " & tempoimpiegato
End Sub

Codice: Seleziona tutto
Sub filtro()

Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Foglio1").Unprotect Password:="password"
Range("H1").AutoFilter Field:=8, Criteria1:="x"
Range("B65536").End(xlUp).Offset(0, 0).Select
Selection.Copy
Range("DM1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("H1").AutoFilter
Sheets("Foglio1").Protect Password:="password"
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

Buonanotte a tutti.
excel 2007
Lyke73
Utente Junior
 
Post: 21
Iscritto il: 27/10/14 11:07

Sponsor
 

Re: NON vedere l'esecuzione della macro

Postdi scossa » 19/11/14 12:33

Prova ad eliminare nella sub filtro() tutte le righe

Codice: Seleziona tutto
Application.ScreenUpdating .....
Application.EnableEvents ....
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: NON vedere l'esecuzione della macro

Postdi Lyke73 » 19/11/14 14:55

Grazie ho fatto dei tentativi ( a caso ovviamente ) e aggiungendo
Codice: Seleziona tutto
 Application.ScreenUpdating = False

in questo punto
Codice: Seleziona tutto
Sheets("Foglio1").Select
 For riga = 2 To 91
     Application.ScreenUpdating = False
 Sheets("Foglio1").Select
    Range("a" & riga).Copy

adesso funziona.
Buona giornata.
excel 2007
Lyke73
Utente Junior
 
Post: 21
Iscritto il: 27/10/14 11:07

Re: NON vedere l'esecuzione della macro

Postdi Anthony47 » 20/11/14 03:14

Certamente “provare” e’ un buon modo per imparare…
Nel caso specifico pero’ non capisco perche’ non hai provato quanto suggerito da Scossa…

Il problema del tuo codice era che tu ripristini Application.ScreenUpdating = True all’ interno della Sub Filtro, mentre devi ripristinarlo solo alla fine della macro principale; bastava per questo eliminare le quattro righe seguendo il suggerimento di Scossa.
Come l’hai fatta funziona, ma continui a cambiare Application.ScreenUpdating da False a True inutilmente.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: NON vedere l'esecuzione della macro

Postdi Zer0Kelvin » 20/11/14 06:49

Ciao.
E nell'eventualità che la sub filtro venga richiamata da altre macro, la procedura più corretta sarebbe memorizzare in una variabile lo stato di ScreenUpdating e enableevents a inizio macro e ripristinare alla fine lo stato preesistente.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 303
Iscritto il: 08/04/12 11:23


Torna a Applicazioni Office Windows


Topic correlati a "NON vedere l'esecuzione della macro":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti