Daten aus Excel-Matrix herauslesen
Guten Tag, ich bin Lea und neue hier im Forum, ich hoffe ihr könnt mir etwas weiterhelfen. ;)
Ich habe eine Excel Matrix, die in den ersten zwei Zeilen etwa so aufgebaut ist.
Land (insgesamt: 22 Länder): Deutschland, Schweiz, Österreich
Stadt (insgesamt 272 Städte): Bremen, Hamburg, Zürich, Genf, Wien, Graz, Linz
eindeutig zugeordnet ist dies immer. beispielsweise C1 Deutschland, C2 Hamburg; F1 England, F2 London
In den Spalten habe ich von A3 an eine fortlaufende Nummerierung (1-213) und von B3 an 216 Personennamen.
Jetzt habe ich in der Tabelle die Verbindungen mit Zahlen hinterlegt.
Beispiele
A4 : 2; B4: lea1987 - C1 Deutschland, C2 Hamburg und die Verbindung ist C4: Heimatort
A4 : 2; B4: lea1987 - D1 Deutschland, D2 Bremen und die Verbindung ist D4: LEER
A10: 8;B10: Max Mustermann - C1 Deutschland, C2 Hamburg und die Verbindung ist C10: Wohnort
für die Verbindungen gibt es 5 Optionen: Heimatort, Wohnort, Studienort, Ruhestand und ein leeres Feld.
Nun möchte ich diese Daten so herauslesen, dass ich sie in eine Datenbank importieren kann. Sie sollen in diese definierten Felder
A1: ID; B1: NAME; C1: LAND; D1: STADT E1: VERBINDUNG
Am Ende dürfte ich 800 Zeilen haben, da ich 800 Verbindungen habe.
So, das war mein Problem geschildert. ;) Nun meine Frage: Kann ich das irgendwie programmieren, dass sich das automatisch herauszieht und ich nicht alles einzeln eingeben muss? Das würde nämlich Tage dauern bei den 800 Verbindungen.
((
Ich bin nicht so gut, was Makros oder VisualBasic angeht, bringe es mir aber gerne bei, wenn ich mal n Anfang hab.
Es wär total super, wenn mir jemand hier weiterhelfen könnte.
Tausend Danke euch schon Mal
Die LEA
Ich habe eine Excel Matrix, die in den ersten zwei Zeilen etwa so aufgebaut ist.
Land (insgesamt: 22 Länder): Deutschland, Schweiz, Österreich
Stadt (insgesamt 272 Städte): Bremen, Hamburg, Zürich, Genf, Wien, Graz, Linz
eindeutig zugeordnet ist dies immer. beispielsweise C1 Deutschland, C2 Hamburg; F1 England, F2 London
In den Spalten habe ich von A3 an eine fortlaufende Nummerierung (1-213) und von B3 an 216 Personennamen.
Jetzt habe ich in der Tabelle die Verbindungen mit Zahlen hinterlegt.
Beispiele
A4 : 2; B4: lea1987 - C1 Deutschland, C2 Hamburg und die Verbindung ist C4: Heimatort
A4 : 2; B4: lea1987 - D1 Deutschland, D2 Bremen und die Verbindung ist D4: LEER
A10: 8;B10: Max Mustermann - C1 Deutschland, C2 Hamburg und die Verbindung ist C10: Wohnort
für die Verbindungen gibt es 5 Optionen: Heimatort, Wohnort, Studienort, Ruhestand und ein leeres Feld.
Nun möchte ich diese Daten so herauslesen, dass ich sie in eine Datenbank importieren kann. Sie sollen in diese definierten Felder
A1: ID; B1: NAME; C1: LAND; D1: STADT E1: VERBINDUNG
Am Ende dürfte ich 800 Zeilen haben, da ich 800 Verbindungen habe.
So, das war mein Problem geschildert. ;) Nun meine Frage: Kann ich das irgendwie programmieren, dass sich das automatisch herauszieht und ich nicht alles einzeln eingeben muss? Das würde nämlich Tage dauern bei den 800 Verbindungen.
Ich bin nicht so gut, was Makros oder VisualBasic angeht, bringe es mir aber gerne bei, wenn ich mal n Anfang hab.
Es wär total super, wenn mir jemand hier weiterhelfen könnte.
Tausend Danke euch schon Mal
Die LEA
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135812
Url: https://administrator.de/forum/daten-aus-excel-matrix-herauslesen-135812.html
Ausgedruckt am: 14.05.2025 um 21:05 Uhr
3 Kommentare
Neuester Kommentar
Hallo lea1987!
Das sollte sich mit folgendem VBA-Script lösen lassen:
"SQuelle" und "ZQuelle" geben die Adresse der ersten Zelle (in Deinem Beispiel "C3") an, in welcher "Verbindungs"-Daten enthalten sein können, wobei die Anzahl der unmittelbar oberhalb bzw links angeordneten "Beschriftungs"-Zeilen und -Spalten mit jeweils 2 fest vorgegeben ist.
Grüße
bastla
Das sollte sich mit folgendem VBA-Script lösen lassen:
Sub MakeList()
TQuelle = "Quelle" 'Name Quelltabelle
ZQuelle = 3 'Erste Zeile für Daten der Verbindungen
SQuelle = 3 'Nummer der ersten Spalte für Daten der Verbindungen
TZiel = "Ziel" 'Name Zieltabelle
ZZiel = 2 'Erste Zeile für Datensätze
SZiel = 1 'Nummer der ersten Spalte für Datensätze
ZZ = ZZiel
ZQ = ZQuelle
MaxS = SQuelle
With Worksheets(TQuelle)
'Letzte Spalte mit Daten ermitteln
Do While .Cells(ZQuelle - 2, MaxS + 1) <> ""
MaxS = MaxS + 1
Loop
Do While .Cells(ZQ, SQuelle - 2) <> "" 'alle Zeilen mit einer ID durchgehen
For i = SQuelle To MaxS 'alle infrage kommenden Spalten prüfen
If .Cells(ZQ, i) <> "" Then
Worksheets(TZiel).Cells(ZZ, SZiel) = .Cells(ZQ, SQuelle - 2) 'Eintrag ID
Worksheets(TZiel).Cells(ZZ, SZiel + 1) = .Cells(ZQ, SQuelle - 1) 'Eintrag Name
Worksheets(TZiel).Cells(ZZ, SZiel + 2) = .Cells(ZQuelle - 2, i) 'Eintrag Land
Worksheets(TZiel).Cells(ZZ, SZiel + 3) = .Cells(ZQuelle - 1, i) 'Eintrag Stadt
Worksheets(TZiel).Cells(ZZ, SZiel + 4) = .Cells(ZQ, i) 'Eintrag Verbindung
ZZ = ZZ + 1
End If
Next
ZQ = ZQ + 1
Loop
End With
End Sub
Grüße
bastla