VBA – die besten Beiträge

VBA Programmierung - Automatischer Email versandt Probleme?

Hallo ich hoffe Ihr könnt mir helfen :/

Folgendes Problem: Wenn ich die Mail versende, öffnen sich für jede Zeile eine extra Email und leider auch nur jeweils ein Empfänger und einer in cc.

Was muss ich nun in der Programmierung hinzufügen, um nur eine Email geöffnet zu bekommen, mit mehreren Empfängern (Falls mehrere Kreuze gesetzt worden sind). Ich danke euch echt wenn Ihr mir helfen können :/

Ich habe mir die Bausteine aus dem Internet zusammengesetzt, bin daher kein Profi darin.

Programmtext:

Private Sub Send_Email()
   '-------------< Send_Email() >-------------
   Dim sTitle As String
   sTitle = "Test-HTML Email from Excel"
   '< HMTL holen >
   Dim sTemplate As String
   sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame2.TextRange.Text
   '</ HMTL holen >
   '----< Send with Outlook >----
   Dim app_Outlook As Outlook.Application
   Set app_Outlook = New Outlook.Application
   '--< Email einstellen >--
   Dim objEmail As Outlook.MailItem
   Dim sEmail_Addresscc As String
   Dim sEmail_Address As String
   Dim iRow As Integer
   For iRow = 4 To 100
       If Cells(iRow, 21) = "x" Then
           '< get Email Address >
           'Column 2, B
           sEmail_Address = Cells(iRow, 19)
           sEmail_Addresscc = Cells(iRow, 20)
           '</ get Email Address >
           '< Fill Placeholders >
           Dim sHTML As String
           sHTML = Replace(sTemplate, "[@Name]", sEmail_Address)
           '</ Fill Placeholders >
           '--< Send Email >--
           Set objEmail = app_Outlook.CreateItem(olMailItem)
           objEmail.To = sEmail_Address
           objEmail.CC = sEmail_Addresscc
           objEmail.Subject = sTitle
           'objEmail.HTMLBody = sHTML 'use .HTMLBody for HTML
           objEmail.Body = sHTML      'and .body for pure Text
           objEmail.Display
           '--</ Send Email >--
       End If
   Next
   '< Abschluss >
   Set objEmail = Nothing
   Set app_Outlook = Nothing
   '</ Abschluss >
   MsgBox "Emails erstellt", vbInformation, "Fertig"
   '----</ Send with Outlook >----
   '-------------</ Send_Email() >-------------
End Sub

Bild zum Beitrag
Computer, Microsoft Excel, E-Mail, programmieren, VBA, VBA Programmierung, VBA Excel, makros erstellen

VBA zu HTML Code umgewandelt - Zeilenumbrüche weg?

Hallo,

ich habe durch den unten beigefügten Code versucht eine E-Mail samt Signatur automatisch kommen zu lassen. Nun habe ich das Problem, dass die Absätze in der Mail weg sind und alles in einer Zeile ist. Wie behebe ich das?

Private Sub CommandButton2_Click()

Dim objOutlook As Object

Dim objMail As Object

Dim S As String

Dim body As String

Dim htbody As String

Set objOutlook = CreateObject("Outlook.Application")

Set objMail = objOutlook.CreateItem(0)

If TextBox2.text = "" Or TextBox2.text = TextBox1.text Then

   body = "Sehr geehrte Frau x," & vbCrLf & _

   vbCrLf & _

   "Folgende/r Mitarbeiter/in ist erkrankt:" & vbCrLf & _

   vbCrLf & _

   ComboBox1.text & vbCrLf & _

   vbCrLf & _

   "Zeitraum: " + TextBox1.text

Else

   body = "Sehr geehrte Frau x," & vbCrLf & _

   vbCrLf & _

   "Folgender Mitarbeiter ist erkrankt:" & vbCrLf & _

   vbCrLf & _

   ComboBox1.text & vbCrLf & _

   vbCrLf & _

   "Zeitraum: " + TextBox1.text + " bis " + TextBox2.text

End If

htbody = fnConvert2HTML(htbody)

S = Environ("appdata") & "\Microsoft\Signatures\autoE-Mailsenden.htm"

