kleines technischen Problem - deshalb ausversehen 3 mal gepostest. HIer die andere Version. GIbt nur ein Array, bei dem beide DAten drin sind. In der for Schleife springt der code immer um 2 weiter und mit i greift man beide Werte ab (also i und i-1, i ist der Bookmark und i-1 die Spaltennummer). Sieht dann so aus.
Dim AbsBM As Variant
AbsBM = Array(2, "TM_Vorname", 2, "TM_Vorname2", 3, "TM_Nachname", 3, "TM_Nachname2", 4, "TM_StrHnr", 5, "TM_PLZ", 6, "TM_Ort", 7, "TM_Tel", 8, "TM_Mail")
lZeile = 2 'Wir starten in Zeile 2, da in der ersten Zeile überschriften stehen
With oExcelWorkbook.Sheets(DatAbsender)
Do While .Cells(lZeile, 2) <> ""
'Wenn der Eintrag der Listbox mit dem Namen in der Adresstabelle
'übereinstimmt, dann werden die Textmarken gefüllt!
If ListBox1.Text = CStr(.Cells(lZeile, 1).Value) Then
'Eintrag gefunden, Textmarken füllen
'deine 8 Bookmarks würde ich in der SChleife abarbeiten
For i = 1 To 17 Step 2
'Fehlerbehandlung falls BM nicht existiert fehlt, jetzt wird da einfach nur nix gemacht
If ActiveDocument.Bookmarks.Exists(AbsBM(i)) Then
Set TMRange = ActiveDocument.Bookmarks(AbsBM(i)).Range
TMRange = CStr(.Cells(lZeile, AbsBM(i - 1)).Value)
ActiveDocument.Bookmarks.Add AbsBM(i), TMRange
Set TMRange = Nothing
End If
Next i
Exit Do
End If
lZeile = lZeile + 1
Loop
End With
|