Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Inhalt einer Listbox sortieren

Inhalt einer Listbox sortieren
22.07.2003 10:22:00
frebert
Hallo liebe Excel- und VB(A)-Cracks,
ich habe 2 kleine aufgaben für euch:
1. Mit dem folgenden Code fülle ich eine Listbox mit den Namen aller sheets in meinem workbook, in der ich später Auswahlen treffe:

Private Sub UserForm_Initialize()
Dim name As String
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
name = Sheets(i).name
With ListBox1
.AddItem name
End With
Next
Application.ScreenUpdating = True
End Sub

Meine Frage: Wie lässt sich der Inhalt der ListBox am besten alphabetisch sortieren? (Übersichtshalber)
2. Ich möchte ein Menü mit einem Rechten Maus click öffnen. Wie kann ich verhindern, dass nach dem Schließen des Menüs, das normale rechte Mausclick menü erscheint?? Also das von Excel standartmässig vorgesehene Menü für die rechte Maustaste??
Recht herzlichen Dank im Voraus!
Grüße
Da Frebert

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt einer Listbox sortieren
22.07.2003 10:46:16
Ivan
hi Frebert
Frage?
Warum Sortierst du die tabelle nicht bevor du die
listbox einträge zeigst??
gruss
ivan

AW: Inhalt einer Listbox sortieren
22.07.2003 11:16:24
frebert
Hallo ivan,
weil ich das auch irgendwie nicht schaffe :-)
Es is so besch. kompliziert, wie excel seine Namensgebung handelt.
3 Varianten 1x Name (Caption) 1x Name (CodeName) 1x einfach durchnummeriert, je nach Erstellungsreihenfolge. Und ich habe nicht nach alphabet erstellt, sondern durcheinander.
Hoffe Du verstehst was ich meine.
Wenn Du natürlich einen tipp hast, wie ich das ganze vorher sortiere, wäre ich sehr erfreut, wenn Du mir ihn auch sagen würdest.
Ausserdem ist es grad viel zu heiß
Grüße
da Frebert

Anzeige
AW: Inhalt einer Listbox sortieren
22.07.2003 11:25:03
Ivan
hi frebert
das sortieren ist ja kein problem!
sag mir bitte wieviele tabellen es sind.
sag mir den namen und die bereiche die du sortieren möchtest.
oder zeichne die sortierung mit dem macrorecorder auf das ist ja easy.
im menü daten sortiern!
gruss
ivan

AW: Inhalt einer Listbox sortieren
22.07.2003 12:59:50
frebert
Ja ja ja ja,
nur ist leider die Menüfunktion Sortieren bei Tabellenblättern nicht anklickbar!!
Wie ich die tabellen mit einer for next schleife Sortiere weiss ich auch, doch habe ich 40 verschiedene Tabellen mit verschiedenen Namen. Da war mir der Aufwand zu Groß. Wollte es halt einfacher. Wollte NICHT eien Inhalt einer Tabelle sortieren, sonder die Tabellen innerhalb des workbooks!!!
Wenn Du jetzt noch ne Idee hast, bitte! Ich werd derweil mal die Lösung vom Nepumuk ausprobieren.
Danke trotzdem
Grüße ;-)
da Frebert

Anzeige
AW: Inhalt einer Listbox sortieren
22.07.2003 12:40:46
Nepumuk
Hallo Frebert,
sortieren in einer Listbox funktioniert so:

Option Explicit
Private Sub CommandButton1_Click()
Call sortieren(0, ListBox1.ListCount - 1)
End Sub
Private Sub sortieren(Untergrenze As Long, Obergrenze As Long)
Dim index1 As Long, index2 As Long, Element As String, Zwischenspeicher As String
index1 = Untergrenze
index2 = Obergrenze
Zwischenspeicher = ListBox1.List(((Untergrenze + Obergrenze) / 2) \ 1)
Do
Do While ListBox1.List(index1) < Zwischenspeicher
index1 = index1 + 1
Loop
Do While Zwischenspeicher < ListBox1.List(index2)
index2 = index2 - 1
Loop
If index1 <= index2 Then
Element = ListBox1.List(index1)
ListBox1.List(index1) = ListBox1.List(index2)
ListBox1.List(index2) = Element
index1 = index1 + 1
index2 = index2 - 1
End If
Loop Until index1 > index2
If Untergrenze < index2 Then Call sortieren(Untergrenze, index2)
If index1 < Obergrenze Then Call sortieren(index1, Obergrenze)
End Sub


Code eingefügt mit: Excel Code Jeanie
Der Rechtsklick, wenn in einer Tabelle ausgeführt, bringt dann kein exceleigenes Kontextmenü, wenn du die Variable Cancel auf True setzt.
Gruß
Nepumuk

Anzeige
AW: Inhalt einer Listbox sortieren
22.07.2003 13:39:38
Frebert
Hallo Nepumuk,
vielen vielen Dank für die nette Hilfe!! Der Code funktioniert!!
Grüße
Frebert

Variable cancel auf true ???
22.07.2003 13:10:22
frebert
Hallo Nepumuk,
also das mit der Variable cancel auf true setzen habe ich nicht ganz verstanden. Meine Userform enthält 6 Buttons. Es lässt sich immer nur ein Button so setzen. Oder hast du etwas anderes gemeint? Die Worksheet hat diese Variable ja nicht.
Grüße
Frebert

AW: Variable cancel auf true ???
22.07.2003 13:13:56
Nepumuk
Hallo Frebert,
wo machst du den Rechtsklick und wie sieht der Code dazu aus?
Gruß
Nepumuk

AW: Variable cancel auf true ???
22.07.2003 13:18:41
frebert
Hi Nepumuk,
ich klicke in einem worksheet einfach die rechte Maustaste:


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
frm_aktualisieren.Show
End Sub

Wenn ich die UserForm dann wieder schließe z. B. über unload me, dann kommt das excel standard kontextmenü.
Frage beantwortet?
Grüße
Frebert

Anzeige
AW: Variable cancel auf true ???
22.07.2003 13:21:33
Nepumuk
Hallo Frebert,
so geht's:

Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
frm_aktualisieren.Show
Cancel = True
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
Super Danke Nepumuk, es Funktioniert!! :-)
22.07.2003 13:29:09
Frebert
Danke
Grüße
Frebert

Danke Nepumuk, werd ich gleich mal austesten :-)
22.07.2003 12:53:54
frebert
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige