Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten zusammenführen

Forumthread: Daten zusammenführen

Daten zusammenführen
21.04.2022 13:07:22
Sebastian
Hallo zusammen,
ich hätte da ein kleines Anliegen. Ich pflege alle meine Gameboy, SNES, Gamecube und N64 Spiele in einer Excel-Datei. Jede Konsole hat ihr eigenes Tabellenblatt. Sprich es gibt 4 Tabellenblätter. Jetzt hätte ich gerne in einem 5ten Tabellenblatt eine große Liste aller Spiele untereinander. Sortiert nach Alphabet. ( Am besten noch mit Angabe der Konsole hinter dem Spiel-Titel ) Sie müsste sich nur beim hinzufügen eines Spieles auf einem der anderen 4 Tabellenblätter, quasi selbst aktualisieren. Jemand einen Tipp wie ich das am besten anstelle ? Danke schon mal
Anzeige

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten zusammenführen
21.04.2022 13:20:09
onur
Dann poste doch mal eine Beispieldatei, die genau so aufgebaut ist wie die Originaldatei - mit ein paar Datensätzen zum Testen.
AW: Daten zusammenführen
21.04.2022 13:50:41
Nepumuk
Hallo Sebastian,
Rechtsklick auf den Tabellenreiter deiner Gesamt-Tabelle - Code anzeigen. Folgende Prozedur einfügen:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long
Call Columns("A:B").Clear
Range("A1:B1").Value = Array("Spiel", "Gerät")
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet).UsedRange
Call .Range(.Cells(2, 1), .Cells(.Rows.Count, 1)).Copy(Destination:=Cells(lngNextRow, 1))
End With
Range(Cells(lngNextRow, 2), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2)).Value = vntSheet
Next
Call Columns("A:B").Sort(Key1:=Cells(1, 1), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 13:57:31
Sebastian
Hey Nepumuk,
ich danke dir erst mal :) das klappt im Prinzip schon perfekt :) Wie müsste es abgeändert werden damit er in den Tabellenblättern nur in Spalte C, ab Zeile 7 bis unendlich sucht ? Da stehen die Spieletitel :)
AW: Daten zusammenführen
21.04.2022 14:04:21
Nepumuk
Hallo Sebastian,
so:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long
Call Columns("A:B").Clear
Range("A1:B1").Value = Array("Spiel", "Gerät")
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet)
Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3)).Copy(Destination:=Cells(lngNextRow, 1))
End With
Range(Cells(lngNextRow, 2), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2)).Value = vntSheet
Next
Call Columns("A:B").Sort(Key1:=Cells(1, 1), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 14:07:50
Sebastian
Hehehe du bist Mega :D Allerdings sagt er jetzt " Sie können dies hier nicht einfügen, da der Kopier-Bereich und der Einfügebereich nicht die gleich Größe haben. Und darf ich noch um eins bitten ? Das Spiel & Gerät oben in FETT geschrieben sind ? :)
AW: Daten zusammenführen
21.04.2022 14:07:06
Nepumuk
Oops,
kleiner, aber entscheidender Fehler von mir. So:

Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 1))
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 14:08:49
Sebastian
Du merkst es selbst schneller, als ich tippen kann :D
AW: Daten zusammenführen
21.04.2022 14:14:54
Nepumuk
Hallo Sebastian,
Überschrift fett, so:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long
Call Columns("A:B").Clear
With Range("A1:B1")
.Value = Array("Spiel", "Gerät")
.Font.Bold = True
End With
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet)
Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 1))
End With
Range(Cells(lngNextRow, 2), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2)).Value = vntSheet
Next
Call Columns("A:B").Sort(Key1:=Cells(1, 1), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 14:17:11
Sebastian
Der Hammer :) genau das was ich gesucht habe :) Also ich will jetzt wirklich nicht unverschämt sein .... Aber eine Frage. Kann man das auch in einer eigenständigen Excel Datei machen ? So das die mit den Listen gar nicht geöffnet werden muss ? Sorry, fürs nerven :D
AW: Daten zusammenführen
21.04.2022 14:19:17
Nepumuk
Hallo Sebastian,
die mit den Listen muss ich trotzdem öffnen, um an die Daten zu kommen.
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 14:22:18
Sebastian
Ja das dachte ich mir schon :) Das wird dann wahrscheinlich in der " Am Handy " Ansicht nicht klappen. Aber alles gut :) Ich danke dir vielmals :)
Darf ich noch eine Änderung äußern ? Kann die Auflistung auf B & C stattfinden statt auf A & B ? :)
AW: Daten zusammenführen
21.04.2022 14:26:37
Nepumuk
Hallo Sebastian,
kein Problem:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long
Call Columns("B:C").Clear
With Range("B1:C1")
.Value = Array("Spiel", "Gerät")
.Font.Bold = True
End With
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet)
Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 2))
End With
Range(Cells(lngNextRow, 3), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 3)).Value = vntSheet
Next
Call Columns("B:C").Sort(Key1:=Cells(1, 2), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
21.04.2022 14:28:56
Sebastian
MEGA :) Ganz großes Dankeschön :)
AW: Daten zusammenführen
26.04.2022 08:18:14
Sebastian
Guten Morgen @Nepumuk :) Ich hätte nachträglich noch eine kleine Frage :) Wäre es möglich den Code noch einmal so zu ändern das er die Spalte "E" auf dem jeweiligen Blatt noch mit kopiert und auf der Übersicht auflistet ? Also passend zum Spieletitel ? Danke dir schon mal
Anzeige
AW: Daten zusammenführen
26.04.2022 08:32:41
Nepumuk
Hallo Sebastian,
und in welche Spalte sollen die Daten eingefügt werden?
Gruß
Nepumuk
AW: Daten zusammenführen
26.04.2022 10:00:17
Sebastian
Ach sorry :D Das hätte ich wohl dazu sagen sollen :D Die müssen dann in Spalte "D" mit der Überschrift " Fach Nr. " :)
AW: Daten zusammenführen
26.04.2022 10:09:12
Nepumuk
Hallo Sebastian,
teste mal:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long
Call Columns("B:C").Clear
With Range("B1:D1")
.Value = Array("Spiel", "Gerät", "Fach Nr.")
.Font.Bold = True
End With
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet)
Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 2))
Call .Range(.Cells(7, 5), .Cells(.Rows.Count, 5).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 4))
End With
Range(Cells(lngNextRow, 3), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 3)).Value = vntSheet
Next
Call Columns("B:C").Sort(Key1:=Cells(1, 2), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
26.04.2022 10:41:28
Sebastian
Hey :) Also mir fällt auf das die Spalte D jetzt nicht im " Clear " Intervall drin ist :) Und das kopieren muss auch erst ab Zeile 7 starten wie bei den anderen Spalten auch :)
AW: Daten zusammenführen
26.04.2022 11:26:26
Nepumuk
Hallo Sebastian,
zum Löschen musst du nur die Zeile:
Call Columns("B:C").Clear
so ändern:
Call Columns("B:D").Clear
Kopiert wird ab Zeile 7:
Call .Range(.Cells(7, 5), .Cells(.Rows.Count, 5).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 4))
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
26.04.2022 11:40:38
Sebastian
Also das Clear hab ich geändert :) Aber die Fachnummern, passen trotzdem nicht zum Spiel. Also irgendwas verschiebt sich da ? Bestimmt beim alphabetisch sortieren werden die Fächer durcheinander geworfen ?
AW: Daten zusammenführen
26.04.2022 11:42:46
Nepumuk
Hallo Sebastian,
du hast Recht, mein Fehler. So passt es:

