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

Mehrere Tabellenblätter in neues Kopiere

Mehrere Tabellenblätter in neues Kopiere
19.01.2022 12:24:15
Marco
Hallo zusammen,
ich bin recht neu Unterwegs in Excel und habe eine etwas schwerere Aufgabe (für mich jedenfalls) vor mir.
Und zwar habe ich eine Tabelle mit 7 Arbeitsblättern wobei die ersten 6 Teile des Alphabets nachgehen also A-E, F-Hoh usw.
Das letzte Arbeitsblatt ist ein Ausgabeblatt. In diesem sollen nun alle Zeilen kopiert werden die das jetzige Jahr und vorherige Jahre als Datum haben aus den vorherigen Arbeitsblättern. Und zwar soll das ganze automatisch passieren also sobald sich ein Datum ändert es gegebenenfalls hinzufügen in die neue Tabelle oder auch rauslöschen wenn das Datum geändert wurde.
Ich hoffe ich konnte mein Problem ausreichend erklären.
https://www.herber.de/bbs/user/150508.xlsx
Hier einmal die Tabelle wie sie generell aussieht zum Verständnis.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dazu bietet sich Power Query an ...
19.01.2022 12:57:06
neopa
Hallo Marco,
.. diese Funktion steht möglicherweise standardmäßig in Deiner Version noch nicht zur Verfügung, kann aber kostenfrei von der MS-Site nachgeladen werden. Zum Umgang mit der Power Query (PQ)-Funktionalität sieh z.B. mal hier: https://www.youtube.com/playlist?list=PLy5TtUB84yrN2VVRzp8Tif8bxQKJD_2bo
Natürlich kann man Deine akt. Aufgabe auch mit VBA oder nur mit Formeln lösen..PQ ist jedoch ein sehr mächtiges und gleichzeitig relativ einfache zu erlernende und handhabende Funktionalität, welche Dir in vielen Fällen auch künftig eine große Hilfe sein kann.
Gruß Werner
.. , - ...
Anzeige
AW: dazu bietet sich Power Query an ...
19.01.2022 13:02:04
Marco
Danke schon einmal für die schnelle Antwort. Leider ist PQ nicht vorhanden und nachinstallieren ist nicht möglich das es sich um einen Arbeitsrechner handelt.
Mir bleibt aktuell also nur VBA zur Auswahl.
AW: Deine Schlussfolgerung berücksichtigt nicht ..
19.01.2022 14:17:34
neopa
Hallo Marco,
... dass ich auch eine Formellösung angeboten hatte. Diese könnte z.B. wie folgt vorgenommen werden.
In z.B. I4:I9 schreibe Deine Tabellenblattnamen und in H4 dann eine 1
Die Formel H5 kopiere ziehend bis H10. Die Formel C5 mit dem Datum als Zellenformat: Datum nach unten und nach rechts.
Siehe:
Arbeitsblatt mit dem Namen 'Abgelaufene'
 ABCDEFGHI
2         
3        Tabellenblatt
4Nr.NameAbgelaufen/läuft ab am    1A - E
51Name_0117.12.2020    5F - Hog
62Name_0221.02.2024    9Hoh - K
73Name_0330.04.2026    14L - R
84Name_0421.10.2019    16S - T
95Name_1119.05.2025    20V - Z
106Name_1230.09.2026    23 
117Name_1331.12.2023      
128Name_1416.05.2020      
139Name2118.09.2023      

ZelleFormel
C5=WENNFEHLER(INDEX(INDIREKT("'"&SVERWEIS(ZEILE(B1);$H:$I;2)&"'!A:C");ZEILE()-SVERWEIS(ZEILE(B1);$H:$H;1)+1;SPALTE());"")
H5=INDIREKT("'"&I4&"'!H1")+H4
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...
Anzeige
AW: Deine Schlussfolgerung berücksichtigt nicht ..
19.01.2022 15:00:40
Marco
Hallo Werner,
ich habe die Formel nun so übernommen bekomme allerdings in h5-H10 die Fehlermeldung (ungültiger Zellbezug)
Des weiteren sehe ich in deinem Vorschau Bild das auch Daten kopiert werden die nach 2022 liegen was hierbei nicht gewollt wäre.
Lediglich Daten aus vorherigen Blättern mit dem Jahr 2022 oder niedriger sollen kopiert werden.
AW: wäre durch Formelerweiterung auch möglich owT
19.01.2022 16:57:56
neopa
Gruß Werner
.. , - ...
VBA
19.01.2022 14:49:26
UweD
Hallo
Die Daten in der Zieltabelle werden automatisch aktualisiert (gelöscht und einzeln wieder eingelesen) wenn das Blatt aktiviert wird.
Dazu bitte:
- Rechtsclick auf den Tabellenblattreiter von "Abgelaufene"
- Code anzeigen
- Diesen Code dort reinkopieren

