Supportnet / Forum / Tabellenkalkulation
Excel VBA Befehl zum Sortieren
Frage
Hallo alle zusammen.
Folgendes Problem:
Habe eine liste mit namen. daraus hab ich ein kombinationsfeld (drop down menü)erstellt die als basis die namen hat. wenn ich auf das kombinationsfeld klicke, kann ich einen namen aus dem menü auswählen.
so. nun möchte ich aber, dass wenn ich einen namen aus dem kombinationsfeld anklicke, die tabelle (mit den namen) sortiert wird. also nur noch der name angezeigt wird, den ich im kombifeld ausgewählt habe.
(mit autofilter ist es möglich, das weiß ich auch, aber ich brauche es als kombinationsfeld)
hoffe ich konnte mein problem einigermaßen verständlich machen.
danke im voraus.
gruß
Antwort 1 von nighty
hi $mooth :)
hinterlege einen makrocode im kombinationsfeld der den ausgewaehlten namen ermittelt worauf der aufruf nach uebergabe des namens mit einer string variable des autofilters erfolgt,alternativ ueber der auswahl "alle" die ungefillterte stellung.
syntax der filterung leicht ueber makroaufnahme feststellbar :)
gruss nighty
hinterlege einen makrocode im kombinationsfeld der den ausgewaehlten namen ermittelt worauf der aufruf nach uebergabe des namens mit einer string variable des autofilters erfolgt,alternativ ueber der auswahl "alle" die ungefillterte stellung.
syntax der filterung leicht ueber makroaufnahme feststellbar :)
gruss nighty
Antwort 2 von $mooth
hi nighty...
sorry aber ehrlich gesagt weiß ich nicht, wie ich das machen soll.
also ein makro aufs kombifeld hinterlegen. eigentlich weiß ich gar nicht, wie ich bei deiner beschreibung vorgehen soll. kannst du mir evtl. etwas detailliertere infos geben?
wäre super von dir.
sorry aber ehrlich gesagt weiß ich nicht, wie ich das machen soll.
also ein makro aufs kombifeld hinterlegen. eigentlich weiß ich gar nicht, wie ich bei deiner beschreibung vorgehen soll. kannst du mir evtl. etwas detailliertere infos geben?
wäre super von dir.
Antwort 3 von nighty
hi $mooth :)
kurzes beispiel
zur zeit wird "Sabine" und "Peter" und "Alle ermittelt"
bei sabine und peter wirt der filter aktiv bezugnehmend des ausgewaehlten namens
bei "alle" was noch bei deiner box hinzugefuegt werden muesste die alternativstellung (ohne filterung)
der code ist im entwicklermodus bei der combobox einzutragen.
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Sabine" Then Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Peter" Then Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Alle" Then Selection.AutoFilter Field:=1
End Sub
kurzes beispiel
zur zeit wird "Sabine" und "Peter" und "Alle ermittelt"
bei sabine und peter wirt der filter aktiv bezugnehmend des ausgewaehlten namens
bei "alle" was noch bei deiner box hinzugefuegt werden muesste die alternativstellung (ohne filterung)
der code ist im entwicklermodus bei der combobox einzutragen.
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Sabine" Then Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Peter" Then Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Alle" Then Selection.AutoFilter Field:=1
End Sub
Antwort 4 von $mooth
sorry ich hab den befehl so eingegeben aber das klappt nicht (hab natürlich die namen durch die namen in meiner liste ergänzt und bei field das entsprechende field eingegeben)
allerdings ist ein weiteres problem, das namen nicht "fix" sein dürfen, sondern aus der anderen datei auf die sich die combobox bezieht herausgezogen werden müssen.
hört sich kompliziert an, ich weiß. bin selbst mitlerweile am verzweifeln....
bin über jeden rat dankbar...
allerdings ist ein weiteres problem, das namen nicht "fix" sein dürfen, sondern aus der anderen datei auf die sich die combobox bezieht herausgezogen werden müssen.
hört sich kompliziert an, ich weiß. bin selbst mitlerweile am verzweifeln....
bin über jeden rat dankbar...
Antwort 5 von nighty
hi $mooth
ausgangsbasis combobox ist neu befuellt worden so muss ja ein range bereich oder ein array vorhandensein
hier ein range beispiel
gruss nighty
Private Sub ComboBox1_Change()
for anzahl=1 to 20
rem beachte diese zeile,hier koennten deine namen stehen,A1 bis A20 ,wie oben angegeben das maximum der anzahl namen
If ComboBox1.Value = range("A" & anzahl) Then
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Alle" Then Selection.AutoFilter Field:=1
next anzahl
End Sub
ausgangsbasis combobox ist neu befuellt worden so muss ja ein range bereich oder ein array vorhandensein
hier ein range beispiel
gruss nighty
Private Sub ComboBox1_Change()
for anzahl=1 to 20
rem beachte diese zeile,hier koennten deine namen stehen,A1 bis A20 ,wie oben angegeben das maximum der anzahl namen
If ComboBox1.Value = range("A" & anzahl) Then
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox1.Value = "Alle" Then Selection.AutoFilter Field:=1
next anzahl
End Sub
Antwort 6 von $mooth
also ich hab mal ein vereinfachtes beispiel unter dieser adresse. vielleicht kannst du mir so besser helfen.
http://www.herber.de/bbs/user/5242.xls
gruß und danke.
http://www.herber.de/bbs/user/5242.xls
gruß und danke.