26.05.2021, 17:37
Hallo :)
jetzt hat sich doch noch eine Frage angeschlossen:
Wenn mehrere Teilnehmer in einer Buchung angemeldet werden und die MA-Namen in mehreren Zeilen stehen, werden diese nicht mit in die Variable Buch.MA_Name übernommen, weil das Array sich nur auf 1 Zeile beschränkt.
Mein erster Lösungsansatz, weitere Buch.MA_Name Variablen zu definieren scheitert daran, dass es nicht immer mehrere Zeilen mit Namen gibt und dann die Fehlermeldung "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs" aufpoppt.
Wie muss ich das im Code anpassen/integrieren, damit die Variablen Buch.MA_Name2, Buch.MA_Name3, Buch.MA_Name4 und Buch.MA_Name5 nur bei Bedarf ins Spiel kommen?
Bedarf heißt, falls es eben mehrere Zeilen mit Namen gibt. Wahrscheinlich ist es ganz einfach, aber ich blicke mal wieder nicht durch
Der aktuelle Code ist angehängt und funktioniert einwandfrei, wenn ich die zusätzlichen Variablen auskommentiere!
Besten Gruß,
Phiant
jetzt hat sich doch noch eine Frage angeschlossen:
Wenn mehrere Teilnehmer in einer Buchung angemeldet werden und die MA-Namen in mehreren Zeilen stehen, werden diese nicht mit in die Variable Buch.MA_Name übernommen, weil das Array sich nur auf 1 Zeile beschränkt.
Mein erster Lösungsansatz, weitere Buch.MA_Name Variablen zu definieren scheitert daran, dass es nicht immer mehrere Zeilen mit Namen gibt und dann die Fehlermeldung "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs" aufpoppt.
Wie muss ich das im Code anpassen/integrieren, damit die Variablen Buch.MA_Name2, Buch.MA_Name3, Buch.MA_Name4 und Buch.MA_Name5 nur bei Bedarf ins Spiel kommen?
Bedarf heißt, falls es eben mehrere Zeilen mit Namen gibt. Wahrscheinlich ist es ganz einfach, aber ich blicke mal wieder nicht durch
Der aktuelle Code ist angehängt und funktioniert einwandfrei, wenn ich die zusätzlichen Variablen auskommentiere!
Code:
Sub sb_Neue_Buchung()
Dim Buch As Buchung
Dim EML As MailItem, IBx As Folder
Dim Webinare As Folder
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
Set NSp = Application.GetNamespace("MAPI")
Set IBx = NSp.Folders.Item(myML).Folders.Item("Posteingang")
Set Webinare = NSp.Folders.Item(myML).Folders("Posteingang").Folders("Webinare")
Set EML = IBx.Items.GetLast
If EML.Class = olMail Then
If InStr(1, EML.Subject, "neue Buchung", vbBinaryCompare) > 0 Then
Ar = Split(EML.Body, vbLf)
Debug.Print UBound(Ar)
Buch.EMail = Ar(1)
Buch.Kurs = Ar(2)
Buch.Termin = Ar(3)
Buch.MA_Name = Ar(7)
Buch.MA_Name2 = Ar(8)
Buch.MA_Name3 = Ar(9)
Buch.MA_Name4 = Ar(10)
Buch.MA_Name5 = Ar(11)
EML.Move Webinare
With objMail
.To = Buch.EMail
.Subject = "Buchungsbestätigung Online-Training: " & Buch.Termin
.BodyFormat = 2
.GetInspector
.HTMLBody = "<span style='font-family:Calibri;font-size:11.5pt;'>" _
& "Text...</span>" & .HTMLBody
.Display
End With
End If
End If
End Sub
Besten Gruß,
Phiant