Acceder a une autre macro

Résolu
glasgow1705 Messages postés 12 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 18 décembre 2009 - 25 nov. 2009 à 18:02
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015 - 27 nov. 2009 à 23:08
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

cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
27 nov. 2009 à 23:08
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
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2009 à 09:56
Bonjour,

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


Calade
0
glasgow1705 Messages postés 12 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 18 décembre 2009
26 nov. 2009 à 11:53
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
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2009 à 12:23
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
glasgow1705 Messages postés 12 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 18 décembre 2009
26 nov. 2009 à 12:54
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?
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2009 à 13:31
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
0
Rejoignez-nous