VBA - Zellen anhand des Zellinhaltes und des Tabellennamen kopieren
Guten Tag,
folgendes Problem stellt sich mir und ich hoffe, dass sich vor den Festtagen noch jemand findet, der mir etwas aushelfen kann.
Ich habe eine Excel Tabelle mit knapp 9000 Zeilen an Daten (A1:BA8720). In dieser Tabelle stehen verschiedene Bauteile für verschiedene Fahrzeuge. Die Fahrzeuge sind anhand einer Materialnummer in der ersten Spalte eindeutig zuzuordnen.
Ziel ist es:
1. Für jede Materialnummer ein neues Tabellenblatt anzulegen. Das Tabellenblatt soll die Bezeichnung der Materialnummer tragen (Bsp.: 0110000000)
2. Die Überschrift der Tabelle, d.h. die Zellen A1:BA1 in jedes neue Tabellenblatt zu übertragen
3. Den Filter für die Zellen A1:BA1 in jeder Tabelle setzen.
4. Die Werte der Zellen aus der Spalte A (Materialnummern) sollen mit den Namen der Tabellenblätter abgeglichen werden. Wenn diese übereinstimmen, soll die komplette Zeile in das Tabellenblatt kopiert werden.
Es handelt sich um bis zu 500 Zeilen pro Materialnummer.
Die Schritte 1-3 konnte ich selber bzw. mit ein wenig Hilfe von google lösen. Schritt 4 übersteigt allerdings meine VBA-Kenntnisse.
Gruß
folgendes Problem stellt sich mir und ich hoffe, dass sich vor den Festtagen noch jemand findet, der mir etwas aushelfen kann.
Ich habe eine Excel Tabelle mit knapp 9000 Zeilen an Daten (A1:BA8720). In dieser Tabelle stehen verschiedene Bauteile für verschiedene Fahrzeuge. Die Fahrzeuge sind anhand einer Materialnummer in der ersten Spalte eindeutig zuzuordnen.
Ziel ist es:
1. Für jede Materialnummer ein neues Tabellenblatt anzulegen. Das Tabellenblatt soll die Bezeichnung der Materialnummer tragen (Bsp.: 0110000000)
2. Die Überschrift der Tabelle, d.h. die Zellen A1:BA1 in jedes neue Tabellenblatt zu übertragen
3. Den Filter für die Zellen A1:BA1 in jeder Tabelle setzen.
4. Die Werte der Zellen aus der Spalte A (Materialnummern) sollen mit den Namen der Tabellenblätter abgeglichen werden. Wenn diese übereinstimmen, soll die komplette Zeile in das Tabellenblatt kopiert werden.
Es handelt sich um bis zu 500 Zeilen pro Materialnummer.
Die Schritte 1-3 konnte ich selber bzw. mit ein wenig Hilfe von google lösen. Schritt 4 übersteigt allerdings meine VBA-Kenntnisse.
Sub x()
Dim Zelle, Bereich As Range
Dim i As Integer
Dim nWS As Worksheet
Dim Bool As Boolean
Set Bereich = Range("A2:A" & Range("A65536").End(xlUp).Row)
For Each Zelle In Bereich
For i = 2 To Worksheets.Count
If Worksheets(i).Name = Zelle.Value Then
Bool = True
Exit For
Else
Bool = False
End If
Next i
If Bool = False Then
Set nWS = Worksheets.Add(after:=Worksheets(Worksheets.Count))
nWS.Name = Zelle.Value
With Worksheets("Sheet1")
.Range("A1:BA1").Copy Worksheets(nWS.Name).Range("A1:BA1")
ActiveSheet.Range("A1:BA1").AutoFilter
End With
End If
Next Zelle
End Sub
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291505
Url: https://administrator.de/contentid/291505
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
2 Kommentare
Neuester Kommentar
Moin,
genau dafür haben wir hier schon fertigen Code auf Lager
In VBA ein (Order by )
Frohes Fest
Gruß grexit
genau dafür haben wir hier schon fertigen Code auf Lager
In VBA ein (Order by )
Frohes Fest
Gruß grexit