goodbytes
Goto Top

String in anderer csv finden und Spalte ausgeben

Hallo,
ich stehe gerade vor einem blöden Problem und komme einfach nicht weiter.

Ich muss aus einer csv-Datei, welche aus einer speziellen Anwendung kam, die Daten in der richtigen Reihenfolge herausziehen und in meine usgabe-csv reinschreiben.

Das gesamte Umfeld ist klar (die bereits geöffnete Datei auswählen, die benutzte Zeilen und Spalten ermitteln und als feste Werte für meine For-Schleifen verwenden.

Die Quelldatei ist allerdings nicht gerade gut strukturiert, die zu suchenden Indexe sind in verschiedene Zeilen verteilt.

In der Datei, welche das Makro enthält, gibt es eine Tabelle. In dieser Tabelle gehe ich in einer bestimmten Spalte Zeile für Zeile durch bis zum Schluss und muss in der Quelldatei nach dem Value jeder Zeile der reihe nach suchen. Wenn eine Übereinstimmung da ist übergebe ich die gefundene Spalte und (!) die Zeile in der Quelldatei an meine Ausgabe Pint#1 Funktion.

Leider klappt es aber nicht ganz so, ich dreh mich da irgendwie im Kreise.

Ich muss im Prinzip im Haupt-Sub die Zeilen der Vorgaben-Spalte in einer Schleife durchlaufen und dann in der Quell-csv die übereinstimmende Spalte ermitteln. Diese kann ich dann in der Haup-Sub zusammen mit der gerade aktuellen Zeile mit Werten an die Ausgabefunktion übergeben.

Die Quelldatei mit For-Schleifen für Zeilen und Spalten zu durchsuchen ist nervig und vor allem dauert es dann auch ewig.

Vielleicht hat schon mal jemand dieses Problem gehabt?

Vielen Dank schon mal im Voraus !!!

Gruß
Torsten

Content-Key: 208327

Url: https://administrator.de/contentid/208327

Printed on: April 26, 2024 at 21:04 o'clock

Member: bastla
bastla Jun 19, 2013 updated at 21:41:15 (UTC)
Goto Top
Hallo TorstenB!

Wenn ich das einigermaßen richtig interpretiere, könnte die Funktion "Find" helfen - um den Inhalt der Zelle B3 in "Tabelle2!A1:F50" zu suchen etwa:
With Worksheets("Tabelle2")  
    Set c = .Range(.Cells(1, 1), .Cells(50, 6)).Find(Cells(5, 2).Value, , xlValues, xlWhole)
    If Not c Is Nothing Then
        Debug.Print "Spalte: " & c.Column  
        Debug.Print "Zeile:  " & c.Row  
    End If
End With
Grüße
bastla