Hey Leute,
anbei eine Bsp-Datei. Ich such ein Worksheet-Activate Event um die Einträge in der Tabelle nach der Reihe von Zeile 9 an zu ordnen. Also in B9 soll dann "toll" stehen und in B10 "super". Einfach das die Einträge schön unter einander sind.
Die Einträge kommen durch Verknüpfungen so quer in die Tabelle.
Moin!
Eine Möglichkeit:
Sub Sortieren()
With Tabelle9
.Range("B9:B36").Sort .Range("B9"), xlDescending
.Range("D9:D36").Sort .Range("D9"), xlDescending
End With
End Sub
Gruß Ralf
Sorry, der hat meine Antwort von heute morgen nicht gepostet...
@Elex, dieser Wunsch kam auch erste sehr kurzfristig auf mich zu.
@Ralf, geht leider in dieser Form nicht bei mir.
(06.03.2019, 13:39)elamigo schrieb: [ -> ]@Ralf, geht leider in dieser Form nicht bei mir.
Der soll ja auch nicht gehen, sondern lediglich funktionieren, was "er" bei mir anstandslos tut.
Etwas genauer?
Code:
Sub Schaltfläche2_Klicken()
Range("B9:B36").Select
ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort.SortFields.Add Key:= _
Range("B9"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort
.SetRange Range("B9:B36")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D9:D36").Select
ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort.SortFields.Add Key:= _
Range("D9"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Notes Sighting-Round").Sort
.SetRange Range("D9:D36")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
das spuckt mir das Makro aus, geht easy als Schaltfläche, aber als Worksheet_activate Event, gibt es direkt ein Fehler und der debugger macht die erste Zeile gelb.
Hi
Zitat:@Elex, dieser Wunsch kam auch erste sehr kurzfristig auf mich zu.
Ja und ist jetzt deshalb eine Änderung am anderen Code nicht möglich oder Funktionell nicht machbar?
Zum Verständnis deines neuen Wunsches. Du möchtest keine Sortierung sondern nur ein Zusammenrutschen der Inhalte (leere Zellen weg) Oder?
Gruß Elex
ja zusammen rücken der Ergebnisse. Allerdings sind im Orginal noch Notizen in Spalte G, sieht hier gelb markiert.
Daher keine Ahnung Ob du mit zusammen rücken Zeilen löschen meinst.
(06.03.2019, 13:49)elamigo schrieb: [ -> ]das spuckt mir das Makro aus, geht easy als Schaltfläche, aber als Worksheet_activate Event, gibt es direkt ein Fehler und der debugger macht die erste Zeile gelb.
Was genau hat jetzt Dein Rekorder-Code mit meinem Zweizeiler zu tun?
Du könntest im Activate den selben Code nutzen, allerdings wäre
Tabelle9 im Klassenmodul der Tabelle gleichbedeutend mit
Me, also redundant.
Gruß Ralf
Hi
Code:
Private Sub Worksheet_Activate()
Dim arrWerteB(1 To 28, 0) As Variant, arrWerteD(1 To 28, 0) As Variant
Dim i As Long, b As Long, d As Long
b = 1
d = 1
For i = 9 To 36
If Cells(i, 2) <> "" Then
arrWerteB(b, 0) = Cells(i, 2).Value
b = b + 1
End If
If Cells(i, 4) <> "" Then
arrWerteD(d, 0) = Cells(i, 4).Value
d = d + 1
End If
Next i
Range("B9:B36").Value = arrWerteB
Range("D9:D36").Value = arrWerteD
End Sub