Condividi:        

Interruzione temporanea di 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

Interruzione temporanea di macro

Postdi Ricky0185 » 04/01/23 11:00

Buongiorno, vorrei interrompere automaticamente e poi riprendere dopo 5 secondi la macro inserita nel modulo standard di questo file
Codice: Seleziona tutto
Dim NextTime As Date
Sub Lampeggia()
Set zona = Range("d1,i1")
NextTime = Now + TimeValue("00:00:01")
With zona.Cells.Interior
If .ColorIndex = 6 Then .ColorIndex = 3 Else .ColorIndex = 6
End With
Application.OnTime NextTime, "Lampeggia"
'Application.OnTime Now + TimeValue("00:00:05"), "Arresta"
End Sub

e che al momento si interrompe solo con
Codice: Seleziona tutto
Sub Arresta()
Set zona = Range("d1,i1")
Application.OnTime NextTime, "Lampeggia", schedule:=False
zona.Cells.Interior.ColorIndex = xlAutomatic
End Sub

e che fa lampeggiare le celle D1 e I1 di Foglio1 ogni volta che si aggiunge un valore alla fine delle colonne B e G di Foglio1 con il codice del foglio
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("b2:b100,g2:g100")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
Call Lampeggia
End If
End Sub

Al momento l’interruzione è possibile solo ciccando su “Arresta”. Il tentativo fatto (dopo l’apostrofo nella macro Lampeggia) da l’errore 1004-Metodo ‘OnTime’ dell’oggetto’_Application’ non riuscito alla riga Application.OnTime NextTime, "Lampeggia", schedule:=False.
Ho specificato tutto poichè DropBox oggi non mi funziona e WeTransfer sbalina.
Ringrazio e saluto
R
Ricky0185
Utente Senior
 
Post: 259
Iscritto il: 10/12/19 20:38

Sponsor
 

Re: Interruzione temporanea di macro

Postdi Anthony47 » 04/01/23 11:50

Con queste modifiche ho inserito uno StopOn con un timeout sul lampggia:
Codice: Seleziona tutto
Public NextTime As Date, StopOn As Single
Sub Lampeggia()
Debug.Print Format(Timer, "0.0")
If (Timer - StopOn) > 4 Then StopOn = Timer + 10
Set zona = Range("d1,i1")
NextTime = Now + TimeValue("00:00:02")
With zona.Cells.Interior
If .ColorIndex = 6 Then .ColorIndex = 3 Else .ColorIndex = 6
End With
If Timer < StopOn Then
    Application.OnTime NextTime, "Lampeggia"
Else
    'Cosa fare a fine lampeggio?
End If
'Application.OnTime Now + TimeValue("00:00:05"), "Arresta"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("b2:b100,g2:g100")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
    StopOn = Timer + 10
    If NextTime < Now Then Call Lampeggia
End If
End Sub

La Sub Arresta non e' toccata

Ma forse tu avevi chiesto un'altra cosa che non ho capito...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Interruzione temporanea di macro":


Chi c’è in linea

Visitano il forum: systemcrack e 35 ospiti