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.