Call Columns("B:D").Sort(Key1:=Cells(1, 2), Header:=xlYes, MatchCase:=False)
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
26.04.2022 11:48:22
Sebastian
Irgendwas stimmt aber immer noch nicht. Bei "GAMECUBE" kopiert er zum Beispiel die Überschrift "Fach Nr." aus Zeile 6 hinter das Spiel aus Zeile 7 .... Komisch ?
Im Post davor hab ich dir die Datei mal hochgeladen :) danke aber schon mal für deine Mühen
AW: Daten zusammenführen
26.04.2022 11:55:34
Nepumuk
Hallo Sebastian,
ich ging davon aus, dass alle Spiele in einem Fach liegen. Also:

Option Explicit
Private Sub Worksheet_Activate()
Dim vntSheet As Variant
Dim lngNextRow As Long, lngLastRow As Long
Call Columns("B:D").Clear
With Range("B1:D1")
.Value = Array("Spiel", "Gerät", "Fach Nr.")
.Font.Bold = True
End With
For Each vntSheet In Array("Gameboy", "SNES", "Gamecube", "N64")
lngNextRow = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Worksheets(vntSheet)
Call .Range(.Cells(7, 3), .Cells(.Rows.Count, 3).End(xlUp)).Copy(Destination:=Cells(lngNextRow, 2))
lngLastRow = Application.Max(.Cells(.Rows.Count, 5).End(xlUp).Row, 7)
Call .Range(.Cells(7, 5), .Cells(lngLastRow, 5)).Copy(Destination:=Cells(lngNextRow, 4))
End With
Range(Cells(lngNextRow, 3), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 3)).Value = vntSheet
Next
Call Columns("B:D").Sort(Key1:=Cells(1, 2), Header:=xlYes, MatchCase:=False)
End Sub
Gruß
Nepumuk
Anzeige
AW: Daten zusammenführen
26.04.2022 11:57:25
Sebastian
Das wäre ein seeeeehr großes Fach :D Aber Mega, so passt alles :) Ich danke dir :)
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige