generaliser la macro sur plusieurs lignes

briatexte

XLDnaute Nouveau
Bonjour,

J'utilise une macro à travers un bouton qui fonctionne très bien.
Elle n'est utilisée que pour des cellules précises (h17,c17 et e17).
J'aimerai pouvoir la transformer pour positionner un bouton sur chaque ligne et qu'elle traite les éléments de la ligne concernée.

Est-ce possible?

Voici ma macro

Dim adresse As String
Dim expediteur As String
Dim responsable As String
Dim contenu As String
Dim Objet As String
Dim Envoi As String
Dim texte1 As String
Dim texte2 As String
Dim texte3 As String
texte1 = "Nous vous informons:%0A %0A"
texte2 = "%0A %0AL'expéditeur de cette signalisation est:%0A"
texte3 = "%0A %0ACe service à pour adresse mail: %0A"
adresse = Range("h17:hxxxxx")
expediteur = Range("e17:exxxxx")
contenu = Range("c17:cxxxx")
Objet = Msg & Range("d17:dxxxxx")
Envoi = "mailto:" & adresse & "?subject=" & Objet & "&body=" & texte1 & contenu & texte2 & expediteur & texte3
ActiveWorkbook.FollowHyperlink Address:=Envoi


Pouvez-vous m'aider?
 

GeoTrouvePas

XLDnaute Impliqué
Re : generaliser la macro sur plusieurs lignes

Bonjour,

J'ai un peu de mal à comprendre ce que tu souhaites exactement. Tu voudrais faire passer cette macro sur plusieurs lignes ?

Tu peux essayer comme ceci :

Code:
Dim adresse As String
Dim expediteur As String
Dim responsable As String
Dim contenu As String
Dim Objet As String
Dim Envoi As String
Dim texte1 As String
Dim texte2 As String
Dim texte3 As String
texte1 = "Nous vous informons:%0A %0A"
texte2 = "%0A %0AL'expéditeur de cette signalisation est:%0A"
texte3 = "%0A %0ACe service à pour adresse mail: %0A"
For i = 17 to xxxxxx
   adresse = Cells((i, 8)
   expediteur = Cells((i, 5)
   contenu = Cells(i, 3)
   Objet = Msg & Cells(i, 4)
   Envoi = "mailto:" & adresse & "?subject=" & Objet & "&body=" & texte1 & contenu & texte2 & expediteur & texte3
   ActiveWorkbook.FollowHyperlink Address:=Envoi
Next
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : generaliser la macro sur plusieurs lignes

Bonjour Briatexte, GeoTrouvePas, bonjour le forum,

Comme je n'ai pas compris pareil que GeoTrouvePas, une autre solution. Avec une boite d'entrée (InputBox) qui demande à l'utilisateur de taper le numéro de la ligne. Numéro repris ensuite dans la macro... :
Code:
Public Sub m1()
Dim BE As Variant
Dim adresse As String
Dim expediteur As String
Dim responsable As String
Dim contenu As String
Dim Objet As String
Dim Envoi As String
Dim texte1 As String
Dim texte2 As String
Dim texte3 As String

ici:
BE = Application.InputBox("Tapez le numéro de ligne (à partir de 17)", "LIGNE", Type:=1)
If BE = False Then Exit Sub
If BE < 17 Then MsgBox "Ligne non valide !": GoTo ici
texte1 = "Nous vous informons:%0A %0A"
texte2 = "%0A %0AL'expéditeur de cette signalisation est:%0A"
texte3 = "%0A %0ACe service à pour adresse mail: %0A"
adresse = Cells(BE, 8)
expediteur = Cells(BE, 5)
contenu = Cells(BE, 3)
Objet = Msg & Cells(BE, 4)
Envoi = "mailto:" & adresse & "?subject=" & Objet & "&body=" & texte1 & contenu & texte2 & expediteur & texte3
ActiveWorkbook.FollowHyperlink Address:=Envoi
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : generaliser la macro sur plusieurs lignes

Bonjour le fil, bonjour le forum,

GeoTrouvePas a aussi participé à ton fil. Ne mérite-t-il pas au moins un petit "Merci" ? Je le fais pour toi...
 

briatexte

XLDnaute Nouveau
Re : generaliser la macro sur plusieurs lignes

Pardon,

Je reviens pour remercier geotrouvepas, j'étais plongé dans mon travail:=))))).
Dernière question,
Je viens de me rendre compte que la fonction "mailto", telle que je l'ai sur la macro, était limitative dans le nombre de caractères du corp du mail.
Y a t-il un moyen de contourner cette limitation?

Cordialement,
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry