Macro et vba ?

cs_steed12 Messages postés 25 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 9 janvier 2006 - 15 avril 2005 à 17:18
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 20 avril 2005 à 20:54
Je me permet de changer de place ma question car ca devient super urgent et je ne vois pas comment m'en sortir. Merci

Ce qui suis vient du forum dans la section VBA :

Bonjour à tous, voilas j'ai une petite question à vous soumettre :
est-il possible de crée une nouvelle macro en vba (tous en code vb) et de lui affecter des opération a effectuer. Et donc si oui quel est la commande qui permet de crée cette macro. Merci de me mettre sur la voie car la je bloque depuis 5h.Merci à ceux ou celles qui me répondrons.





Re : crée une macro en VBA ?
Répondre à ce message - [javascript:alert('pas%20encore%20implémenté'); Imprimer ce message]







Pour créer une macro, dans VBA tu fais Insérer/Module.
Dans le code du module, tu construis ta macro Exemple:

Sub Ajouter()
Range("A1").Value = "Bonjour"
End Sub

Quand tu retourne dans Excel, tu verras que si tu cliques sur Outils/Macro que ta mcro est bien là.Pour la lancer, tu clique dessus ou si c'est par un bouton sur un UserForm.

Private Sun CommandButton1_Click()
Call Ajouter
End Sub

Voilà ce n'est pas plus difficile

jpleroisse








en fait je me suis mal expliqué, je cherche a crée un nouvelle macro via une macro qui tourne.
exemple: la macroA est exécuter et crée la macroX avec des action définie et des variable.
En gros je voudrais que l'utilisateur choisisse une couleur et un texte et qu'une macro sois crée avec le code couleur et le texte choisie pour que ensuite l'utilisateur n'est qu'a cliqué sur un bouton qui appel la macroX pour copier ses valeur dans plusieurs céllules. Voilàs je sais pas si je suis bien clair ...
Merci beaucoup.





tu fais ta macro avec tes parametre et tu l'appelles depuis une autre macro.

exemple, j'ai une macro fusionLt qui appelle la macro Fusion.

Sub fusionLt()
'
' fusionLt Macro
' Macro enregistrée le 13/04/2005 par BenoCrapo
'
Application.Run MacroName:="Normal.NewMacros.Fusion"
Windows("modele.dot").Activate
End Sub

et voilou
Benouille la grenouille





Re : crée une macro en VBA ?
Répondre à ce message - [javascript:alert('pas%20encore%20implémenté'); Imprimer ce message]






En fait je ne peux pas crée la macro avant car en fait l'utilisateur choisi un texte puis une couleur en suite il valide et alors ma macro lui crée un bouton de formulaire qui a pour fonction de remplir les céllule sélectionner de la couleur choisie ainsi que du texte. De plus il existe a la base 9 boutons donc ce que je recherche a faire c'est de :
- l'utilisateur choisi son texte et couleur
- Valide
- la macro existante crée un bouton avec comme texte celui taper
- la macro lie le bouton crée a une nouvelle macro (crée sur le moment) avec comme fonction :
- remplie la ou les céllule selectionner par la couleur et le texte associé au bouton.

En gros si j'ai 9 bouton j'ai 9 macro qui sont identique avec seulement la couleur de remplissage et le texte qui change. Je sais que ce n'est peut etre pas la bonne méthode sur laquelle je me suis engager mais pour un autre project sa me servira aussi de savoir crée des macro dans des macro.

Merci pour toutes vos réponse.

Steed

5 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
16 avril 2005 à 02:15
Salut,
pourquoi ne pas écrire simplement ta macro et l'exécuter en temps utile ?
il est possible de lancer une macro depuis un fichier texte dis moi ce que tu veux faire exactement que l'on puisse voir

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
19 avril 2005 à 18:55
Re,
Je reviens sur le sujet voilà qq lignes de code qui te seront bien utiles

Dim Usf As Object, btn As Object, x
ThisWorkbook.VBProject.VBComponents.Add vbext_ct_StdModule
Set Usf = ThisWorkbook.VBProject.VBComponents("Module1")

With Usf.CodeModule
x = .CountOfLines
.insertlines x + 1, "Sub Ma_Macro()"
.insertlines x + 2, " MsgBox ""coucou"""
.insertlines x + 3, " unload Me"
.insertlines x + 4, "End Sub"
End With

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
19 avril 2005 à 19:00
Re, pour une user form

'ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)

Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..." .Left 60: .Top 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
cs_steed12 Messages postés 25 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 9 janvier 2006
20 avril 2005 à 16:16
merci bien pour ces réponse j'ai réussi a faire ce que je voulais. Merci beaucoup JP.

Steed
0

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

Posez votre question
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
20 avril 2005 à 20:54
Je tiens à présiser que ces sources ne sont pas de moi.
Mais en général je teste avant de renvoyer.......

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Rejoignez-nous