ListBox-Inhalt als Email verschicken

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von UltraTM.

    ListBox-Inhalt als Email verschicken

    Bei diesem Thema handelt es sich um eine ausgelagerte Fortsetzung des Themas Listbox per Email versenden

    Hallo erstmal und sorry das ich das alte Thema wieder aufgreife.

    Aber ich suche die gleiche Funktion. Bin nur mit vb nicht so vertraut das ich ein Profi bin.

    Ich versuche auch den Inhalt einer Listbox als email zu versenden.

    Hier mal mein Formularcode mit dem ich Ergebnisse suche die in die Listbox eingetragen werden:

    Quellcode

    1. Private Sub cmdSuchen_Click()
    2. Dim lng As Long
    3. Dim i As Integer
    4. Application.ScreenUpdating = False
    5. With frmEingabe
    6. ListBox1.Clear
    7. Worksheets(1).Activate
    8. i = 0
    9. For lng = 11 To ActiveSheet.UsedRange.Rows.Count
    10. If InStr(LCase(Cells(lng, 18).Value), LCase(TextBox1.Value)) > 0 Then
    11. ListBox1.AddItem Cells(lng, 1).text
    12. ListBox1.Column(0, i) = Cells(lng, 3).text
    13. ListBox1.Column(1, i) = Cells(lng, 4).text
    14. ListBox1.Column(2, i) = Cells(lng, 5).text
    15. ListBox1.Column(3, i) = Cells(lng, 24).text
    16. i = i + 1
    17. Else
    18. End If
    19. Next lng
    20. End With
    21. Application.ScreenUpdating = True
    22. Dim zelle As Range
    23. Dim sBegriff As Date
    24. If IsDate(TextBox1) Then
    25. sBegriff = CDate(TextBox1)
    26. Else
    27. MsgBox "Es muss für diese Suche immer ein Datum vorhanden sein!", _
    28. vbInformation, "Hinweis"
    29. End If
    30. If sBegriff = 0 Then Exit Sub
    31. Set zelle = Worksheets(1).Columns(18) _
    32. .Find(sBegriff, LookAt:=xlWhole)
    33. If zelle Is Nothing Then
    34. MsgBox "Es wurden keine Maschinen gefunden!"
    35. End If
    36. 'Spaltenbreite festlegen
    37. ListBox1.ColumnWidths = "30 Pt;60 Pt;100 Pt"
    38. End Sub


    Und hier der Code für meinen Button mit dem ich den angezeigten inhalt der LIstbox gerne als email senden würde:

    Quellcode

    1. Private Sub CommandButton2_Click()
    2. 'Erstellen der Email für Outlook
    3. Dim objOutlook As Object
    4. Dim objMail As Object
    5. Set objOutlook = CreateObject("Outlook.Application")
    6. Set objMail = objOutlook.CreateItem(0)
    7. With objMail
    8. .To = "renekiesewetter@msn.com"
    9. .CC = ""
    10. .BCC = ""
    11. .Subject = "Ready Maschinen"
    12. .Body = sBody & ", " & Item
    13. .Display 'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
    14. End With
    15. End Sub


    Ich verstehe nur nicht ganz wo ich diesen Code unterbekommen kann ohne das ich immer einen Fehler bekomme:

    Quellcode

    1. Dim sBody As String
    2. For Each Item In ListBox1.items
    3. sBody = sBody & ", " & Item
    4. Next


    VIelen Dank schon mal :)

    ~blaze~: Beiträge in neues Thema verschoben

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    Hallo,

    der Code passt z.B. in Zeile 9.
    Vorher Zeile 15 ändern:

    Visual Basic-Quellcode

    1. .Body = sBody


    geht auch nachher, ist dann aber nicht mehr Zeile 15 ;)

    Ich würde es allerdings andersrum machen, dann hast Du am Anfang kein Komma.:

    Visual Basic-Quellcode

    1. Dim sBody As String
    2. For Each Item In ListBox1.items
    3. sBody = sBody & Item & ", "
    4. Next

    Allerdings dann am Ende. Beide Kommas lassen sich natürlich auch vor dem Senden entfernen.

    Visual Basic-Quellcode

    1. Dim sBody As String
    2. For Each Item In ListBox1.items
    3. sBody = sBody & Item & ", "
    4. Next
    5. sBody = left$(sbody, len(sbody)-1)


    Für "Deinen" Code

    Visual Basic-Quellcode

    1. sbody = mid$(sbody,2)

    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hallo!

    @LaMiy
    Bitte beachte dass es sich hier um VBA handelt. Deine .Net-Codes funktionieren in VBA nicht. Eine neue Zeile z.B. erreicht man mit vbNewLine. Anweisungen wie For Each i As String In ListBox1.Items funktionieren in VBA nicht. MessageBox.Show gibt es natürlich auch nicht in VBA.

    Gruß, René
    Hallo,

    hm VBA habe ich glatt übersehen.

    in VBA würde ich Folgendes (ungetestet) probieren:

    Visual Basic-Quellcode

    1. Dim sBody As String
    2. Dim i As Integer
    3. Dim objOutlook As Object
    4. Dim objMail As Object
    5. With ListBox1
    6. If .ListCount > 0 Then
    7. For i = 0 To .ListCount - 1
    8. sBody = sBody & "," & .List(i)
    9. Next
    10. sBody = Mid$(sBody, 2)
    11. Set objOutlook = CreateObject("Outlook.Application")
    12. Set objMail = objOutlook.CreateItem(0)
    13. With objMail
    14. .To = "renekiesewetter@msn.com"
    15. .CC = ""
    16. .BCC = ""
    17. .Subject = "Ready Maschinen"
    18. .Body = sBody
    19. .Display 'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
    20. End With
    21. Set objMail = Nothing
    22. Set objOutlook = Nothing
    23. Else
    24. MsgBox "Nix zum versenden", vbCritical + vbOKOnly, "Liste leer"
    25. End If
    26. End With


    Edit: Code korrigiert
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „peterfido“ ()