Exécution d'une macro au hasard
Résolu/Fermé
Baldurr
Messages postés
7
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
27 janvier 2011
-
15 oct. 2010 à 10:33
Baldurr Messages postés 7 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 27 janvier 2011 - 15 oct. 2010 à 12:42
Baldurr Messages postés 7 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 27 janvier 2011 - 15 oct. 2010 à 12:42
A voir également:
- Exécution d'une macro au hasard
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro word - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Erreur d'execution 1004 ✓ - Forum VB / VBA
5 réponses
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
15 oct. 2010 à 11:23
15 oct. 2010 à 11:23
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
Baldurr
Messages postés
7
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
27 janvier 2011
15 oct. 2010 à 11:54
15 oct. 2010 à 11:54
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
Baldurr
Messages postés
7
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
27 janvier 2011
15 oct. 2010 à 12:27
15 oct. 2010 à 12:27
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
15 oct. 2010 à 12:28
15 oct. 2010 à 12:28
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
Baldurr
Messages postés
7
Date d'inscription
vendredi 15 octobre 2010
Statut
Membre
Dernière intervention
27 janvier 2011
15 oct. 2010 à 12:42
15 oct. 2010 à 12:42
Oui.
Merci Michel, mais, ça y est, j'ai trouvé.
Les 3 macros concernaient des feuilles différentes mais étaient gérées indépendamment. J'ai donc juste rajouté
Worksheets("feuille ard").Select '(par exemple)
en début d'exécution. Sujet clos, MERCI !!!!
Merci Michel, mais, ça y est, j'ai trouvé.
Les 3 macros concernaient des feuilles différentes mais étaient gérées indépendamment. J'ai donc juste rajouté
Worksheets("feuille ard").Select '(par exemple)
en début d'exécution. Sujet clos, MERCI !!!!