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   -
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
A voir également:

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.
0
mutinjb Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis preneur oui.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mutinjb Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Pour associer le code à une macro démarrable par combinaison de touches, remplace
Private Sub CommandButton1_Click()

par
public Sub unemacro()

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é):
dim nligne as long
nligne=selection.row

Ensuite, tu peux remplacer, par exemple
Range("C2")

par
Cells(nligne, "C")

Pendant que tu testes, mets en commentaire les
On Error Resume Next
, cela cacherait les erreurs et anomalies, que tu souhaites justement voir quand tu testes.
0
mutinjb Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
A quel moment est-ce que je déclare ma combinaison de touche?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
0
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  
 
Merci infiniment pour ton aide et tes conseils.
Belle journée à toi.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mutinjb Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Avec plaisir!
Peux-tu marquer la discussion comme résolue?
0