Acceder a une autre macro [Résolu]

Signaler
Messages postés
12
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
18 décembre 2009
-
Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
8 décembre 2015
-
Bonjour,

j'ai ce type de macro associe a un premier bouton de commande

Do while....
call AAA
call BBB
-> call CCC
loop

Je voudrais savoir si il est possible, en appuyant sur un 2eme bouton de commande de se referer a cette macro deja existante, mais de lancer la macro uniquement a partir de la sub CCC... et qu'ensuite la macro continue dans la boucle while...

j'espere que j'ai reussi a me faire comprendre.

Merci!

6 réponses

Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
8 décembre 2015

je pense à la fonction goto mais je ne pense pas qu'elle puisse s'étendre à l'extérieur de la procédure d'appel.
Une autre idée me viens à l'esprit, j'écris n'importe quoi!! Analyse ce code

[list]
Dim truc as boolean

Private sub commandbutton2_clic()
truc = false
call private sub commandbutton1_clic()
end sub

private sub commandbutton1_clic()
Do while ...
if truc = true then
call AAA
call BBB
end if
call ccc
truc = true
loop
end sub
/list

A+
nitho l'amateur
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Il suffit de passer un paramètre à ta fonction pour déclencher le Call CCC s'il a une certaine valeur.


Calade
Messages postés
12
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
18 décembre 2009

non, ma sub CCC n'a pas de valeur, c'est en fait une macro qui fait "bouger" certaines cellules de ma feuille excel, alors que les sub AAA et BBB cree et organise ces cellules.

en cliquant sur ce 2eme bouton mes cellules existent deja et je voudrais juste lles faire bouger.

et ensuite que la boucle while reprenne la main et continue a creer et bouger les cellules....

Glasgow1705
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Je crois que l'on a un problème de vocabulaire.

Envoie-moi le code de ta macro.

As-t'elle écrite from scratch ou générée par l'enregistreur de macros ?


Calade
Messages postés
12
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
18 décembre 2009

oui c'est possible que je n'utilise pas exactement le bon vocabulaire, desole....

non la macro a ete faite a la main, mais elle est assez grosse...


voila en gros j'ai

cmdbutton1_click
Do While X = 0 (le x est gere en parallele par une autre fonction)
Call AAA
Call BBB
Call CCC
Loop

(AAA et BBB n'ont pas bcp d'importance ici)

sub CCC
Do While toppy = 0
s = Timer
Do While Timer < s + vivit
DoEvents
Loop
If Cells(53, 53) = 1 Then
For i = 20 To 1 Step -1
For j = 1 To 12
If Cells(i, j).Interior.ColorIndex = 5 Then
Cells(i, j).Interior.ColorIndex = 8
Cells(i + 1, j).Interior.ColorIndex = 5
End If
Next j
Next i
End If
Loop
w = Timer
Do While Timer < w + vivit
DoEvents
Loop
For i = 1 To 20
For j = 1 To 12
If Cells(i, j).Interior.ColorIndex = 5 Then
Cells(i, j).Interior.ColorIndex = 6
End If
Next j
Next i
End Sub

(vivit et toppy sont egalement geres en parallele)

et j'ai donc un deuxieme bouton

cmdbutton2_Click
qq lignes de code sans interet
et la je voudrais "rejoindre" la boucle while du 1er bouton au niveau de "CallCCC"
end sub

j'arrive pas a me rendre compte si je suis clair ou pas?
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Et en ajoutant une variable Private géré dans cmdButton2_Click et testé dans cmdButton1_Click pour effectuer ou non le Call CCC.


Petit conseil: Indente ton code, tel que il est illisible.

Calade