Excel : parser une plage selectionnée

Excel : parser une plage selectionnée - VB/VBA/VBS - Programmation

Marsh Posté le 02-05-2024 à 21:19:21    

Bonjour,
 
j'essaye d'automatiser l'envoi d'email via vba sous excel.
Cela fonctionne bien.
 
Il me reste  deux choses que je n'arrive pas à faire  
1 : comment mettre dans Range la plage de cellulles selectionnées ? (à la place de mon Set RList = Range("B1", Range("B1" ).End(xlDown))
 
 
2 : Comment dans le .Body, je peux insé"rer une image (elle est en local, f:\test\01.jpg)
 
Voici mon code :  
 

Code :
  1. Sub sendmail()
  2. Dim EApp As Object
  3. Set EApp = CreateObject("Outlook.Application" )
  4. Dim EItem As Object
  5. Set EItem = EApp.CreateItem(0)
  6. Dim path As String
  7. path = "F:\TEMPOBOX\AFFICHEUR TEMPO - Notice Mars 2024.pdf"
  8. Dim RList As Range
  9. 'Set RList = Range("B1", Range("B1" ).End(xlDown))
  10. Dim R As Range
  11. For Each R In RList
  12.     Set EItem = EApp.CreateItem(0)
  13.    
  14.     With EItem
  15.         .To = R.Offset(0, 8)
  16.         .SentOnBehalfOfName = "MONADRESEMAIL"
  17.         .Subject = "Titre du message"
  18.         .Attachments.Add (path)
  19.         .Body = "Bonjour " & R & " " & R.Offset(0, 1) & vbNewLine & vbNewLine & vbNewLine & vbNewLine _
  20.         & "Je vous remercie pour votre achat." & vbNewLine & vbNewLine _
  21.      
  22.         .Display
  23.    
  24.     End With
  25.    
  26. Next R
  27.    
  28. Set EApp = Nothing
  29. Set EItem = Nothing
  30. End Sub


 
Merci pour votre aide.


Message édité par davidmarli le 03-05-2024 à 08:32:14

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 02-05-2024 à 21:19:21   

Reply

Marsh Posté le 03-05-2024 à 08:17:41    

je pense ne pas avoir été clair pour le 1.
 
En fait j'ai des données dans les colonnes B et suivantes (jusqu'à M)
 
Dans mon premier exemple je spécifie dans la macro la plage de B1 jusqu'à la dernière valeur contenues dans la colonne B.
 
Moi ce que je voudrais, c'est que l'utilisateur sélectionne une plage (par exemple de B150 à B156) et qu'ensuite la macro se fasse jute sur ces lignes là.
 
J'ai vu qu'on pouvait selectionner une plage avec un inputbox (type 8)
 
Mais ensuite je ne vois pas comment on passe de l'inputbox à l'équivalent de mon "Set RList = Range("B1", Range("B1" ).End(xlDown))"
 
En espérant avoir été plus clair.
 
PS : c'est ma première macro, je n'ai vraiment aucune connaissance en VBA
 
Merci pour votre aide.

Reply

Marsh Posté le 03-05-2024 à 12:14:27    

 
  Bonjour, comme pourtant indiqué dans l'aide VBA :
 

Code :
  1. Set RList = Application.InputBox(prompt := "Sample", type := 8)


 

Reply

Marsh Posté le 03-05-2024 à 15:02:37    

Il me semble que j'avais essayé cela...
Je revois ça ce soir.
 
Merci.
 


Message édité par davidmarli le 03-05-2024 à 15:03:13

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed