Exécution d'une macro au hasard
Résolu
Baldurr
Messages postés
7
Statut
Membre
-
Baldurr Messages postés 7 Statut Membre -
Baldurr Messages postés 7 Statut Membre -
Bonjour,
Je ne vois pas de topic là-dessus :
Je cherche une macro (toute simple) pour exécuter, AU HASARD, un macro parmi un choix.
Disons que mes macros sont 3 : "mac1", "mac2" et "mac3".
Je ne vois pas quoi mettre comme commande (alea? rnd ? autre ?). Rien de ce que j'ai essayé ne marche, je suis pourtant sur que ça ne doit pas être compliqué, grrr
Je ne vois pas de topic là-dessus :
Je cherche une macro (toute simple) pour exécuter, AU HASARD, un macro parmi un choix.
Disons que mes macros sont 3 : "mac1", "mac2" et "mac3".
Sub macro_au_hasard() ??? End Sub
Je ne vois pas quoi mettre comme commande (alea? rnd ? autre ?). Rien de ce que j'ai essayé ne marche, je suis pourtant sur que ça ne doit pas être compliqué, grrr
A voir également:
- Exécution d'une macro au hasard
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
5 réponses
Bonjour
Sub macro_zazaz()
N = 3
choix = Int(Rnd * N) + 1
Select Case choix
Case 1
macro1
Case 2
macro2
'.... ect jusquà N
End Select
End Sub
Bonjour,
Hélas, ce que vous proposez ne marche pas. Il sélectionne 1 case, puis une autre, etc. à toute vitesse, sans que j'ai la main et en choisissant "Case 1" à chaque fois, jusqu'à rencontrer un problème de pile. Voici ce que cela donne avec mon appli :
Sinon, l'idée est bonne. Il y a 3 macros, on appelle "choix" le ... choix aléatoire entre le "Case1", "Case2" ou "Case3". Mais :
- Il choisit toujours le 1
- La macro "suitazar" devrait exécuter la macro choisie "suite_mac_ace" ou "...ier" ou "...ard" puis s'arrêter puisque la macro en question sélectionne une cellule prédéfinie et attend une réponse avant de continuer son exécution (ça, j'ai réussi :-) ).
Une autre idée ?
Merci néanmoins Michel ;-)
Baldur
Hélas, ce que vous proposez ne marche pas. Il sélectionne 1 case, puis une autre, etc. à toute vitesse, sans que j'ai la main et en choisissant "Case 1" à chaque fois, jusqu'à rencontrer un problème de pile. Voici ce que cela donne avec mon appli :
Sub suitazar()
N = 3
choix = Int(rnd * N) + 1
Select Case choix
Case 1
suite_mac_ace 'nom de la 1è macro
Case 2
suite_mac_ier 'nom de la 2è
Case 3
suite_mac_ard 'nom de la 3è
End Select
End Sub
Sinon, l'idée est bonne. Il y a 3 macros, on appelle "choix" le ... choix aléatoire entre le "Case1", "Case2" ou "Case3". Mais :
- Il choisit toujours le 1
- La macro "suitazar" devrait exécuter la macro choisie "suite_mac_ace" ou "...ier" ou "...ard" puis s'arrêter puisque la macro en question sélectionne une cellule prédéfinie et attend une réponse avant de continuer son exécution (ça, j'ai réussi :-) ).
Une autre idée ?
Merci néanmoins Michel ;-)
Baldur
Re-,
J'ai essayé ton code dans un classeur vierge :
Il marche parfaitement. Du coup, je me demande bien pourquoi, dans l'autre cas, il choisit toujours "suite_mac_ace ". Sinon, j'ai de nouveau la main (j'ai déplacé l'emplacement de l'exécution de "suitazar"). Il ne reste plus qu'à voir
cet histoire de choix ... grmpf ...
Baldur
J'ai essayé ton code dans un classeur vierge :
Sub suitazar2()
N = 3
choix = Int(Rnd * N) + 1
Select Case choix
Case 1
ActiveCell.FormulaR1C1 = "un"
ActiveCell.Offset(1, 0).Select
Case 2
ActiveCell.FormulaR1C1 = "deux"
ActiveCell.Offset(1, 0).Select
Case 3
ActiveCell.FormulaR1C1 = "trois"
ActiveCell.Offset(1, 0).Select
End Select
End Sub
Il marche parfaitement. Du coup, je me demande bien pourquoi, dans l'autre cas, il choisit toujours "suite_mac_ace ". Sinon, j'ai de nouveau la main (j'ai déplacé l'emplacement de l'exécution de "suitazar"). Il ne reste plus qu'à voir
cet histoire de choix ... grmpf ...
Baldur
Désolé je viens d'essayer en remplaçant les appels macro par des msgbox et ca marche! j'ai ajouté l'instruction Randomize pour le principe mais ca n'a pas grand effet
Au fait, tu es bien sur Excel: je m'aperçois que tu n'avais pas précisé...
Sub suitazar()
N = 3
Randomize
choix = Int(Rnd * N) + 1
Select Case choix
Case 1
MsgBox "suite_mac_ace" 'nom de la 1è macro
Case 2
MsgBox "suite_mac_ier" 'nom de la 2è
Case 3
MsgBox "suite_mac_ard" 'nom de la 3è
End Select
End Sub
Au fait, tu es bien sur Excel: je m'aperçois que tu n'avais pas précisé...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question