Ich bin dabei ein Wordfomular mit Daten aus einer .csv Datei zu füllen.
Die csv-Datei stammt aus einer Auswertung aus einem externen Programm.
Die CSV hat sehr viele Spalten aber nur zwei Zeilen (Überschrift,Wert) und ist wie folgt aufgebaut:
Name ; Vorname ; Kundennummer ; BetreuungspersonA ; BetreuungspersonB....
Das Problem dabei ist, dass sich die Spaltenreihenfolge ändern kann.
Es kann also im extremen auch mal so aussehen:
BetreuungspersonB ; Kundennummer ; Vorname ; BezugspersonA ; Name ; ...
Bisher hatte ich es so gelöst:
'Excel-Mappe öffnen
Set excelinstanz = CreateObject("Excel.application")
excelinstanz.Visible = False 'zum Testen
datei = "U:\micos\Tmp\Office Kunde (IHP-Daten).csv"
Set excelmappe = excelinstanz.workbooks.Open(FileName:=datei, Local:=True)
Set excelsheet = excelmappe.sheets("Office Kunde (IHP-Daten)")
'Felder befüllen
ActiveDocument.FormFields("KundeNachname").Result = excelsheet.Range("h2").Value
ActiveDocument.FormFields("KundeVorname").Result = excelsheet.Range("i2").Value
ActiveDocument.FormFields("KundeGebDatum").Result = excelsheet.Range("q2").Value
ActiveDocument.FormFields("KundeGebOrt").Result = excelsheet.Range("s2").Value
Das funktioniert aber eben nur wenn sich die Spalten-Reihenfolge nicht ändert. Wenn doch verschiebt sich natürlich alles.
Meine Idee wäre nun, die erste Zeile nach der Überschrift zu durchsuchen, daraufhin die passende Spalte herauszufinden und so dann die richtige Zelle auszulesen.
Nur scheitere ich dabei bisher kläglich und hoffe nun das vielleicht jemand von euch den entscheidenden Tipp bzw. die Lösung hat.
Ich wäre euch für eure Hilfe sehr Dankbar!
|