Création d'un mail depuis Excel avec choix de ligne
Résolu
mutinjb
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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
- Aller à la ligne excel - Guide
- Partage de photos en ligne - Guide
- Word et excel gratuit - Guide
- Creation de compte google - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.