reprendre la maoin dans une boucle

J

jasmin

Guest
Bonjour,

j'ai posté hier une question pour savoir comment faire une pause dans une boucle et Robert m'a très gentillement et utilement répondu en proposant d'utiliser l'outil Mod et MsgBox. Grand merci.

seulement cette astuce ne permet pas de reprendre la main : effectivement, je souhaite qe la macro fasse une pause toutes les 3 itérations et là je souhaiterais avoir la possibilité d'insérer des commentaires dans mes feuilles excel et seulement ensuite cliquer sur la MsgBox pour que la macro se poursuive ....

merci d'avance
 

Robert

XLDnaute Barbatruc
Bonjour Jasmin, bonjour le forum,

Hier je me doutais bien que ce simulacre ne conviendrait pas... Mais je m'y suis cassé les dents et che n'ai rien frouvé magré mes refferffes sur le forum et dans l'aide VBA sur DoEvents.
Désolé, j'espère qu'un maître de ce forum passera par là. Souvent il suffit de penser très fort à eux pour qu'ils apparaissent. Autre solution, va faire un tour sur le Tchat tu as de fortes chances de tomber sur eux.
Bonne chance...
 

Hervé

XLDnaute Barbatruc
Supporter XLD
bonjour jasmin, robert :)

une proposition un peu bricolorigolo, en passant par un bouton, et une variable public.

j'ai pas trouvé mieux, et je tiens à mes dents :)

salut [file name=Classeur3_20051127164455.zip size=9422]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20051127164455.zip[/file]
 

Pièces jointes

  • Classeur3_20051127164455.zip
    9.2 KB · Affichages: 6
J

jasmin

Guest
Bonsoir Hervé, Robert,

Merci pour vos réponses. Merci à Robert qui m'a filé un très bon tuyau.

Hervé, ta macro marche très bien. Grand merci.

Mais, car il y en a un : il faut que je greffe ton astuce à ma macro donc je bidouille correctement les indices et que le tout soit placé dans un PrivateSub ComandButton(). A priori pas de problème. Sauf que ma macro fait notamment appel à un autre fichier Excel, disons 'fichier2' ; elle s'appelle Sub Macro1().

J'explique : la macro du bouton CommandButton1()
consiste à appeler Macro1
Je place ton astuce à la suite de Macro1 dans CommandButton1()
mais du coup le programme exécute toute la macro avant de me permettre de sortir ... logique !

il faut donc que je place ton astuce dans la Macro1() qui est appelée par PrivateSub ComandButton1(). Or dans Macro1() la variable CommandButton1() n'est pas comprise

Dernière possibilité : copier le contenu de Macro1() dans CommandButton1() (au lieu d'en faire appel avec 'macro1')

et d'ajouter ton astuce en goupillant correctement les indices. Mais le hic c'est que comme ça, bizarrement, la macro ne s'exécute pas correctement ( il n'arrive pas à jongler avec l'autre fichier Excel).


Pour être plus claire, et ceci n'a rien à voir avec ton astuce mais il s'agit en fait d'un autre problème : quand une macro type Sub macro()appelle une autre feuille ça marche sans problème, mais quand la macro en question est copiée dans un CommandButton1() il n'arrive pas à activer l'autre feuille. A cause de cela je peux pas appliquer ton astuce.

ex :

Sub Macro1()

Windows('fichier1.xls').activate
A = Cells(1,1).Value
Windows('fichier2.xls').activate
Cells(1,1).Value = A
Result = Cells(1,2).Value
Windows('fichier1.xls').activate
Cells(1,1).Value = Result

End Sub

Ca marche, alors que :

Private CommandButton.Click()

Windows('fichier1.xls').activate
A = Cells(1,1).Value
Windows('fichier2.xls').activate
Cells(1,1).Value = A
Result = Cells(1,2).Value
Windows('fichier1.xls').activate
Cells(1,1).Value = Result

End Sub

Ca marche pas !!!!

je sais que tout ceci n'est pas simple. Ne perdez pas trop de temps avec ça. Si vous savez tant mieux, sinon je souligne juste ce problème.

jasmin

:(
 

Hervé

XLDnaute Barbatruc
Supporter XLD
re jasmin, robert


Essayes comme ceci :


Private Sub CommandButton1_Click()
'dim A as ????? ' A définir
'dim result as ????? ' a définir

With Workbooks('fichier1.xls').Sheets('feuil1').Cells(1, 1)
        A = .Value
        Workbooks('fichier2.xls').Sheets('feuil1').Cells(1, 1) = A
        Cells(1, 1).Value = A
        Result = Workbooks('fichier2.xls').Sheets('feuil1').Cells(1, 2)
        .Value = Result
End With

End Sub

salut
 

Statistiques des forums

Discussions
300 793
Messages
1 987 230
Membres
209 744
dernier inscrit
nldurand