2015-01-30 8 views
0

Я хотел бы добавить значение каждой не пустой ячейки в сообщении для отправки, но я не знаю, какой хороший синтаксис для использования?VBA - Msg - Значение ячеек

Спасибо за ваши советы!

Жан-Марк

Private Sub CommandButton6_Click() 
    Dim MailAd As String 
    Dim Msg As String 
    Dim Subj As String 
    Dim URLto As String 
    Dim Nom As String 
    Nom = "User name" 
    Dim Pole As String 
    Pole = " POLE" 
    Dim Texte As String 
    Texte = " Thanks for the informations you send to me " 


    'Sélectionne la cellule correspondant à l'adresse mail de la ligne : 
    If ComboBox1.ListIndex <> -1 Then Cells(ComboBox1.ListIndex + 2, 8).Select 
    'Le mail est adressé sur la base de la cellule active : 
    MailAd = TextBox7 


    Range("A2:J32").Select 

    Selection.Copy 

    Dim StrBody As String 
    StrBody = Sheets("FICHIER ADRESSES").Range("A2").Value 

    'Copie = TextBox.2 'bien mentionner le n° de la texbox 
    Subj = "Message à l'attention de " 'Objet du message automatique mais on peut faire réféence à une TextBox 
    Msg = Msg & "Bonjour " & TextBox2.Text & ",%0D%0A %0D%0A" 'Corps du message 
    'Msg = Msg & "Bonjour " & Selection.Insert & ",%0D%0A %0D%0A" 
    Msg = Msg & Texte & StrBody & ",%0D%0A %0D%0A" & Nom & Pole & "%0D%0A %0D%0A" 'Corps du message 
    URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg & "&Cc=" '& copie 
    ActiveWorkbook.FollowHyperlink Address:=URLto 
    End Sub 
+1

Вы будете необходимо перебрать диапазон ячеек и объединить непустые значения. –

ответ

1

Предположив вы говорите о диапазоне A2: J32 и хотите, чтобы значения, чтобы показать в своем "MSG" строки: (это непроверенные)

Private Sub CommandButton6_Click() 
     Dim MailAd As String 
     Dim Msg As String 
     Dim Subj As String 
     Dim URLto As String 
     Dim Nom As String 
     Nom = "User name" 
     Dim Pole As String 
     Pole = " POLE" 
     Dim Texte As String 
     Texte = " Thanks for the informations you send to me " 


     'Sélectionne la cellule correspondant à l'adresse mail de la ligne : 
     If ComboBox1.ListIndex <> -1 Then Cells(ComboBox1.ListIndex + 2, 8).Select 
     'Le mail est adressé sur la base de la cellule active : 
     MailAd = TextBox7 


     Range("A2:J32").Select 

    Dim rngCell as Range, sNonEmpty as string 

    For each rngCell in Range("A2:J32") 
     if rngcell.value <> "" then snonempty = _ 
       iif(snonempty="",rngcell.value,snonempty & ", " & rngcell.value) 
    Next 

     Selection.Copy 

     Dim StrBody As String 
     StrBody = Sheets("FICHIER ADRESSES").Range("A2").Value 

     'Copie = TextBox.2 'bien mentionner le n° de la texbox 
     Subj = "Message à l'attention de " 'Objet du message automatique mais on peut faire réféence à une TextBox 
     Msg = Msg & "Bonjour " & TextBox2.Text & ",%0D%0A %0D%0A" 'Corps du message 
     'Msg = Msg & "Bonjour " & Selection.Insert & ",%0D%0A %0D%0A" 
     Msg = Msg & Texte & StrBody & ",%0D%0A %0D%0A" & Nom & Pole & "%0D%0A %0D%0A" & VBNEWLINE & _ 
"YOUR VALUES: " & sNonEmpty 'Corps du message 
     URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg & "&Cc=" '& copie 
    ActiveWorkbook.FollowHyperlink Address:=URLto 
     End Sub 
Смежные вопросы