VBA Excel-Blatt nach Inhalt in Zeile 4 aufteilen?

Antwort

Um ein Excel-Blatt in VBA nach dem Inhalt in Zeile 4 aufzuteilen, kannst du den folgenden Code verwenden. Dieser Code erstellt für jeden einzigartigen Wert in Zeile 4 ein neues Arbeitsblatt und kopiert die entsprechenden Daten in diese Blätter. ```vba Sub SplitSheetByRow4() Dim ws As Worksheet Dim newWs As Worksheet Dim lastCol As Long Dim lastRow As Long Dim cell As Range Dim uniqueValues As Collection Dim value As Variant Dim i As Long ' Aktives Arbeitsblatt festlegen Set ws = ThisWorkbook.ActiveSheet ' Letzte Spalte und letzte Zeile ermitteln lastCol = ws.Cells(4, ws.Columns.Count).End(xlToLeft).Column lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Sammlung für einzigartige Werte erstellen Set uniqueValues = New Collection ' Einzigartige Werte in Zeile 4 sammeln On Error Resume Next For i = 1 To lastCol uniqueValues.Add ws.Cells(4, i).Value, CStr(ws.Cells(4, i).Value) Next i On Error GoTo 0 ' Für jeden einzigartigen Wert ein neues Arbeitsblatt erstellen For Each value In uniqueValues ' Neues Arbeitsblatt erstellen Set newWs = ThisWorkbook.Worksheets.Add newWs.Name = value ' Daten kopieren ws.Rows(1).Copy newWs.Rows(1) ' Kopfzeile kopieren For i = 1 To lastRow If ws.Cells(i, 4).Value = value Then ws.Rows(i).Copy newWs.Rows(newWs.Cells(newWs.Rows.Count, 1).End(xlUp).Row + 1) End If Next i Next value MsgBox "Das Blatt wurde erfolgreich aufgeteilt!" End Sub ``` Dieser Code führt die folgenden Schritte aus: 1. Ermittelt die letzte Spalte und die letzte Zeile des Arbeitsblatts. 2. Sammelt alle einzigartigen Werte aus Zeile 4 in einer Sammlung. 3. Erstellt für jeden einzigartigen Wert ein neues Arbeitsblatt und kopiert die entsprechenden Daten. Um den Code auszuführen, öffne den VBA-Editor in Excel (Alt + F11), füge ein neues Modul hinzu und kopiere den Code dort hinein. Danach kannst du das Makro ausführen.

KI fragen

Verwandte Fragen

Ist Shapes("Rechteck 1").Visible = True korrekt in Excel-VBA?

Der Ausdruck `Shapes("Rechteck 1").Visible = True` ist in Excel-VBA **nicht korrekt**, da das `Visible`-Eigenschaftsmerkmal für Shapes in Excel-VBA **nicht existiert**. In Excel-VBA s... [mehr]

Ist folgender Excel-VBA-Code korrekt: HeightPt = Rows("4:" & Cells(49,19).Row).Height?

Der gezeigte Code ist in Excel-VBA **nicht korrekt** und führt zu einem Fehler. Das Problem liegt in der Syntax innerhalb der `Rows`-Funktion. Hier die Analyse: **Dein Code:** ```vba HeightPt =... [mehr]

Wie kann man in Excel-VBA einen RGB-Code aus einer Zelle lesen?

Um in Excel-VBA einen RGB-Code aus einer Zelle zu lesen und diesen z.B. für die Füllfarbe eines Shapes zu verwenden, kannst du wie folgt vorgehen: Angenommen, in Zelle **A1** steht der RGB-... [mehr]

Ist der Code wert = Range("Ergebnisse[Gab Bauteil lang]").Value in VBA fehlerfrei?

Der Code `wert = Range("Ergebnisse[Gab Bauteil lang]").Value` ist in VBA **nicht fehlerfrei**, wenn du auf eine Excel-Tabelle mit strukturierten Verweisen (Tabellenreferenzen) zugreifen m&ou... [mehr]

Kann man Private Sub Workbook_SheetBeforeRightClick in Private Sub Workbook_Open integrieren?

Nein, das ist nicht möglich. In VBA (Visual Basic for Applications) sind `Workbook_Open` und `Workbook_SheetBeforeRightClick` zwei eigenständige Ereignisprozeduren (Event Handler), die jewei... [mehr]

Gibt es If Not (Bedingung) Then in VBA für Excel?

Ja, in VBA für Excel gibt es die Möglichkeit, eine Bedingung mit **If Not (Bedingung) Then** zu prüfen. Das Schlüsselwort **Not** kehrt die Bedingung um. Hier ein Beispiel: ```vba... [mehr]

Ist 'Range(Cells(a,10):Cells(b,10)).Copy' im VBA-Code korrekt?

Die Syntax `Range(Cells(a,10):Cells(b,10)).Copy` ist in VBA (Visual Basic for Applications) **nicht korrekt**. In VBA muss der Bereich innerhalb der `Range`-Funktion als String oder als zwei separate... [mehr]

Wie kann ich mit VBA den Bereich 'Test' in Blatt 1 kopieren und in Blatt 2 ab Zelle B18 einfügen?

Um in Excel mit VBA einen Bereich namens "test" aus Blatt 1 zu kopieren und in Blatt 2 ab Zelle B18 einzufügen, kannst du folgenden VBA-Code verwenden: ```vba Sub BereichKopieren()... [mehr]

Wie kann man Zahlen in Excel-VBA ohne wissenschaftliches Format in eine .txt-Datei schreiben?

Um Zahlen wie 6,9999999999 in Excel-VBA beim Schreiben in eine .txt-Datei **nicht** im wissenschaftlichen Format (z. B. 6,9999999999E+00), sondern exakt so wie sie sind (mit allen Nachkommastellen), z... [mehr]

Wie lautet die Syntax, um in Excel VBA ein bestimmtes Tabellenblatt zu aktivieren?

Um in Excel VBA ein bestimmtes Tabellenblatt zu aktivieren, verwendest du folgende Syntax: ```vba Worksheets("Tabellenblattname").Activate ``` Ersetze dabei `"Tabellenblattname"`... [mehr]