Microsoft Excel

Herbers Excel/VBA-Archiv

Reiter anhand von Daten erstellen lassen | Herbers Excel-Forum


Betrifft: Reiter anhand von Daten erstellen lassen von: F. Jordan
Geschrieben am: 27.01.2010 12:14:40

Hallo zusammen

Ich möchte aus einer Gesamtliste die Buchungskreise auslesen und filtern (hat bereits beides geklappt), danach soll anhand der Zusammenstellung automatisch ein Reiter pro Buchungskreis erstellt werden. Die Daten wurden in ein bestehendes Datenblatt einkopiert, es besteht keine Filterung mehr, nur Werte.

Basis:
1 CH
2 DE
3 FR
4 E
5 GB
usw

Ziel:
Reiter: 1 CH / 2 DE / 3 FR / usw.

Wie bringe ich das hin? Vielen Dank für Eure Hilfe!

Gruss
Frédéric

  

Betrifft: AW: Reiter anhand von Daten erstellen lassen von: NoNet
Geschrieben am: 27.01.2010 12:22:54

Hallo Frédéric,

ich gehe in folgendem Code davon aus, dass die Namen der zu erstellenden Tabellenblätter im Blatt "Basis" in Spalte A untereinander stehen :

Sub TabReiterErstellen()
    Dim lngZ As Long
    
    On Error Resume Next 'Falls Blattname bereits existiert
    With Sheets("Basis") 'Name des Tabellenblattes, das die Daten in Spalte A enthält
        For lngZ = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            If .Cells(lngZ, 1) <> "" Then
                Sheets.Add(after:=Sheets(Sheets.Count)).Name = .Cells(lngZ, 1)
            End If
        Next
        .Activate
    End With
End Sub
Gruß, NoNet


  

Betrifft: AW: Reiter anhand von Daten erstellen lassen von: F. Jordan
Geschrieben am: 27.01.2010 12:40:45

Hallo NoNet

Das hat schon mal super geklappt. Vielen Dank für die extrem rasche Hilfe!

Ein kleines Detail... kann man definieren, dass eine Zelle mit dem Wert 0 keinen Reiter erstellen soll? Wenn nein, dann muss ich das früher irgendwie rauslöschen.

Gruss
Frédéric


  

Betrifft: If .Cells(lngZ, 1)<>"" And .Cells(lngZ, 1)<>0 then von: NoNet
Geschrieben am: 27.01.2010 12:45:39

Hallo Frédéric,

ergänze einfach die Abfrage entsprechend :

Sub TabReiterErstellen()
    Dim lngZ As Long
    
    On Error Resume Next 'Falls Blattname bereits existiert
    With Sheets("Basis") 'Name des Tabellenblattes, das die Daten in Spalte A enthält
        For lngZ = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            If .Cells(lngZ, 1) <> "" And .Cells(lngZ, 1) <> 0 Then
                Sheets.Add(after:=Sheets(Sheets.Count)).Name = .Cells(lngZ, 1)
            End If
        Next
        .Activate
    End With
End Sub
Gruß, NoNet


  

Betrifft: AW: If .Cells(lngZ, 1)<>"" And .Cells(lngZ, 1)<>0 then von: F. Jordan
Geschrieben am: 27.01.2010 13:38:27

Hallo NoNet

Ist der Wahnsinn. Echt, freue mich riesig. Bin durch Deine Hilfe ein grosses Stück vorwärts gekommen.

Gruss
Frédéric


Beiträge aus den Excel-Beispielen zum Thema "Reiter anhand von Daten erstellen lassen"