Bonjour,
J'utilise une macro pour faire une rotation entre deux feuilles Excel qui incluent des TCDs servant de reporting.
Mon problème est le suivant :
Lorsque je réalise des ajouts, ils ne sont pas automatiquement pris en compte dans les TCD reporting puisqu'il n'y a pas de refresh.
Je pense savoir d'où vient le problème, mais je n'ai pas les connaissances pour le traduire en VBA, c'est pourquoi j'ai expliqué ce que je veux de façon littéral
Je vous remercie grandement pour votre aide,
Merci
Pierre
Voici la macro :
' Identification du Timer : important pour le désactiver
Public RotationId As Date
Sub Start_Rotation()
' On lance la rotation
' Si le jour est jeudi/vendredi/samedi/dimanche
If Weekday(Now, vbMonday) >= 4 Then
Rotation
Else
Application.StatusBar = "Rotation non permise aujourd'hui"
MsgBox Application.StatusBar, vbInformation
ICI, il faudrait une rotation à l'image de sub(rotation) en dessous, toutes les 45 secondes entre la feuille TDB(S) et la feuille TDB(S+1).
Mais je voudrais qu'un millième de seconde après que la feuille TDBS+1 soit activé que cela retourne directement sur la feuille TDB(S) et rebelote
End If
End Sub
Sub Stop_Rotation()
' On supprime la tache horaire de Rotation
If RotationId > 0 Then
Application.OnTime RotationId, "Rotation", , False
Application.StatusBar = ""
RotationId = Empty
End If
End Sub
Sub Rotation()
' Liste des feuilles à afficher
Dim Fls() As Variant
Fls = Array("TDB S+1", "TDB S")
' On active la feuille qui n'est pas actuellement affichée (flip/flop)
ThisWorkbook.Sheets(IIf(ActiveSheet.Name = Fls(0), Fls(1), Fls(0))).Activate
' Création d'une tache horaire à faire dans 30 secondes
RotationId = Now + TimeValue("00:00:45") ' 45 secondes
Application.OnTime RotationId, "Rotation"
' On indique que la rotation est en cours
Application.StatusBar = "Prochaine rotation à " & Format(RotationId, "hh:mm:ss")
End Sub