Private Sub Worksheet_Activate()
Dim TB As Worksheet
Dim LRx As Integer, LR As Integer
Dim Z1 As Integer, ZZ As Integer, i As Integer
Z1 = 5 'Erste Zeile mit Daten
'reset
LR = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row
Me.Cells(Z1, 2).Resize(LR - Z1 + 1, 2).ClearContents
ZZ = Z1
For Each TB In ThisWorkbook.Sheets
If TB.Name  Me.Name Then
LRx = TB.Cells(TB.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte
For i = Z1 To LRx
If Year(TB.Cells(i, 3)) = Year(Date) Or Year(TB.Cells(i, 3)) = Year(Date) - 1 Then
'kopieren
TB.Cells(i, 2).Resize(1, 2).Copy Me.Cells(ZZ, 2).Resize(1, 2)
ZZ = ZZ + 1
End If
Next
End If
Next
End Sub

LG UweD
Anzeige
AW: VBA
19.01.2022 15:04:14
Marco
Hallo Uwe,
danke für den VBA Code.
Bei der Zeile:
If Year(TB.Cells(i, 3)) = Year(Date) Or Year(TB.Cells(i, 3)) = Year(Date) - 1
wirft er mir den Fehlercode 13 aus (Typen unverträglich)
woran kann das liegen ?
AW: VBA
19.01.2022 15:18:50
Marco
Habe den Fehler selber gefunden hatte in der Datumsspalte teilweise Werte die keinem Datum entsprechen und damit schien er Probleme zu haben.
Habe nun auch den Code noch erweitert um mir die Jahre 2017-2020 anzuzeigen.
Super danke für die freundliche und gute Hilfe
Best Grüße
Marco
Prima. Danke für die Rückmeldung. mwT
19.01.2022 16:17:48
UweD

Private Sub Worksheet_Activate()
Dim TB As Worksheet
Dim LRx As Integer, LR As Integer
Dim Z1 As Integer, ZZ As Integer, i As Integer
Dim JVon As Integer, JBis As Integer, Datum As Variant
Z1 = 5 'Erste Zeile mit Daten
JVon = InputBox("Von Jahr", , 2017)
JBis = InputBox("Bis Jahr", , 2020)
'Reset
LR = Me.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
Me.Cells(Z1, 2).Resize(LR - Z1 + 1, 2).ClearContents
ZZ = Z1
For Each TB In ThisWorkbook.Sheets
If TB.Name  Me.Name Then
LRx = TB.Cells(TB.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte
For i = Z1 To LRx
Datum = TB.Cells(i, 3)
If Not IsDate(Datum) And Datum  "" Then
MsgBox Datum & " : Datum-Fehler in Blatt " & TB.Name & " Nr. " & TB.Cells(i, 1)
Else
If Year(Datum) >= JVon And Year(Datum) 

Anzeige
AW: Mehrere Tabellenblätter in neues Kopiere
19.01.2022 13:07:12
ChrisL
Hi Marco
Die allgemeinen Infos (Add-In aktivieren und Intro) hat dir Werner bereits gegeben.
Hier die konkrete Power-Query Lösung:
https://www.herber.de/bbs/user/150509.xlsx
https://www.youtube.com/watch?v=z3PXGn19nfI
Übrigens fällt dir vielleicht auf, dass die Tabellen "intelligent" geworden sind und sich nun von alleine erweitern. (Menü Start, Als Tabelle formatieren)
Die Nummern sollten m.E. einzigartig (unique) sein. Wenn unterschiedliche Namen die gleiche Nummern haben, dann könnte man diese auch gleich weglassen. Bringt nix. Aber vielleicht bin ich in solchen Themen etwas zu streng. Wenn es dir hilft, dann "go for it" :)
cu
Chris
Anzeige
offen VBA
19.01.2022 13:08:02
ChrisL
meine Antwort hat sich mit der Rückmeldung überschnitten, darum wieder offen
AW: ich hatte auch eine Formellösung angeboten owT
19.01.2022 14:10:00
neopa
Gruß Werner
.. , - ...
AW: ich hatte auch eine Formellösung angeboten owT
19.01.2022 14:18:54
Marco
Eine Formel wäre auch denkbar sofern diese dann Erweiterungen und Änderungen an den ursprünglichen Tabellen erkennt und umsetzt.
PQ fällt leider komplett raus da die meisten Maschinen auf der Arbeit Excel 2013 nutzen und kein PQ drauf haben. Jedoch die Tabelle an verschiedenen
Maschinen evtl. aufgerufen und aktualisiert wird.
Gruß Marco
AW: dazu sieh oben und ...
19.01.2022 14:44:58
neopa
Hallo Marco,
... sollten Deine Daten je Tabellenblatt über die momentan vorgegebene Anzahl von max 25 hinausgehen, ist das auch schon berücksichtigt.
Gruß Werner
.. , - ...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige