Créer une macro "à la volée" depuis du code VBA

Lolo86170

XLDnaute Nouveau
Bonjour,
A partir d'une procédure VBA, je génère un fichier Excel de A à Z avec une entête, un tableau de chiffre... Dans ce tableau, il faut absolument des formes automatiques (des flèches) qui permettent de faire des tris sur des colonnes.
J'arrive à créer dynamiquement cette flèche où je veux par le code suivant :
ActiveSheet.Shapes.AddShape(msoShapeDownArrowCallout, _
siObjLeft, siObjTop, siObjWidth, siObjHeight).Select
Par contre, je n'arrive pas à rajouter à cet objet une macro créée "à la volée" depuis mon code VBA et qui permettra le tri sur la colonne où l'objet est positionné.
Si quelqu'un peut m'aider, ce serait super sympa.
A+
Laurent
 

Catrice

XLDnaute Barbatruc
Re : Créer une macro "à la volée" depuis du code VBA

Bonsoir,

Essaie ceci :
Code:
Sub Test()
Set MaFleche = ActiveSheet.Shapes.AddShape(msoShapeDownArrowCallout, 10, 10, 20, 30)
MaFleche.OnAction = "Macro1"
End Sub

Sub Macro1()
MsgBox "toto"
End Sub

ou

Code:
Sub Test()
ActiveSheet.Shapes.AddShape(msoShapeDownArrowCallout, 10, 10, 20, 30).OnAction = "Macro1"
End Sub
 
Dernière édition:

Lolo86170

XLDnaute Nouveau
Re : Créer une macro "à la volée" depuis du code VBA

Merci Catrice pour cette réponse rapide, c'est vraiment très sympa.
On avance, mais ce je voudrais pouvoir créer le code de la macro de manière dynamique, en reprenant l'exemple, je voudrais pour avoir le contenu du Msgbox en fonction du contexte, une fois avec "titi", un autre avec "toto"...
Laurent
 

Catrice

XLDnaute Barbatruc
Re : Créer une macro "à la volée" depuis du code VBA

Bonsoir,

Je ne sais pas si on peut créer du code à la "volée" mais comme tu veux trier des colonnes, ci-joint un exemple qui créé des boutons qui trient suivant chque colonne.
 

Pièces jointes

  • Classeur1.xls
    29 KB · Affichages: 95
  • Classeur1.xls
    29 KB · Affichages: 106
  • Classeur1.xls
    29 KB · Affichages: 103
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Créer une macro "à la volée" depuis du code VBA

Bonjour Lolo, Bonjour Catrice,

On appelle Titi puis Toto, et j'arrive ;)

Pour créer des macros dans un autre classeur, je te conseille de consulter cette page là :

Visual Basic Editor - Club des décideurs et professionnels en Informatique

Saches simplement que pour que ça fonctionne, il faudra certainement, sur le poste qui fait tourner la macro, que tu ailles dans
Menu Outils - Macros - Sécurité
Onglet Sources fiables
Cocher faire confiance au projet Visual Basic
OK
 

Discussions similaires

Statistiques des forums

Discussions
312 842
Messages
2 092 715
Membres
105 517
dernier inscrit
Freddy93