Hallo nochmal! Also ohne den Code zu sehen, wüßte ich nicht, woran es liegt. Deine Zeile wäre im Code auf der Seite der Wert bei meine Textmarke. Habe das mal an deinem Beispiel reingeschrieben. Habe es (dafür mal für meine Bedürfnisse verkürzt - hätte sonst zuviel kopieren müssen bzw. den Code aufgebläht) :-) Falls du mit option explicit arbeitest, mal am Anfang meineBM und i anlegen. Im ersten Array sind alle Bookmarks drin und i dient nur als Zählvariable. Der Code sollte laufen.Bei Fragen einfach nochmal melden. VG
'Zuerst wird die Excel Datei geöffnet
Set oExcelApp = CreateObject("Excel.Application")
Set oExcelWorkbook = oExcelApp.Workbooks.Open(ThisDocument.Path & DatenBezug)
meineBM = Array("TM_E_Firma", "TM_E_StrHnr", "TM_E_PLZ", "TM_E_Ort", "TM_E_Tel", "TM_E_Fax", "TM_E_Mail", "TM_E_KD")
lZeile = 2 'Wir starten in Zeile 2, da in der ersten Zeile überschriften stehen
With oExcelWorkbook.Sheets(DatEmpfaenger)
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 = 0 To 7
'Fehlerbehandlung falls BM nicht existiert fehlt, jetzt wird da einfach nur nix gemacht
If ActiveDocument.Bookmarks.Exists(meineBM(i)) Then
Set TMRange = ActiveDocument.Bookmarks(meineBM(i)).Range
TMRange = CStr(.Cells(lZeile, i + 3).Value)
ActiveDocument.Bookmarks.Add meineBM(i), TMRange
Set TMRange = Nothing
End If
Next i
Exit Do
End If
lZeile = lZeile + 1
Loop
End With
|