ich hoffe das alle ein schönes Weihnachtsfest hatten und die Zeit mit der Familie Genießen konnten.
Ich stehe leider wieder einmal auf dem Schlauch und hoffe auf meine wahrscheinlich leichte Frage eine simple Antwort zu erhalten.
Ich habe folgendes Problem:
- Ich bekomme eine Tabelle mit vielen verschiedenen Daten (Spalte A:AQ) die ich dann beurteilen muss (Spalte AR:AY) - Nach dem ich die Beurteilung vorgenommen habe, ermittle ich ab der Spalte AF4256:AN4382 bestimmte Werte für ein bestimmtes Kriterium - Wenn die o.g. Punkte abgeschlossen sind mache ich eine Kopie von der Arbeitsmappe "Daten" und benenne diese in eins der bestimmten Kriterien z.B. "0025" um und lösche alle anderen Daten die nicht "0025" sind raus und wiederhole diesen Vorgang für alle übrig gebliebenen Kriterien
*Das Hauptproblem an der Sache ist, dass diese Datei oft bis zu 100.000 Zeilen lang ist, ergänzt werden muss oder sich die vorgenommene Beurteilung noch ändert. Das führt dazu, dass ich die neuen Mappen wieder löschen muss und den Schritt von oben wiederholen muss.
Lösung:
Ich hoffe das es eine Möglichkeit gibt, die Daten aus einer Mappe 1 zu 1 in eine andere zu verschieben bzw. diese automatisch mit den Ergänzungen / Änderungen zu füllen. Ich habe zwar an sowas wie Privot gedacht, aber damit lässt sich die Datentabelle nicht 1 zu 1 (bereits gefiltert) übertragen und dies ist leider gewünscht.
Ich würde mich über Anregungen oder Hilfen von euch sehr freuen und bedanke mich bereits im Voraus.
das Problem an Privot ist, dass er die Tabelle aus "Daten" nicht 1 zu 1 gleich darstellen kann und man die Filter noch selbst auswählen muss.
Die Lösung soll jedoch einfach die Tabelle "Daten" nach den Nummern filtern und dann für jede Mappe "0025, 0948, 1198, 1327, 4339" die Daten als Zahlen einfügen ohne dass die anderen Daten enthalten sind.
Beispiel:
- Excel zieht sich die Datenbank aus der Mappe "Daten" - Excel filtert in der Mappe "Daten" nach "0025" und blendet "0948, 1198, 1327, 4339" aus - Excel fügt dann alle Daten aus der Datenbank mit "0025" in die Mappe "0025" ein - Excel berücksichtigt aber auch, wenn sich etwas in der Datenbank "Daten" ändert und fügt den neuen Wert automatisch in der Mappe "0025" ein
Die oben genannten Schritte, werden für alle anderen Kriterien "0948, 1198, 1327, 4339" ebenfalls angewendet, sodass ich nur in der Datenbank arbeiten muss. Wichtig ist aber, dass die Daten in den neuen Mappe echte Werte enthält, 1 zu 1 die gleiche Darstellung hat und sich automatisch ändert.
Meine Ideen bislang: - Pivot-Tabelle bzw. Power Query (Power Pivot) - Auto-Filler - Formeln (Verweis-, Wenn- oder Suchen-/ Ersetzen- Funktionen etc.) - Power Bi - Makros
Mit Power Bi und Makros kenne ich mich bislang noch nicht aus, aber alles andere habe ich versucht und leider hat nichts geklappt.
Mit Ausnahme der Manuellen variante (Mappe "Daten" nach "0025" filtern, Tabelle kopieren, neue Mappe "0025" öffnen und einfügen and repeat ....) [siehe neue Datei]
Vielleicht ist das, was ich mir vorstelle auch unmöglich mit Excel, aber wenn es jemand schafft einer aus diesem Forum oder? :D
Dann so ohne verschieben, ein reines Filtern innerhalb PQ. Deine Änderungen nu im Register "Daten" machen, dann über Menü -->Daten-->Alle aktualisieren" --> Alle Aktualisieren, Oder: Deine Datei jetzt speichern und schliesen, beim nächsten öffnen der Datei werden die PQ Tabellen automatisch aktualisiert. Du benötigst keine Makros! Oder habe ich dich immernoch falsch verstanden?
Viele Grüße PIVPQ
Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:1 Nutzer sagt Danke an PIVPQ für diesen Beitrag 28 • StephanAkaStora
vielen Dank, dass sieht ja schon einmal super aus!
Kann man jetzt noch die Tabellen so anpassen, dass die Mappen 0948 - 4339 die Formatierungen der 0025 Mappe haben? [siehe Anhang]
Und was wäre jetzt zum Beispiel, wenn ich noch 30.000 Zeilen unter der Tabelle einfüge? -> Würden diese Automatisch in den Mappen 0025 - 4339 ergänzt werden?
Das ist jetzt der Code nach deiner ersten geposteten Beispieldatei. Wenn die Daten wie in der letzten Beispieldatei als "Tabelle" formatiert sind, dann muss das Makro angepasst werden:
Code:
Public Sub Main() Dim wksSheet As Worksheet Dim wksTMP As Worksheet Dim strTMP As String Const lngColumn As Long = 3 On Error GoTo Fin Application.ScreenUpdating = False Application.DisplayAlerts = False For Each wksTMP In ThisWorkbook.Worksheets If wksTMP.Name <> "Daten" Then wksTMP.Delete Next wksTMP Set wksSheet = Sheets.Add(After:=Tabelle1) With wksSheet Tabelle1.UsedRange.Copy .Cells(1, 1) .ListObjects(1).DataBodyRange.Sort Key1:=.ListObjects(1).ListColumns("Employee Org Unit 1 - Code").DataBodyRange, Order1:=xlAscending, Header:=xlYes Do strTMP = .Cells(2, lngColumn).Value If strTMP = "" Then Exit Do .ListObjects(1).Range.AutoFilter field:=lngColumn, Criteria1:=strTMP With Worksheets.Add wksSheet.ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Copy .Cells(1, 1) .Name = strTMP End With .UsedRange.Offset(1, 0).EntireRow.Delete Loop wksSheet.Delete End With Fin: Set wksSheet = Nothing Application.DisplayAlerts = True Application.ScreenUpdating = True If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " " & Err.Description End Sub
Starten kannst du den Code über "STRG+m". Das kann, je nach Anforderung, auch angepasst werden.
Aber Vorsicht. Es werden alle Tabellenblätter ausser "Daten" bei jedem Durchlauf zuerst gelöscht. Wenn du das nicht möchtest, muss angepasst werden.
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28 • StephanAkaStora
Was du mit Formtierungen genau meinst habe leider noch nicht ganz verstanden. Wenn es drum geht einzelne Spalten eine andere Farbe zu geben, dies ist möglich muss am im Reiter selbst per Hand einmalig vornehmen, das gleiche gilt für das Währungsformat. Kopiere alle deine Original Daten ab Zeile 2 in den Reiter "Daten" und aktulisiere deine PQ Tabellen.
Dann noch ein Kritikpunkt: Im Reiter Daten hast du in den Zeilen AF 4256 bis AN 4382 und im Reiter "0025" hast du in den Zeilen AF 162 bis AN 180 eine Art Auswertung mit Formeln eingefügt, diese sind an der Stelle falsch, sie gehören wenn sie auf dem gleichen Register sein müssen oberhalb der eigentlichen Tabelle ( zb Zeile 1 bis 10) oder noch besser auf einem gesonderten Regester(Tabellenblatt)
Dann ist mir aufgefallen die Formel zb im Reiter 0025 in Zelle AH 166 =SUMMEWENN($AP$2:$AP161;"Payroll";$AH$2:$AH161) diese Formeln so abändern =SUMMEWENN(_0025[Payroll/GWG];"Payroll";_0025[Euro Amount for Corr])
Viele Grüße PIVPQ
Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:1 Nutzer sagt Danke an PIVPQ für diesen Beitrag 28 • StephanAkaStora