Hallo zusammen,
ich stand vor der Herausforderung, für einen
Ameise-Import in unsere
WaWi 50 Merkmale pro Artikel zu bearbeiten. Die Ameise erwartet für jedes Merkmal und jeden Merkmalswert eine eigene Zeile, aber meine Daten waren in Spalten organisiert. Das manuelle Übertragen dieser Daten wäre ein Albtraum gewesen. Glücklicherweise habe ich ein Makro gefunden, das die Arbeit für mich erledigt hat!
Hier ist der VBA-Code, den ich verwendet habe:
Sub SpaltenInZeilenUmwandeln()
Dim ws As Worksheet
Dim lastRow As Long, lastCol As Long
Dim i As Long, j As Long
Dim outputRow As Long
' Verwendet das aktive Arbeitsblatt
Set ws = ActiveSheet
' Finde die letzte genutzte Zeile und Spalte
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' Lege die Ausgangszeile fest, in die die Daten geschrieben werden
outputRow = lastRow + 2 ' Füge die neue Tabelle nach den Originaldaten hinzu
' Schleife durch jede Zeile (Artikel)
For i = 2 To lastRow ' Start in Zeile 2, wenn die erste Zeile Überschriften enthält
' Schleife durch jede Spalte (Merkmale)
For j = 2 To lastCol ' Start in Spalte 2, wenn die erste Spalte Artikelnamen enthält
' Prüfe, ob die Zelle leer ist
If ws.Cells(i, j).Value <> "" Then
' Kopiere Artikelname, Merkmal und Merkmalwert in neue Zeilen
ws.Cells(outputRow, 1).Value = ws.Cells(i, 1).Value ' Artikelnummer
ws.Cells(outputRow, 2).Value = ws.Cells(1, j).Value ' Merkmal (Spaltenüberschrift)
ws.Cells(outputRow, 3).Value = ws.Cells(i, j).Value ' Merkmalwert (Zelleninhalt)
outputRow = outputRow + 1
End If
Next j
Next i
MsgBox "Umwandlung abgeschlossen!", vbInformation
End Sub
Wie es funktioniert:
- Schritt 1: Das Makro geht durch jede Zeile und jede Spalte deiner Tabelle.
- Schritt 2: Es überprüft, ob ein Merkmalswert in der Zelle vorhanden ist.
- Schritt 3: Für jede gefundene Zelle erstellt es eine neue Zeile, die Artikelnummer, Merkmal und Wert enthält.
- Schritt 4: Die neuen Zeilen werden direkt unter den Originaldaten eingefügt.
Anleitung zur Verwendung:
- Öffne deine Excel-Datei.
- Drücke ALT + F11, um den VBA-Editor zu öffnen.
- Wähle Einfügen > Modul, und füge den oben stehenden Code ein.
- Schließe den VBA-Editor.
- Drücke ALT + F8, wähle das Makro SpaltenInZeilenUmwandeln, und klicke auf Ausführen.
Das Makro hat mir viel Arbeit erspart und funktioniert hervorragend, wenn man große Datenmengen in einem Rutsch in die Ameise importieren möchte. Hoffentlich hilft es auch euch weiter!
Also sollten auch 4000 artikel relativ schnell bearbeitet werden.
Viel Erfolg!