Créer une macro à partir d'une macro

Bonjour à toutes et à tous,

Je fais face à un petit problème:

Ma macro principale implique la création de nouvelles feuilles.

Or, j'aimerai qu'à l'issue de cette macro, j'aie deux boutons sur chaque feuille fraîchement créée, et bien-sur que ces boutons soient reliés à de nouvelles macro: l'une pour enregistrer automatiquement la feuille sous le format PDF, l'autre pour ouvrir un nouveau mail avec la feuille PDF en pièce jointe.

En me baladant à droite à gauche sur la toile, je suis arrivé à ce code :

'Bouton Enregistrer
Dim oOLE As OLEObject
Dim X As Byte
Dim Code As String
Set oOLE = ActiveWorkbook.ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=350, Top:=30, Width:=100, Height:=30)
X = ActiveSheet.OLEObjects.Count
oOLE.Name = "CommandButton" & X
ActiveSheet.OLEObjects(X).Object.Caption = "Enregistrer sous PDF"
Code = "Private Sub CommandButton" & X & "_Click()"
Code = Code & "ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _"
Code = Code & "Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _"
Code = Code & ":=False, OpenAfterPublish:=False"
Code = Code & "End Sub"

oOLE.OnAction = Code

Mon bouton est bien créé, mais n'est pas affecté à ma macro que j'ai rédigé sous la variable "Code".

Merci de votre aide !

Doudi

Salut,

Voici un code qui permet d'ajouter un bouton sur la feuille active, de le nommer "Cache", d'y affecter la macro "Cacher_le_texte" et d'y afficher le texte "Cacher le texte".

        With ActiveSheet
            .Buttons.Add(580, 470, 150, 75).Name = "cache" 'distance depuis la gauche, le haut, largeur, hauteur
            .Shapes("cache").OnAction = "Cacher_le_texte"
            .Shapes("cache").TextFrame.Characters.Text = "Cacher le texte"
        End With

Est-ce que ça peut d'aider ? La macro "Cacher_le_texte" est bien entendu déjà à disposition dans un module.

Cordialement

Salut Yvouille, merci de ta réponse.

Je me rends compte de ma bêtise... J'aurai effectivement pu créer mes macros dans un différent module plutôt que de vouloir recréer la macro à chaque fois....

Petite question qui me vient à la lecture de ton post : comment déterminer les distances au moment de la création du bouton ? quelle est "l’échelle" ou la dimension ?

Dernière question : cette macro sera utilisée par différentes personnes sur différents ordinateurs: existe-t-il une astuce pour normaliser le chemin pour enregistrer le fichier sur le bureau de chacun? (le fichier d'origine sera sur un serveur partagé et un seul fichier sera utilisé par tout le monde)

Merci d'avance !

Doudi

Salut,

Doudi a écrit :

comment déterminer les distances au moment de la création du bouton ? quelle est "l’échelle" ou la dimension ?

Très franchement, je n'en ai aucune idée. J'ai toujours travaillé "à taton". J’ai bien essayé de voir si ça correspondait aux pixels indiqués lorsque tu ouvres une colonne ou une ligne, mais non, ça n’a pas l’air d’être ça.
Doudi a écrit :

Dernière question : cette macro sera utilisée par différentes personnes sur différents ordinateurs: existe-t-il une astuce pour normaliser le chemin pour enregistrer le fichier sur le bureau de chacun?

Je n'ai malheureusement pas non plus d'idée à ce sujet. Je te propose d'indiquer ce fil comme résolu et d'en ouvrir un nouveau. Tu auras plus de chance que quelqu'un d'autre te liras.

Désolé

Amicalement.

Re Yvouille,

Merci pour ces "non-infos"

Je vais essayer de me dépatouiller !

En tout cas merci de m'avoir illuminé sur ma question initiale.

A plus,

Doudi

Rechercher des sujets similaires à "creer macro partir"