If Dir(S, vbDirectory) <> vbNullString Then

   S = S

   S = CreateObject("Scripting.FileSystemObject").GetFile(S).OpenAsTextStream(1, -2).readall

       With objMail

            .To = "x.de"

            .Subject = "Krankmeldung " + ComboBox1.text + " x"

            htbody = body & "<br><br>" & S

           .htmlbody = "<font face=""Arial"">" & htbody & "</font>"

        .Display       'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!

       End With

Else

'   With objMail

'                 .To = Empfänger

'                 .Subject = Betreff

'

'

'                   htbody = body '& "<br><br>" & S

'                  .htmlbody = "<font face=""Arial"">" & htbody & "</font>"

'                  .Display

'

'

'          '    .Display       'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!

'   End With

End If

End Sub

Zudem noch folgende Funktion:

Function fnConvert2HTML(myText As String) As String

   Dim bldTagOn, itlTagOn, ulnTagOn, colTagOn As Boolean

   Dim i, chrCount, n As Integer

   Dim chrCol, chrLastCol, htmlTxt As String

   Dim myChar As String

   bldTagOn = False

   itlTagOn = False

   ulnTagOn = False

   colTagOn = False

   chrCol = "NONE"

   htmlTxt = "<html>"

   chrCount = Len(myText)

End Function

Danke im voraus!!!

Computer, Schule, E-Mail, HTML, VBA, VBA Programmierung, VBA Makro, VBA-Code, VBA Excel

[VBA] - Bestimmte Zeile aus HTML Dokument auslesen?

Hallo Community,

ich habe folgendes Problem.

Ich habe eine Excel Tabelle mit vielen ID's (Spalte B) und einen Ordner mit HTML-Dateien, die den IDs zugeordnet sind.

Im ersten Schritt bin ich alle ID's durchgegangen und habe falls vorhanden, die passende HTML Datei in einen Ordner abgespeichert.

Nun kommt der zweite Schritt bei dem ich eure Hilfe brauche. Ich möchte alle gefunden HTML Dateien durchgehen und nach einem bestimmten Bereich suchen. Im HTML Code sieht das ungefähr so aus:

<td class="category">
 <a name="attachments" id="attachments">Angehängte Dateien</a> </td>
<td colspan="5">
<a> unwichtig </a>
<a> WICHTIG </a> <- Hier steht der gesuchte Dateiname
<a> Unwichtig </a>
</td>

Das Ding ist, dass in diesem <td> Tag auch mehrere Dateien aufgeführt sind, der Aufbau ist aber immer gleich. Pro Datei gibt es 3 mal ein <a>-Tag und im mittleren stehen die wichtigen Informationen. Es gibt auch den Fall, dass dort keine Dateien und somit auch keine <a>-Tags vorhanden sind.

Mein bisheriges Makro sieht wie folgt aus:


 Const path = "M:*"
    Dim sheet As Worksheet
    Set sheet = ActiveWorkbook.Worksheets(2)
    maxRow = sheet.Cells(sheet.Rows.Count, "B").End(xlUp).Row
    Dim id As String
    Dim sourcePath As String
    Dim destPath As String
    Dim Filename As String
    For Row = 2 To maxRow
      sourcePath = path & "view.php-id=" & sheet.Cells(Row, 2) & ".html"
      Filename = "view.php-id=" & sheet.Cells(Row, 2) & ".html"
      MkDir (path & "gefunden\" & sheet.Cells(Row, 2))
      destPath = path & "gefunden\" & sheet.Cells(Row, 2) & "\" & sheet.Cells(Row, 2) & ".html"
      If Dir(sourcePath) = Filename Then
      FileCopy sourcePath, destPath
      Else
      MsgBox (sheet.Cells(Row, 2) & " nicht gefunden")
      End If
    Next Row

Um das alles nochmal zusammenzufassen, ich weiß nicht wie ich an die Namen der aufgeführten Dateien im HTML Dokument komme.

Wenn ich die Namen der Dateien erstmal habe, könnte ich auch weitermachen und die HTML-Doks mit passendem Anhang in einen Ordner kopieren.

Ich hoffe ihr verstehe was ich meine, für Fragen stehe ich gerne zu verfügung.

Grüße

Chris

Computer, Technik, HTML, programmieren, VBA, Technologie, VBA Programmierung, VBA Excel, Spiele und Gaming

Meistgelesene Beiträge zum Thema VBA