Bonjour à tous,
Je viens vers vous afin que savoir comment faire pour lancer une macro qui fait défiler les Feuilles Visibles une à une mais pouvant être arrêter à tout moment.
Je ne suis pas développeur, et j'utilise Excel comme un outil, beaucoup de choses ne doivent pas cadrer avec les bonnes pratiques courantes.
Aujourd'hui, la macro faisant défiler les feuilles visibles je l'ai faite, toutes les x secondes ca passe à la feuille suivante et arrivé à la dernière Feuille ca reprend la 1ere Feuille. Pour faire ceci j'ai fait une jolie boucle While avec une condition à la "1=1".
Dans la macro, il y a déjà un truc pour connaitre le dernier état de la macro "ROTATION" ou "STOP"
Je voulais savoir comment faire pour que un bouton puisse arrêter ma macro.
Voici mon code.
Je viens vers vous afin que savoir comment faire pour lancer une macro qui fait défiler les Feuilles Visibles une à une mais pouvant être arrêter à tout moment.
Je ne suis pas développeur, et j'utilise Excel comme un outil, beaucoup de choses ne doivent pas cadrer avec les bonnes pratiques courantes.
Aujourd'hui, la macro faisant défiler les feuilles visibles je l'ai faite, toutes les x secondes ca passe à la feuille suivante et arrivé à la dernière Feuille ca reprend la 1ere Feuille. Pour faire ceci j'ai fait une jolie boucle While avec une condition à la "1=1".
Dans la macro, il y a déjà un truc pour connaitre le dernier état de la macro "ROTATION" ou "STOP"
Je voulais savoir comment faire pour que un bouton puisse arrêter ma macro.
Voici mon code.
Code:
Sub RotationFeuille()
Sheets("DATA - Liste Feuille Visible").Columns("A").ClearContents
' On liste les feuilles visibles
Dim lRow As Long
With Sheets("DATA - Liste Feuille Visible")
.Cells(1).CurrentRegion.ClearContents
lRow = 1
For Each Sh In ActiveWorkbook.Sheets
If Sh.Visible Then
.Cells(lRow, 1).Value = Sh.Name
lRow = lRow + 1
End If
Next Sh
End With
' On définie un "crawler"
Dim pointerligne As Integer
pointerligne = 1
' Selon l'état de la rotation, soit on la lance soit on l'arrete
' Si la rotation est en cours et qu'on veut l'arreter
If Sheets("DATA - Liste Feuille Visible").Cells(1, 5) = "ROTATION" Then
Sheets("DATA - Liste Feuille Visible").Cells(1, 5) = "STOP"
'MsgBox ("STOP")
Else
' Si on veut relancer la rotation, on va activer 1 à 1 les feuilles visibles avec une tempo de
Sheets("DATA - Liste Feuille Visible").Cells(1, 5) = "ROTATION"
Do While 1 = 1
Do While pointerligne <> lRow
x = Sheets("DATA - Liste Feuille Visible").Cells(pointerligne, 1)
Sheets(x).Activate
'Sheets(x).Select
'Sheets(x).Calculate
'Sheets(x).Cells(1, 1).Select
Sheets(x).Range("AA500").Activate
Sheets(x).Range("A1").Activate
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
'ActiveWindow.SmallScroll Down:=-1
'ActiveWindow.SmallScroll Down:=1
'MsgBox (x)
'Worksheets(trackerlRow).Activate
pointerligne = pointerligne + 1
Application.Wait (Now + TimeValue("0:00:05"))
Loop
pointerligne = 1
Loop
End If
End Sub
Dernière édition: