Une feuille qui s'active toute seule ..... !
Résolu
RaihanaTag
Messages postés
18
Statut
Membre
-
RaihanaTag Messages postés 18 Statut Membre -
RaihanaTag Messages postés 18 Statut Membre -
Je développe une petite application sur vba
Sur la page d'accueil qui a l' air de ça :

j ai crée une animation ( le petit avion qui se déplace de la gauche à droite ) selon la procédure suivante :

le probleme c est quand je clique sur l'un des boutons pour accéder à une autre feuille cette derniere s'ouvre puis apres un bout de temp la page d 'acceuil revient tt seule
j ai enlevé la boucle while ....wend le probleme a disparut mais l 'avion ne fais son parcours qu'une fois et non pas tant que la page d'accueil est active
Merci de bien vouloir m aider
Sur la page d'accueil qui a l' air de ça :

j ai crée une animation ( le petit avion qui se déplace de la gauche à droite ) selon la procédure suivante :

le probleme c est quand je clique sur l'un des boutons pour accéder à une autre feuille cette derniere s'ouvre puis apres un bout de temp la page d 'acceuil revient tt seule
j ai enlevé la boucle while ....wend le probleme a disparut mais l 'avion ne fais son parcours qu'une fois et non pas tant que la page d'accueil est active
Merci de bien vouloir m aider
A voir également:
- Une feuille qui s'active toute seule ..... !
- Application se ferme toute seule android - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Tele qui s'allume toute seule signification - Forum TV & Vidéo
- Feuille de score belote excel - Forum Excel
- Comment imprimer en a5 sur une feuille a4 - Guide
3 réponses
Bonjour,
Déjà .. pour plus de facilités .. il est préférable que tu colles directement ton code sur le forum plutôt que de nous en mettre une capture écran !
NB: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.Ensuite... il suffirait, je pense, que dans ton While .. tu vérifies si tu te trouves bien sur ta feuille1 ... ( avec ActiveSheet)
Si oui... tu fais l'animation...
Si non... tu ne la fais pas.
Déjà .. pour plus de facilités .. il est préférable que tu colles directement ton code sur le forum plutôt que de nous en mettre une capture écran !
NB: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.Ensuite... il suffirait, je pense, que dans ton While .. tu vérifies si tu te trouves bien sur ta feuille1 ... ( avec ActiveSheet)
Si oui... tu fais l'animation...
Si non... tu ne la fais pas.
Bonjour,
Si tu veux que ton avion "plane" en permanence (parce que avec ton code il ne fait qu'un aller) et faire tout le reste de ta demande, utilises ce code (à placer dans le module ThisWorkbook)
Si tu veux que ton avion "plane" en permanence (parce que avec ton code il ne fait qu'un aller) et faire tout le reste de ta demande, utilises ce code (à placer dans le module ThisWorkbook)
Dim StopIt As Boolean
Private Sub Workbook_Open()
MsgBox "Bonjour ! OUverture en cours ...", , "Gestion de données des Pannes"
Worksheets(1).Activate
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Feuil1" Then StopIt = False: Avion Else StopIt = True
End Sub
Sub Avion()
Dim seconde As Single
Dim i As Integer
Dim timer_avant As Double
Worksheets(1).Shapes("Rectangle 1").Left = 61.5
seconde = 0.01
For i = 1 To 747
timer_avant = Timer
Do While Timer < timer_avant + seconde
DoEvents
If StopIt Then Exit Sub
Loop
Worksheets(1).Shapes("Rectangle 1").Left = 61.5 + i
If i = 746 Then
i = 1: Worksheets(1).Shapes("Rectangle 1").Left = 61.5
End If
Next i
End Sub
J ai fini par utiliser ce code ( si quelqu'un tombe dans le même problème que moi ) :
Et ça fonctionne parfaitement
Merci pour vôtre aide pijaku et jordon 45 et je suis désolée de vous répondre aussi tard ( je suis nouvelle sur le forum je sais pas comme ça fonctionne ici )
Private Sub Workbook_Open()
Worksheets(1).Activate
MsgBox "Bonjour! Ouverture de Session .....", , "Gestion de données des Pannes"
UserForm1.Show
While ActiveSheet.Index = 1
Worksheets(1).Shapes("Rectangle 1").Left = 61.5
seconde = 0.01
For i = 1 To 747
timer_avant = Timer
Do While Timer < timer_avant + seconde
DoEvents
Loop
Worksheets(1).Shapes("Rectangle 1").Left = 61.5 + i
Next
Wend
End Sub
Et ça fonctionne parfaitement
Merci pour vôtre aide pijaku et jordon 45 et je suis désolée de vous répondre aussi tard ( je suis nouvelle sur le forum je sais pas comme ça fonctionne ici )
merci infiniment