Thema Datum  Von Nutzer Rating
Antwort
09.01.2016 13:54:13 Matthias
NotSolved
09.01.2016 15:17:51 Gast23553
NotSolved
09.01.2016 19:35:30 Matthias
NotSolved
10.01.2016 15:10:50 Matthias
NotSolved
10.01.2016 17:06:45 Matthias
NotSolved
10.01.2016 18:07:08 Gast47001
NotSolved
10.01.2016 18:16:23 Matthias
NotSolved
10.01.2016 19:18:07 Gast78858
NotSolved
10.01.2016 19:44:03 Matthias
NotSolved
10.01.2016 20:37:49 Gast75511
NotSolved
10.01.2016 22:20:14 Peter
NotSolved
10.01.2016 22:53:57 Gast93497
NotSolved
11.01.2016 18:34:16 Matthias
NotSolved
11.01.2016 20:58:11 Gast24821
NotSolved
12.01.2016 19:03:51 Matthias
NotSolved
12.01.2016 20:46:37 Matthias
NotSolved
16.01.2016 10:28:33 Matthias
NotSolved
16.01.2016 11:35:23 Gast7340
NotSolved
16.01.2016 13:43:18 Matthias
NotSolved
16.01.2016 20:27:06 Gast59546
NotSolved
16.01.2016 20:43:49 Matthias
NotSolved
16.01.2016 23:05:06 Gast27892
NotSolved
17.01.2016 10:36:14 Matthias
NotSolved
17.01.2016 12:34:32 Matthias
NotSolved
17.01.2016 13:21:30 Gast21379
NotSolved
17.01.2016 14:17:36 Matthias
NotSolved
17.01.2016 14:51:02 Gast31799
NotSolved
17.01.2016 15:38:49 Matthias
NotSolved
17.01.2016 17:43:45 Gast59516
NotSolved
17.01.2016 18:06:12 Gast90961
NotSolved
Rot Daten auf einzelne Sheets aufteilen
17.01.2016 18:30:40 Gast8489
NotSolved
17.01.2016 18:48:34 Matthias
Solved
17.01.2016 19:11:44 Gast41059
NotSolved

Ansicht des Beitrags:
Von:
Gast8489
Datum:
17.01.2016 18:30:40
Views:
949
Rating: Antwort:
  Ja
Thema:
Daten auf einzelne Sheets aufteilen

Also dann folgt jetzt unten der Code. Der Durchläuft 8 mal eine Schleife. Je nach Durchlaufindex wird ein andere Filter gesetzt und eine andere Spalte kopiert.
Mal schnell im Durchlauf:
1. Durchlauf i = 1
Spalte A bis M Filter A oder B in M gesetzt
neues Blatt
A bis D kopiert
Spalte 7 (= G) kopiert
Name aus der eingefügten Spalte

2. Durchlauf i = 2
Spalte A bis M Filter, A oder B in M gesetzt
neues Blatt
A bis D kopiert
Spalte 8 (= H) kopiert
Name aus der eingefügten Spalte

und so weiter bis 6, wobei hier bis Spalte L kopiert wird - wird geregelt über .UsedRange.Columns(i + 6).Copy ActiveSheet.Cells(1, 5), beachte dabei Wert von i

7. Durchlauf i = 7
Spalte A bis M Filter C in M gesetzt
neues Blatt
A bis D kopiert
Spalte 11 (= K) kopiert  - das wid hierüber geregelt .UsedRange.Columns(i + 4), beachte Wert von i
Name aus der eingefügten Spalte + C

8. Durchlauf i = 1
Spalte A bis M Filter C in M gesetzt
neues Blatt
A bis D kopiert
Spalte 12 (= L) kopiert
Name aus der eingefügten Spalte + C

Ende der Durchläufe


Das sollte so sein, wie du es wolltest, Geh das oben (die Durchläufe) bitte mal durch und schau, was anders werden soll.
Hier nun der Code.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Sub blatt_nach_Filter_erzeugen()
  
