Hallo,
ich habe ein kleines Problem mit meinem Code. Leider dauert die Ausführung etwas zu lange.
Also ich habe in Excel 3 Spalten befüllt (ca. 35000 Zeilen).
Spalte A: Datum
Spalte B: Uhrzeit
Spalte C: Wert
Jetzt möchte ich z.B. alle Datums, Uhrzeiten und Werte von den Monaten Sept., Okt. und Nov. in ein neues Tabellenblatt schreiben. Im neuen Tabellenblatt sollen diese dann noch sortiert werden und Duplikate geloscht werden. Aber das geht eigentlich ganz zackig. Was aber m.E. aufhält ist das Einfügen in ein neues Tabellenblatt.
Anbei mein Codeausschnitt:
Gibt es hier eine bessere bzw. schnellere Alternative?
Danke, Gruß MArtin.
Edit by Dodo:
-> Topic verschoben (Grundlagen => VBA)
ich habe ein kleines Problem mit meinem Code. Leider dauert die Ausführung etwas zu lange.
Also ich habe in Excel 3 Spalten befüllt (ca. 35000 Zeilen).
Spalte A: Datum
Spalte B: Uhrzeit
Spalte C: Wert
Jetzt möchte ich z.B. alle Datums, Uhrzeiten und Werte von den Monaten Sept., Okt. und Nov. in ein neues Tabellenblatt schreiben. Im neuen Tabellenblatt sollen diese dann noch sortiert werden und Duplikate geloscht werden. Aber das geht eigentlich ganz zackig. Was aber m.E. aufhält ist das Einfügen in ein neues Tabellenblatt.
Anbei mein Codeausschnitt:
Visual Basic-Quellcode
- 'HERBST
- zei = 0
- For Wiederholungen = 1 To Worksheets.Count
- If Sheets(Wiederholungen).Name = "Herbst" Then Blatt_vorhanden = True
- Next
- If Blatt_vorhanden = False Then
- With Worksheets.Add(Sheets(1))
- .Name = "Herbst"
- End With
- End If
- Sheets("Herbst").Columns("A").NumberFormat = "m/d/yyyy"
- Sheets("Herbst").Columns("B").NumberFormat = "hh:mm:ss;@"
- Sheets("Herbst").Columns("C").NumberFormat = "#,##0"
- Sheets("Herbst").Columns("A:Z").Font.Size = 8
- Sheets("Herbst").Columns("A:Z").Font.Name = "Arial"
- With Worksheets("Quelle")
- For n = 3 To .range("a65536").End(xlUp).Row
- If Month(.Cells(n, "a")) = 9 Then
- zei = zei + 1
- Worksheets("Herbst").Cells(zei + 1, "a") = .Cells(n, "a")
- Worksheets("Herbst").Cells(zei + 1, "b") = .Cells(n, "b")
- Worksheets("Herbst").Cells(zei + 1, "c") = .Cells(n, "c")
- End If
- If Month(.Cells(n, "a")) = 10 Then
- zei = zei + 1
- Worksheets("Herbst").Cells(zei + 1, "a") = .Cells(n, "a")
- Worksheets("Herbst").Cells(zei + 1, "b") = .Cells(n, "b")
- Worksheets("Herbst").Cells(zei + 1, "c") = .Cells(n, "c")
- End If
- If Month(.Cells(n, "a")) = 11 Then
- zei = zei + 1
- Worksheets("Herbst").Cells(zei + 1, "a") = .Cells(n, "a")
- Worksheets("Herbst").Cells(zei + 1, "b") = .Cells(n, "b")
- Worksheets("Herbst").Cells(zei + 1, "c") = .Cells(n, "c")
- End If
- Next n
- End With
Gibt es hier eine bessere bzw. schnellere Alternative?
Danke, Gruß MArtin.
Edit by Dodo:
-> Topic verschoben (Grundlagen => VBA)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()