[déplacé VB.NET -> VBA] Suite code VBA après appui sur un bouton
balthazariv
Messages postés4Date d'inscriptiondimanche 13 septembre 2009StatutMembreDernière intervention 6 mai 2010
-
13 sept. 2009 à 18:02
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
13 sept. 2009 à 19:55
Bonjour,
Je souhaiterai que la suite de mon code VBA Excel s'exécute seulement après appui sur un des deux boutons de choix que j'ai créé.
J'ai essayé avec une boucle mais visiblement Excel ne me laisse même pas une micro-seconde pour agir sur l'un des deux boutons.
Cordialement
balthazariv
Messages postés4Date d'inscriptiondimanche 13 septembre 2009StatutMembreDernière intervention 6 mai 2010 13 sept. 2009 à 18:20
Merci,
Mais ce que j'ai omis de préciser c'est que je suis dans une boucle For Each Vcellule in Selection et que c'est dans cette boucle que j'aimerai pouvoir continuer une action si je clique sur le bouton 1 et une autre action si je clique sur le bouton 2 (Et attendre dans le cas où rien n'est fait par l'utilisateur)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 13 sept. 2009 à 18:50
çà ne change rien, c'est la conception qui n'est pas bonne :
relis ton message, je traduis la dernière phrase :
(besoin d'aide pour savoir) quel code taper pour "ne rien faire si l'utilisateur ne fait rien"
c'est pour çà que je te parle du fonctionnement évènementiel (à l'opposé de procédural)
il faut donc que tu transformes ton code (copie le ici d'ailleurs, qu'on puisse mieux t'orienter!) de manière à ce qu'il prenne une plage de début et de fin en paramètre
dans l'idée çà ferait :
=> au chargement
call taprocedure(1,10)
=> click1
call taprocedure(21,40)
=> click2
call taprocedure(76,444)
à la fin de ton chargement tu as donc accompli le code jusqu'au moment où tu voulais arrêter
SI click1 => continue comme tu veux
SI click2 => continue comme tu veux
SI rien => rien
balthazariv
Messages postés4Date d'inscriptiondimanche 13 septembre 2009StatutMembreDernière intervention 6 mai 2010 13 sept. 2009 à 19:02
Mon code est celui-ci
Sub Test()
Dim i As integer
'Selection de ma plage de données sur une feuille 2
Sheets("Feuille2").Range("A1:A36").Select
'index à 0
i =0
For Each Vcellule In Selection
' Recopie de diverses données entre 2 Tableau
Sheets("Feuille1").Range("A1").Offset(i,0) = Vcellule.Value
'*************************
Et ici j'aimerai faire une sauvegarde si l'utilisateur clique sur mon bouton Valide et ne rien faire si il clique sur le bouton Passe.
'*************************
i = i+1
Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 13 sept. 2009 à 19:55
sauvegarder 1000 fois s'il y a 1000 cellules?...
bonjour l'usine à gaz, non?
propose simplement une msgbox avec OUI NON et sauve en fin de boucle si OUI
il n'y a aucun intérêt de faire un tel traitement
mis à part (et pour clore la discussion qui ne va pas nous mener très loin ; tu as maintenant toutes les carte en mains !), voici la réponse que tu attends (RAPPEL : A NE PAS METTRE EN PLACE, TOTALEMENT INUTILE)
variable en déclaration générale :
dim action as byte
à chaque itération de la boucle :
action = 0
click 1 => action = 1
click 2 => action = 2
entre tes '***** =>
do while action = 0
doevents
loop
if action = 1 then CODE_SAUVE