Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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
Inhaltsverzeichnis

automatisch sortieren über VBA

automatisch sortieren über VBA
18.11.2013 13:15:52
Marco
Hallo zusammen,
in der beigefügten Excel-Tabelle soll beim CommandButton "Eingabe speichern", welche in der Eingabemaske zu finden ist, das Sheet nach Spalte F (A-Z) sortiert werden. Ist das möglich? Wenn ja, wie lautet der Code?
Vielen Dank für eure Hilfe.
https://www.herber.de/bbs/user/88138.xlsm
Grüße
Marco

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisch sortieren über VBA
18.11.2013 13:26:04
Klaus
Hi Marco,
der Makrorekorder ist dein Freund! Das sortieren geht so:
Sub Makro1()
' Makro2 Makro
Columns("A:N").Select
ActiveWorkbook.Worksheets("Projekt").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Projekt").Sort.SortFields.Add Key:=Range("F2:F200" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Projekt").Sort
.SetRange Range("A1:N200")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Oder, etwas eleganter als der reine Rekordercode, so:
Sub SortierenBesser()
Dim lRow As Long
With Sheets("Projekt")
lRow = .Cells(.Rows.Count, 6).End(xlUp).Row
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("F2:F" & lRow), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
.Sort.SetRange .Range("A1:N" & lRow)
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
End Sub
Das entsprechende Makro rufst du einfach im Code des Buttons der Userform auf:
Private Sub speichernButton_Click()
Call SortierenBesser
'Eingaben prüfen
If Me.KdnBox = "" Or _
Me.PLBox = "" Or _
[... ganz viel Code ...]
MsgBox "Die Referenzdatenbank bedankt sich für deinen Eintrag!", _
vbInformation + vbOKOnly, "Referenzdatenbank"
'zeigt Textfeld nach speichern an
End Sub

oder Copy-Paste das ganze direkt in den Button, aber dann wird's unübersichtlich ...
Grüße,
Klaus M.vdT.

Anzeige
AW: automatisch sortieren über VBA
18.11.2013 13:43:25
Marco
Hi,
wenn ich den Code so reinschreibe, füllt er die Daten der Eingabemaske jeweils in die erste Zeile... er soll sie aber in die nächste freie Zeile speichern und anschließend nach Spalte F sortieren.
Vielen Dank für eine Lösung.
Grüße
Marco

AW: automatisch sortieren über VBA
18.11.2013 14:42:43
Rudi
Hallo,
füllt er die Daten der Eingabemaske jeweils in die erste Zeile...
das liegt aber nicht an Klaus' Code.
Gruß
Rudi

AW: automatisch sortieren über VBA
18.11.2013 15:06:34
Klaus
Hallo Marco,
füllt er die Daten der Eingabemaske jeweils in die erste Zeile...
dann machst du es falsch. Die Daten werden hier in die Tabelle geschrieben:
    Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count) + 1
Cells(LoLetzte, 2) = KdnBox

LoLetzte prüft die letzte Zeile aus Spalte A. Ist diese bei dir gefüllt, wird auch erst die nächste freie Zeile beschrieben. Ist sie leer, wird der Inhalt von Zeile 2 ÜBERschrieben!
und anschließend nach Spalte F sortieren.
dann stell den sortier-Code doch ans Ende statt an den Anfang!
Marco, du hast eingangs eine Frage gestellt und dich kurz darauf auf etwas völlig anderes bezogen. Die von dir beschriebenen Phänomene können nach meinem Kenntnisstand von Datei und Code so nicht stimmen, oder du meinst das eine aber schreibst das andere. Damit dir geholfen wird solltest du dein Anliegen nochmal präzise Stellen!
Grüße,
Klaus M.vdT.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige