Modification --> création mail

ironangel

XLDnaute Occasionnel
Bonjour le forum, les xldnautes,
je sollicite encore votre aide, en effet, je dispose actuellement d'une macro qui me permet, en l'executant, d'ouvrir un mail et d'y concatener un message + copie des données dans une autre feuille (archive) du même fichier.

Pour info la macro:

Private Sub CommandButton2_Click()
Dim Msg As String
Dim Subj As String
Dim URLto As String


Subj = Range("A4") & " " & Range("B4") & " " & Range("C4") & " " & Range("D4") & " " & Range("E4") & " " & Range("F4") & " " & Range("G4")
Msg = "Bonjour,%0D%0A%0D%0A" & " approuvé le: " & Range("N4")


J'aimerais pouvoir appliquer cette meme macro dans ma feuille archive avec les modifications suivantes:

- si modification d'une cellule: ex A23, alors la macro reprend les infos de cette meme ligne dans le mail (je pense que cela doit pouvoir ce resoudre avec un If...?)

Merci d'avance pour votre aide.

Amicalement
 

ironangel

XLDnaute Occasionnel
Re : Modification --> création mail

Salut le forum

y aurait il quelqu'un pour m'aider sur ce probleme, je suis sur que les modifications à apporter ne sont pas importantes mais je ne peux y arriver seul.
Merci d'avance pour votre aide

Amicalement
 
C

Compte Supprimé 979

Guest
Re : Modification --> création mail

Salut Ironangel,

Si tu n'as pas de réponse, c'est peut-être que ton explication n'est pas claire :confused:

En tout cas pour moi elle ne l'est pas !

Pourrais-tu nous mettre un bout de fichier avec un extrait de ce que tu as et de ce que tu voudrais avoir

Cordialement.
 

ironangel

XLDnaute Occasionnel
Re : Modification --> création mail

Bonjour,

Effectivement, pour moi ça peut paraitre clair mais pour quelqu'un qui ne connait pas mon projet, ça peut être confus.

En piece jointe, un fichier, comme tu le verras, lorsque j'execute la macro, elle m'ouvre un mail et elle copie la ligne remplie dans la feuille "archive"

J'aimerais que depuis la feuille archive, j'ai une macro qui me permette d'ouvrir un mail en reprenant les infos de la ligne concernée s'il y a une modification.

Pour exemple: modif de la cellule B5, la macro reprend donc les infos de la ligne 5 dans le mail.

N'hésitez pas si ce n'est pas clair.

Merci d'avance pour votre aide

Cordialement
 

Pièces jointes

  • Déclaration BAT test.zip
    16.8 KB · Affichages: 33

ironangel

XLDnaute Occasionnel
Re : Modification --> création mail

Salut le forum, BrunoM45,

J'ai mis un fichier pour que ma demande soit plus clair, est ce que quelqu'un aurait un peu de temps à accorder à ma requette?

Merci d'avance pour votre aide et votre temps

Amicalement

Seb
 
C

Compte Supprimé 979

Guest
Re : Modification --> création mail

Salut ironangel,

Je ne comprend pas ou est le problème épineux :confused:

Dans ta feuille Archive BAT, mets ce code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Msg As String
  Dim Subj As String
  Dim URLto As String
  Dim Lig As Long
  Lig = Target.Row
  
  With ActiveSheet
    Subj = Range("A" & Lig) & " " & Range("B" & Lig) & " " & Range("C" & Lig) & " " & Range("D" & Lig) & " " & Range("E" & Lig) & " " & Range("F" & Lig) & " " & Range("G" & Lig)
    Msg = "Bonjour,%0D%0A%0D%0A" & "L'article : " & Range("N" & Lig) & " comme " & Range("C" & Lig) & " par  " & "%0D%0A%0D%0A- Article: " _
      & Range("A" & Lig) & " " & Range("E" & Lig) & " " & Range("G" & Lig) & "%0D%0A%0D%0A- jlkijk: " & Range("B" & Lig) & "%0D%0A%0D%0A- pfffff: " _
      & Range("H" & Lig) & " à " & Range("I" & Lig) & "   dfsdfdfsd " & Range("J" & Lig) & " cce: " & Range("K" & Lig) & " à " & Range("L" & Lig) _
      & "   pourcents " & Range("M" & Lig) & "%0D%0A%0D%0Atetetetre " & "%0D%0A%0D%0A " & "" & Range("X30") & " " & Range("X310") & "%0D%0A%0D%0ACordialement "
  End With
  URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
  ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub

