VBA : Lier un bouton, créé en VBA, à une autre macro
Bonjour à tous,
Je tiens à dire que j'apprécie énormément le site et la richesse du contenu qu'il propose surtout les cours qui sont très bien expliqués. J'ai un problème pour lequel je n'ai pas réussi à trouver de réponse ni ici ni sur d'autres sites. C'est pourquoi j'ai besoin de votre aide.
J'essaye de créer un fichier excel à partir duquel deux options seront disponibles : éditer une nouvelle offre et réserver la ou les offres qui nous intéressent à partir de la liste proposée. Lorsque l'on réserve on doit pouvoir cliquer sur le bouton cliquable situé sur la même ligne que l'offre qui nous intéresse. Cette action envoie un mail à l'émetteur de l'offre. J'ai réussi à coder ce bouton et séparément à coder l'envoi d'un mail via Outlook.
Mais là où je rencontre des problèmes c'est pour lier ma macro d'envoi de mail - Reserver - à celle qui créé, en autre, les boutons cliquables lorsque que l'on ajoute une nouvelle offre. Vous verrez dans mon code que j'ai essayé d'adapter de deux façons différentes les codes que j'ai pu trouver sur internet mais sans succès ... J'ai opté pour la deuxième tentative car je souhaite que le bouton se créé à la suite des informations enregistrées par l'émetteur de l'offre.
Le deuxième problème est lors de la création d'une deuxième offre, tous les paramètres codés pour le bouton (taille, nom, et lien à la macro d'envoi de mail) ne sont pas pris en compte. Là encore j'ai essayé de changer de boucles pour la création des offres mais je n'ai pas eu de résultats concluant.
Pourriez-vous m'aider s'il vous plait ?
Voici mon code :
Sub NouvelleDemande()
Dim Obj As Object
Dim Code As String
i = 1
While Cells(i, 1) <> ""
i = i + 1
Wend
Rows("1:100").RowHeight = 35
Columns("A:E").ColumnWidth = 17
Cells(i, 1) = InputBox("Nom de famille ?", "Titre")
Cells(i, 2) = InputBox("Prénom ?", "Titre")
Cells(i, 3) = InputBox("Votre adresse e-mail ?", "Titre")
Cells(i, 4) = InputBox("Ecrire votre demande.", "Titre")
'Première tentative
'Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=200, Top:=100, Width:=80, Height:=15)
'Obj.Name = "BoutonTest"
'ActiveSheet.OLEObjects(1).Object.Caption = "Réservation"
'Code = "Sub BoutonTest_Click()" & vbCrLf
'Code = Code & "Call Reserver" & vbCrLf
'Code = Code & "End Sub"
'With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
'.InsertLines .CountOfLines + 1, Code
'End With
With Cells(i, 5)
Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=.Left, Top:=.Top, Width:=90, Height:=.RowHeight)
ActiveSheet.OLEObjects(1).Object.Caption = "Réservation"
ActiveSheet.OLEObjects(1).Object.Font.Size = 10
'Code = "Sub CommandButton1_Click()" & vbCrLf
'Code = Code & "Call Reserver" & vbCrLf
'Code = Code & "End Sub"
End With
End Sub
Sub Reserver()
ActiveSheet.Range("D1:H1").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Bonjour, Je suis intéressé par ce que tu proposes"
.Item.To = Cells(1, 3)
.Item.Subject = "Réservation pour la proposition effectuée"
.Item.Send
End With
End SubMerci par avance aux personnes qui répondront à mes questions.
Toundrask