Dim i As Integer
  
Application.ScreenUpdating = False
  
'Blatt eins als Ausgang
With Worksheets(1)
 
' 6 für A/ B und 2 für C deshalv 8 Durchläufe kann man ändern, dann aber beim Filter darauf achten, wann C kommt
For i = 1 To 8
    'Filter setzen
    If i < 7 Then
    'für die mit A und B
        .Range("$A:$M").AutoFilter Field:=13, Criteria1:="=*A*", Operator:=xlOr, Criteria2:="=*B*"
    Else
    ' die zwei für C ab Durchlauf 7
        .Range("$A:$M").AutoFilter Field:=13, Criteria1:="=*C*"
    End If
      
    ' Blatt einfügen
    Worksheets.Add After:=Sheets(Sheets.Count)
    'A bis D kopieren - wird gefilter kopiert - kann man aber auch wandeln, dass die 4 Spalte ungefilter eingefügt werden und dann erst der Filter kommt
    .UsedRange.Range("A:D").Copy ActiveSheet.Cells(1)
    ' jeztt noch die Spalte je nach Index einfügen
    If i < 7 Then
    .UsedRange.Columns(i + 6).Copy ActiveSheet.Cells(1, 5)
    Else
    ' wiede rbei 7 und 8
    .UsedRange.Columns(i + 4).Copy ActiveSheet.Cells(1, 5)
    End If
    ' Namen festlegen nach jew. Spalte
     
    If i > 6 Then
    ActiveSheet.Name = ActiveSheet.Cells(1, 5) + "C"
    Else
    ActiveSheet.Name = ActiveSheet.Cells(1, 5)
    End If
Next i
'im Ausgang den Filter wieder rausnehmen
.Range("$A:$M").AutoFilter
  
End With
  
Application.ScreenUpdating = True
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
09.01.2016 13:54:13 Matthias
NotSolved
09.01.2016 15:17:51 Gast23553
NotSolved
09.01.2016 19:35:30 Matthias
NotSolved
10.01.2016 15:10:50 Matthias
NotSolved
10.01.2016 17:06:45 Matthias
NotSolved
10.01.2016 18:07:08 Gast47001
NotSolved
10.01.2016 18:16:23 Matthias
NotSolved
10.01.2016 19:18:07 Gast78858
NotSolved
10.01.2016 19:44:03 Matthias
NotSolved
10.01.2016 20:37:49 Gast75511
NotSolved
10.01.2016 22:20:14 Peter
NotSolved
10.01.2016 22:53:57 Gast93497
NotSolved
11.01.2016 18:34:16 Matthias
NotSolved
11.01.2016 20:58:11 Gast24821
NotSolved
12.01.2016 19:03:51 Matthias
NotSolved
12.01.2016 20:46:37 Matthias
NotSolved
16.01.2016 10:28:33 Matthias
NotSolved
16.01.2016 11:35:23 Gast7340
NotSolved
16.01.2016 13:43:18 Matthias
NotSolved
16.01.2016 20:27:06 Gast59546
NotSolved
16.01.2016 20:43:49 Matthias
NotSolved
16.01.2016 23:05:06 Gast27892
NotSolved
17.01.2016 10:36:14 Matthias
NotSolved
17.01.2016 12:34:32 Matthias
NotSolved
17.01.2016 13:21:30 Gast21379
NotSolved
17.01.2016 14:17:36 Matthias
NotSolved
17.01.2016 14:51:02 Gast31799
NotSolved
17.01.2016 15:38:49 Matthias
NotSolved
17.01.2016 17:43:45 Gast59516
NotSolved
17.01.2016 18:06:12 Gast90961
NotSolved
Rot Daten auf einzelne Sheets aufteilen
17.01.2016 18:30:40 Gast8489
NotSolved
17.01.2016 18:48:34 Matthias
Solved
17.01.2016 19:11:44 Gast41059
NotSolved