Et dis nous

A+
 

ironangel

XLDnaute Occasionnel
Re : Modification --> création mail

Bonjour Bruno,

Merci pour ton aide, cependant un probleme à l'execution de la macro, en effet à la ligne "Lig = target.row" la macro bug et me dit "objet requis"

Une solution à ce probleme? merci d'avance pour ton aide

Amicalement
 
C

Compte Supprimé 979

Guest
Re : Modification --> création mail

Salut Ironangel,

Si tu as mis le code dans la procédure : Private Sub Worksheet_Change(ByVal Target As Range) qui elle même doit être dans ta feuille "Archive"

Tu ne devrais pas avoir de problème :confused:

Puisque : Lig = Target.Row
Reprend la ligne de la cellule cible qui est envoyé à l'évènement "Change"

A+
 

ironangel

XLDnaute Occasionnel
Re : Modification --> création mail

Bonjour Bruno,

Merci pour ton aide, effectivement cela marche quand je l'applique directement sur la feuille, cependant, je voudrais pouvoir exécuter la macro via un bouton et non qu'elle s'exécute automatiquement des que l'on touche à une cellule: est-ce possible?

Si non, est-ce possible, de dire à la macro de ne pas s'executer lorsque l'on supprime le contenu de la cellule ou que l'on double clique sur la cellule, en gros dire à la macro de ne pas s'executer si la cellule est vide?

Merci d'avance pour ton aide

Amicalement
 
C

Compte Supprimé 979

Guest
Re : Modification --> création mail

Salut ironangel,

Ecoute je suis vraiment désolé de te dire ça,
mais si tu ne sait pas transformer une sub évènement en sub tout court
vaux mieux que tu arrête le VBA ;):D

Code:
Sub EnvoiMail()
  Dim Msg As String
  Dim Subj As String
  Dim URLto As String
  Dim Lig As Long
  Lig = Selection.Row
  
  With ActiveSheet
    Subj = Range("A" & Lig) & " " & Range("B" & Lig) & " " & Range("C" & Lig) & " " & Range("D" & Lig) & " " & Range("E" & Lig) & " " & Range("F" & Lig) & " " & Range("G" & Lig)
    Msg = "Bonjour,%0D%0A%0D%0A" & "L'article : " & Range("N" & Lig) & " comme " & Range("C" & Lig) & " par  " & "%0D%0A%0D%0A- Article: " _
      & Range("A" & Lig) & " " & Range("E" & Lig) & " " & Range("G" & Lig) & "%0D%0A%0D%0A- jlkijk: " & Range("B" & Lig) & "%0D%0A%0D%0A- pfffff: " _
      & Range("H" & Lig) & " à " & Range("I" & Lig) & "   dfsdfdfsd " & Range("J" & Lig) & " cce: " & Range("K" & Lig) & " à " & Range("L" & Lig) _
      & "   pourcents " & Range("M" & Lig) & "%0D%0A%0D%0Atetetetre " & "%0D%0A%0D%0A " & "" & Range("X30") & " " & Range("X310") & "%0D%0A%0D%0ACordialement "
  End With
  URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
  ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub
Clique droit sur bouton -> Affecter macro :EnvoiMail

A+
 

Discussions similaires

Réponses
17
Affichages
1 K
  • Question
Microsoft 365 Macro VBA
Réponses
2
Affichages
415

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine