Königstein93
Lt. Commander
- Registriert
- Juni 2009
- Beiträge
- 1.177
Guten Morgen allerseits,
ich habe folgende Excel-Tabelle erstellt und mittels der Makro-Aufzeichnungen ein "gutes" VBA-Programm hinbekommen…
So sieht ungefähr die Tabelle "Sample" aus:
Ich habe hierbei zwei Buttons erstellt, womit bei einem die Filter ein und ausgeblendet werden und der zweite ist eine Art "Bereinigen", d.h. es sollen alle Zeilen, wo in J "Ja"steht (wird erst erfüllt, wenn ein x in "H"und "I"sich befindet) gefiltert werden und gleichzeitig erst nach "J" und dann nach "A"sortiert werden.
Der Code hierfür ist dieser:
Meine Frage hierbei: Wie kann man das ganze optimieren (Kenne mich nicht so mit VBA aus), sodass er die kompletten Spalten (wo überall was drin steht oder stehen wird) benutzt und nicht bei "Buchstabe97" aufhört! Wichtig dabei ist, dass die erste Zeile nicht beachtet wird (Kopfzeile)
ich habe folgende Excel-Tabelle erstellt und mittels der Makro-Aufzeichnungen ein "gutes" VBA-Programm hinbekommen…
So sieht ungefähr die Tabelle "Sample" aus:
A | B | C | D | E | F | G | H | I | Filter (J) |
---|---|---|---|---|---|---|---|---|---|
Name | Datum | KW | x | x | x | x | x | x | Ja |
Name | Datum | KW | x | x | x | x | x | Nein | |
Name | Datum | KW | x | x | x | x | x | Nein | |
Name | Datum | KW | x | x | x | x | Nein | ||
Name | Datum | KW | x | x | x | x | Nein |
Ich habe hierbei zwei Buttons erstellt, womit bei einem die Filter ein und ausgeblendet werden und der zweite ist eine Art "Bereinigen", d.h. es sollen alle Zeilen, wo in J "Ja"steht (wird erst erfüllt, wenn ein x in "H"und "I"sich befindet) gefiltert werden und gleichzeitig erst nach "J" und dann nach "A"sortiert werden.
Der Code hierfür ist dieser:
Code:
Sub Verschwinden()
'
' Verschwinden Makro
'
' Tastenkombination: Strg+ö
'
Columns("A:J").Select
ActiveWorkbook.Worksheets("Sample").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sample").Sort.SortFields.Add2 Key:=Range( _
"J2:J784"), SortOn;=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Sample").Sorr.SortFields.Add2 Key:=Range( _
"A2:A784"), SortOn;=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Sample").Sort
.SetRange Range("A2:J784")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
ActiveSheet.Range("$J$1:$J$97").AutoFilter Field:=1, Criteria1:="Nein"
End With
ActiveSheet.AutoFilter.ApplyFilter
End Sub
Sub Sichtbar()
'
' Sichtbar Makro
'
'Tastenkombination: Strg+q
'
ActiveSheet.Range("$J$1:$J$97").AutoFilter Field:=1
End Sub
Meine Frage hierbei: Wie kann man das ganze optimieren (Kenne mich nicht so mit VBA aus), sodass er die kompletten Spalten (wo überall was drin steht oder stehen wird) benutzt und nicht bei "Buchstabe97" aufhört! Wichtig dabei ist, dass die erste Zeile nicht beachtet wird (Kopfzeile)