Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

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

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
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
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 ? :)
Anzeige
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
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
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 ?
Anzeige
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige