Création d'un mail depuis Excel avec choix de ligne
Résolu
mutinjb
Messages postés
5
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
J'ai un fichier excel qui répertorie les commandes que je passe dans une feuille. Aujourd'hui, pour chaque nouvelle commande, je saisis des informations dans une ligne puis je créé un mail manuellement en recopiant les données de cette ligne.
J'aimerais automatiser cette action par le biais d'un bouton.
Lorsque j'appuie sur ce bouton, un popup me demanderait le numéro de la ligne concerné. Je saisirais alors la ligne en question puis validerais. Un mail serait alors généré et prêt à envoyer.
J'ai avancé un peu sur mon idée mais je ne sais pas créer ce popup qui me demande le numéro de la ligne à étudier. Aussi, une fois cette valeur récupérer, comment puis-je l'exploiter pour l'intégrer à mon code?
En pièce jointe un screenshot de mon fichier excel, et ci-dessous mon code.
Merci d'avance pour votre aide.

Private Sub Envoi_mail_Click()
End Sub
Private Sub CommandButton1_Click()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
If Range("C2") = "Création" Then
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Je souhaite passer commande. Voici les informations relatives à ma demande :" & vbNewLine & vbNewLine & _
"Nom et prénom : " & Range("A2") & vbNewLine & _
"Compte : " & Range("H2") & vbNewLine & _
"Abonnement : forfait illimité" & vbNewLine & _
"Restriction data hors EU + Suisse + Andorre : " & Range("L2") & vbNewLine & _
"Matériel : " & Range("G2") & vbNewLine & _
"Référence commande : " & Range("B2") & vbNewLine & vbNewLine & _
"Merci beaucoup." & vbNewLine & vbNewLine & _
"Cordialement,"
End If
If Range("C2") = "Remplacement" Then
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Je souhaite passer commande. Voici les informations relatives à ma demande :" & vbNewLine & vbNewLine & _
"Nom et prénom : " & Range("A2") & vbNewLine & _
"Compte : " & Range("H2") & vbNewLine & _
"Abonnement : Remplacement de matériel pour la ligne 0" & Range("I2") & vbNewLine & _
"Matériel : " & Range("G2") & vbNewLine & _
"Référence commande : " & Range("B2") & vbNewLine & vbNewLine & _
"Merci beaucoup." & vbNewLine & vbNewLine & _
"Cordialement,"
End If
On Error Resume Next
With xOutMail
.To = "mon adresse mail"
.CC = ""
.BCC = ""
.Subject = "Nouvelle commande"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
J'ai un fichier excel qui répertorie les commandes que je passe dans une feuille. Aujourd'hui, pour chaque nouvelle commande, je saisis des informations dans une ligne puis je créé un mail manuellement en recopiant les données de cette ligne.
J'aimerais automatiser cette action par le biais d'un bouton.
Lorsque j'appuie sur ce bouton, un popup me demanderait le numéro de la ligne concerné. Je saisirais alors la ligne en question puis validerais. Un mail serait alors généré et prêt à envoyer.
J'ai avancé un peu sur mon idée mais je ne sais pas créer ce popup qui me demande le numéro de la ligne à étudier. Aussi, une fois cette valeur récupérer, comment puis-je l'exploiter pour l'intégrer à mon code?
En pièce jointe un screenshot de mon fichier excel, et ci-dessous mon code.
Merci d'avance pour votre aide.

Private Sub Envoi_mail_Click()
End Sub
Private Sub CommandButton1_Click()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
If Range("C2") = "Création" Then
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Je souhaite passer commande. Voici les informations relatives à ma demande :" & vbNewLine & vbNewLine & _
"Nom et prénom : " & Range("A2") & vbNewLine & _
"Compte : " & Range("H2") & vbNewLine & _
"Abonnement : forfait illimité" & vbNewLine & _
"Restriction data hors EU + Suisse + Andorre : " & Range("L2") & vbNewLine & _
"Matériel : " & Range("G2") & vbNewLine & _
"Référence commande : " & Range("B2") & vbNewLine & vbNewLine & _
"Merci beaucoup." & vbNewLine & vbNewLine & _
"Cordialement,"
End If
If Range("C2") = "Remplacement" Then
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Je souhaite passer commande. Voici les informations relatives à ma demande :" & vbNewLine & vbNewLine & _
"Nom et prénom : " & Range("A2") & vbNewLine & _
"Compte : " & Range("H2") & vbNewLine & _
"Abonnement : Remplacement de matériel pour la ligne 0" & Range("I2") & vbNewLine & _
"Matériel : " & Range("G2") & vbNewLine & _
"Référence commande : " & Range("B2") & vbNewLine & vbNewLine & _
"Merci beaucoup." & vbNewLine & vbNewLine & _
"Cordialement,"
End If
On Error Resume Next
With xOutMail
.To = "mon adresse mail"
.CC = ""
.BCC = ""
.Subject = "Nouvelle commande"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
A voir également:
- Création d'un mail depuis Excel avec choix de ligne
- Liste déroulante de choix excel - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Creation de site web - Guide
2 réponses
bonjour,
Une autre possibilité, ce serait de sélectionner une ligne, puis, par une combinaison de touches, de démarrer la macro.
La macro pourrait alors récupérer le numéro de ligne de la sélection, et l'exploiter.
Une autre possibilité, ce serait de sélectionner une ligne, puis, par une combinaison de touches, de démarrer la macro.
La macro pourrait alors récupérer le numéro de ligne de la sélection, et l'exploiter.
A quel moment est-ce que je déclare ma combinaison de touche?
Tu fais cela via le menu principal de Excel, pas via l'éditeur de code.
La page suivante explique comment ajouter une touche de raccourci combinée à une macro.
https://support.microsoft.com/fr-fr/office/ex%C3%A9cuter-une-macro-5e855fd2-02d1-45f5-90a3-50e645fe3155
La page suivante explique comment ajouter une touche de raccourci combinée à une macro.
https://support.microsoft.com/fr-fr/office/ex%C3%A9cuter-une-macro-5e855fd2-02d1-45f5-90a3-50e645fe3155
par
Si tu veux travailler avec le n° de la ligne sélectionnée plutôt que la ligne 2, tu peux ajouter ceci à ton code (je n'ai pas testé):
Ensuite, tu peux remplacer, par exemple
par
Pendant que tu testes, mets en commentaire les , cela cacherait les erreurs et anomalies, que tu souhaites justement voir quand tu testes.