Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren ws3 makro

Sortieren ws3 makro
01.08.2006 22:10:46
Karel
Hallo
wie kann ich nach Kopieren nach Tabelle ws3 alle Daten Sortieren nach spalte c
habe selbst probiert mit.
For LN = 2 To 20
ws1.Range(ws1.Cells(LN, 2), ws1.Cells(LN, 20)).Select
Selection.Sort Range.Cells(LN, 3), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
aber noch nicht genugend erfahrung.

Sub Daten_verschieben_10()
Application.ScreenUpdating = False
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("start")
Set ws2 = ThisWorkbook.Worksheets("Zertifikate")
Set ws3 = ThisWorkbook.Worksheets("Wein")
Dim LN, r2, r3
r2 = 2 ' 1. Zeile zum Einfügen von Daten in Tabelle 2
r3 = 29 ' 1. Zeile zum Einfügen von Daten in Tabelle 3
For LN = 29 To 2000
ws3.Range(ws3.Cells(LN, 2), ws3.Cells(LN, 20)).ClearContents
ws3.Range(ws3.Cells(LN, 22), ws3.Cells(LN, 22)).ClearContents
Next LN
For LN = 2 To 2000
If ws1.Cells(LN, 30) = "Zertifikat" Then 'Spalte 30 (LN,30)
With ws2
ws1.Range(ws1.Cells(LN, 30), ws1.Cells(LN, 33)).Copy
.Cells(r2, 1).PasteSpecial Paste:=xlValues
r2 = r2 + 1
End With
End If
Next LN
For LN = 2 To 2000
If ws1.Cells(LN, 32).Text = "Wein" Then
With ws3
ws1.Range(Cells(LN, 2), ws1.Cells(LN, 20)).Copy
.Cells(r3, 2).PasteSpecial Paste:=xlValues
ws1.Range(Cells(LN, 22), ws1.Cells(LN, 22)).Copy
.Cells(r3, 22).PasteSpecial Paste:=xlValues
r3 = r3 + 1
End With
ws1.Cells(LN, 2).ClearContents
End If
Next LN
ws1.Activate
Range("A2").Select
Application.CutCopyMode = False
End Sub

Grusse
Karel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren ws3 makro
02.08.2006 00:00:11
Uwe Küstner
Hallo Karel,
nur mal so ins Blaue geraten:
Füge vor End Sub diese Zeilen ein:
With ws3
.Cells.Sort .Cells(1, 3), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End With

Gruß Uwe
AW: Sortieren ws3 makro
02.08.2006 13:42:50
Karel
Hallo Uwe,
Habe probiert aber Lauft nicht
Gruss
Karel
AW: Sortieren ws3 makro - sofern Frage noch offen
05.08.2006 23:08:33
ingUR
Hallo, Karel,
Das Sortieren kann nur wirken, wenn es sich auf das aktive Tabellenblatt bezieht. Vor dem With ws3-Block ist daher ws3.Activate erforderlich.
Bei gleichen Vorkommen der Sortiermerkmale in der Spalte C sind zudem weiter Spalten als nachrangige Sortierspalten vorzugeben; in diesem Fall ist das Schlüsselwort Key[1|2|3] erforderlich.
Sofern Kopfzeilen zu beachten sind, ist dies bei der Angabe der Startzeile zu berücksichtigen (statt .Cells(2, 3) kann auch .Range("C3") verwendet werden).

ws3.Activate
With ActiveSheet 'alternativ With ws3
Cells.Sort Key1:=.Cells(2, 3), Order1:=xlAscending, _
Key2:=.Cells(2, 1), Order2:=xlDescending, _
Key3:=.Cells(2, 2), Order3:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=True, _
Orientation:=xlTopToBottom
End With

(Key2 und Key3 können entfallen, wenn ncht erforderlich)
Gruß,
Uwe R.
Anzeige
@Uwe
05.08.2006 23:14:41
Josef Ehrensberger
Hallo Uwe!
Warum soll das nur laufen, wenn ws3 aktiv ist?
Wenn man sauber referenziert, dann läuft's zu 99,5% ohne "Select" und "Activate".
With ws3
  .Cells.Sort Key1:=.Cells(2, 3), Order1:=xlAscending, _
    Key2:=.Cells(2, 1), Order2:=xlDescending, _
    Key3:=.Cells(2, 2), Order3:=xlDescending, _
    Header:=xlGuess, _
    OrderCustom:=1, _
    MatchCase:=True, _
    Orientation:=xlTopToBottom
End With

Gruß Sepp
Anzeige
AW: @Sepp
06.08.2006 00:15:18
ingUR
Nun, Sepp,
da Karel mitteilte, dass der von Uwe K. gelieferte Codezeilen nicht funktionierten, habe ich versucht, unter welchen Bedingungen diese Zeile nicht funktionieren könnte.
Das Ergebnis war, dass dieser Programmteil nur dann bei meinen Tests nicht funktionierte, wenn das aktive Tabellenblatt nicht ws3 ist, daher mein Hinweis, der unabhängig von Deinen uneingeschränkt richtigen Bemerkungen zum sauberen Referenzieren gegeben wurde, zumal von Karel auch nicht beschrieben wurde, welche Art von Fehler beobachtet wurde.
Gruß,
Uwe
War wohl mein Fehler
06.08.2006 00:22:53
Uwe Küstner
Hallo Zusammen,
jetz hab ich gerade noch mal meinen Code angesehen
und festgestellt, dass ich das 'Key1:=' vergessen hatte. :-(
Sepp hat es in seinem Beispiel aber richtig geschrieben.
Gruß Uwe
Anzeige
AW: Nee, Uwe K., war m.E. nicht Dein Fehler
06.08.2006 04:18:45
ingUR
Hallo, Uwe,
kein Grund betrübt zu sein ;-), denn das Schlüsselwort Key1:= selbst ist optional einsetzbar (der erste Ordnungsbegriff muß aber angeben werden), nur die weiteren Schlüssel müssen mit Key2:= und Key3:= eingeleitet werden, wenn sie verwendet werden, wobei Key2 und/oder Key3 einsetbar ist (also Key2 kann fehlen, wenn Key3 benutzt wird).
Allerdings fällt mir keine bedeutende Nutzanwendung für diese Erkenntnis ein, außer das man sich sechs Tastendrücke spart.
Gruß,
Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige