Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus Tabelle untereinander schreiben

Werte aus Tabelle untereinander schreiben
02.02.2024 12:34:17
maylmz
Hallo zusammen,

ich habe eine Datei mit mehreren Spalten.
In den ersten beiden Spalten haben wir die Namen und in den folgenden Spalten werden die gegessenen Früchte mit Datum hinterlegt.

Jetzt möchte ich in einem anderen Tabellenblatt alle Werte untereinander gelistet haben.

Hier die Musterdatei:
https://www.herber.de/bbs/user/166712.xlsx

Mir fällt hierzu keinerlei Formelmöglichkeiten und meine VBA Kenntnisse sind hierfür viel zu bescheiden.

Vielen Dank für eure Unterstützung
Grüße, maylmz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 13:51:50
Alwin Weisangler
Hallo,

Lege die Ausgabetabelle als Listobject (formatierte Tabelle) an und verwende diese Prozedur:


Sub Namenweise()
Dim i&, j&, k&, arr(), arrAusgabe(), arrKopf: arrKopf = Tabelle1.ListObjects(1).HeaderRowRange.Value
k = 2
With Tabelle1.ListObjects(1)
ReDim arrAusgabe(1 To UBound(arrKopf, 2) - 2, 1 To 4)
For i = 1 To .ListRows.Count
arr = .DataBodyRange.Rows(i).Value
For j = 1 To UBound(arrKopf, 2) - 2
k = k + 1
arrAusgabe(j, 1) = arr(1, 1)
arrAusgabe(j, 2) = arr(1, 2)
arrAusgabe(j, 3) = arrKopf(1, k)
arrAusgabe(j, 4) = arr(1, k)
Next j
Tabelle2.ListObjects(1).ListRows.Add.Range.Resize(UBound(arrAusgabe)) = arrAusgabe
k = 2
Next i
End With
End Sub


Gruß Uwe
Anzeige
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 15:07:02
maylmz
Hallo Uwe,

funktioniert hervorragend, vielen Dank dafür.
Nun ist aber meine Orig. Datei etwas anders aufgebaut.
Bsp. Die Namen und Datum fangen erst ab A8 an und die "Früchte" ab C3.

Kannst du mir für dein VBA noch hinten Bemerkungen machen das ich das selber lernen und abändern kann?

Vielen vielen Dank
Gruß, maylmz
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 15:15:28
maylmz
Ach und noch eine kleine bitte:

Wenn ich die VBA ausführe wird alles schön untereinander geschrieben. Allerdings könnten bsp. neue "Früchte" dazu kommen und der Befehl würde die Alten werde nochmal übertragen. Gibt es hier noch eine Möglichkeit das nur die neuen Werte übertragen werden?

Vielen Dank
Gruß, maylmz
Anzeige
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 16:19:47
Alwin Weisangler
falls es nicht hilft, lade eine Beispieldatei mit passend zugeordneten Daten hoch.


Sub Namenweise()
Dim i&, j&, k&, arr(), arrAusgabe(), arrKopf: arrKopf = Tabelle1.ListObjects(1).HeaderRowRange.Value ' Laden der Spaltennamen in arrKopf
k = 2 ' Startwert der Zählvariable für die Schleifendurchläufe von Datum und Obstsorte
If Not Tabelle2.ListObjects(1).DataBodyRange Is Nothing Then Tabelle2.ListObjects(1).DataBodyRange.Delete ' löscht alle alten Einträge der Zieltabelle
With Tabelle1.ListObjects(1)
ReDim arrAusgabe(1 To UBound(arrKopf, 2) - 2, 1 To 4) ' Dimensionierung des arrAusgabe
For i = 1 To .ListRows.Count ' Schleife (i) zum durchlaufen Zeile für Zeile der Ausgangstabelle
arr = .DataBodyRange.Rows(i).Value ' füllen der arr mit Zeile(i) Werten
For j = 1 To UBound(arrKopf, 2) - 2 ' Schleife (j) zum Durchlaufen der Spalten
k = k + 1 ' Zählvariable für Spalte
arrAusgabe(j, 1) = arr(1, 1) ' Übergabe in jeden Spaltendurchlauf Vorname
arrAusgabe(j, 2) = arr(1, 2) ' Übergabe in jeden Spaltendurchlauf Nachname
arrAusgabe(j, 3) = arrKopf(1, k) ' Übergabe aktueller Spaltendurchlauf (k) Obst
arrAusgabe(j, 4) = arr(1, k) ' Übergabe aktueller Spaltendurchlauf (k) Datum
Next j
' Schreiben des arrAusgabe via Erzeugung von Tabellenzeilen in die neu erzeugten Zellen
Tabelle2.ListObjects(1).ListRows.Add.Range.Resize(UBound(arrAusgabe)) = arrAusgabe
k = 2 ' Sppaltenzähler auf 2 setzen
Next i ' Sprung in die Nachste Zeile
End With
End Sub

Gruß Uwe
Anzeige
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 17:04:36
maylmz
Hey Uwe,

muss dir leider doch eine Beispieldatei hochladen...
https://www.herber.de/bbs/user/166732.xlsx
Danke für die Infos in deinem Code. Zum lernen muss ich wohl noch das abgeänderte Code sehen um es dann zu verstehen :D

Vielen Dank für deine Unterstützung
Gruß, maylmz
AW: Werte aus Tabelle untereinander schreiben
02.02.2024 19:33:36
Alwin Weisangler
Hallo,

an der Prozedur muss nichts geändert werden. Selbst, wenn man noch weitere Obstsorten hinzufügt, passen sich die Wert an.
Wenn jetzt nur die Zeile 1 bis 3 des Listobjects (x Zellen) nicht abgefragt werden, reicht die Änderung in der i Schleife.


For i = 4 To .ListRows.Count

Die Schleife startet dann ab Zeile 4.
Sollten aber in der Liste sporadisch weitere mit x gekennzeichnete Zeilen enthalten sein und ausgelassen werden muss das entsprechend ausgeschlossen werden.

Gruß Uwe
Anzeige
AW: Werte aus Tabelle untereinander schreiben
05.02.2024 06:06:16
maylmz
Perfekt, vielen Dank
Gruß, maylmz
AW: Lösung mit Power-Query
02.02.2024 19:38:19
Rolf
Hallo

es böte sich auch eine Lösung mit Power-Query, ohne VBA an, ist auch mit wenig/keiner Ahnung von PQ ganz einfach.

Cursor irgendwo in deine Tabelle stellen.
unter 'Daten' - 'aus Tabelle/Bereich' anklicken.
es öffnet sich der PQ-Editor mit den Daten der Tabelle.
Hier alle Obstspalten markieren (Überschriften anklicken) mit Strg oder Shift
Dann unter 'Transformieren' - 'Spalten entpivotieren' wählen.
Jetzt sollte die Ansicht so aussehen, wie gewünscht.
Bei Bedarf die Spaltenüberschriften umbenennen.
Jetzt nur noch unter 'Start' ganz links 'Schließen und Laden' wählen, fertig
mit rechter Maus und 'Aktualisieren' bist du immer aktuell, auch wenn in deiner
Ausgangstabelle neue Obstsorten dazu kommen.

Gruß Rolf
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige