3.5k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Mahlzeit zusammen!

Dank ein paar Code-Schnippsel, welche ich im www fand, habe ich beiliegende Musterdatei zusammengestellt.
www.file-upload.net/download-8388010/Listbox_Muster01.xls.htm

Leider klappt das Aktualisieren der Listbox nicht 100%ig.
Vielleicht hat jemand einen Tipp, wie ich dies beseitigen könnte.

Danke!

Tom

15 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

leider funktioniert dein Link nicht.

Gruß

M.O.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

meinst du das etwa so:

Private Sub CommandButton1_Click()
Dim Blattname As String

Blattname = ListBox1.Value
Sheets(Blattname).Delete
Call alle_Blätter
ListBox1.ListIndex = 0
UserForm1.Repaint
End Sub


Gruß

M.O.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Guten Morgen M.O.!

Danke, dass Du Dich meinem Problem angenommen hast.

Der Code ListBox1.ListIndex = 0 hat nicht all zu viel verändert, oder etwa doch?

www.file-upload.net/download-8391086/Listbox_Musterbild01.jpg.html

Noch immer wird nach dem Löschen die Listbox nicht aktualisiert, sodass die "Leerfelder" weiterhin angezeigt werden.

Ciao

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

da habe ich dich völlig falsch verstanden.

Am einfachsten erreichst du das somit:

Private Sub CommandButton1_Click()
Dim Blattname As String

Blattname = ListBox1.Value
Sheets(Blattname).Delete

Call alle_Blätter
UserForm1.Hide
UserForm1.show

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hi M.O.!

Danke für Deine Unterstützung (!), aber irgendwie klappt das nicht bei mir.
www.file-upload.net/download-8391247/Listbox_Muster02.xls.html

Ciao

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

da war ich wohl zu schnell :-(.

So funktioniert es aber:

Private Sub CommandButton1_Click()
Dim Blattname As String

Blattname = ListBox1.Value
Sheets(Blattname).Delete

Call alle_Blätter
Unload UserForm1
UserForm1.show

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Tom,
hab mal deine Makros in deiner Datei ein wenig geändert. Das Makro (Sub alle_Blätter ) wäre dann nicht mehr nötig.

Nur so ein Versuch.

Gruß
fedjo
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo zusammen!

@M.O.:
Ja, jetzt klappt es.
Vielleicht hast Du noch einen Tipp für mich, wie ich das Beenden der Listbox mit dem "X" verhindern kann.

@fedjo:
Sieht auch sehr vielversprechend aus.
Vorteil in Deiner Version, dass der Button "Löschen" nicht zum Laufzeitfehler "94" führt, wenn kein Blatt ausgewählt wurde und unbeabsichtigterweise der Button zum Löschen gedrückt wurde.
Nachtei: Auch das Blatt mit dem Button kann gelöscht werden bzw. benötige ich noch ein Kriterium.
Mit
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Hilfe" _
Or ws.Range("B2") = "Toll" Then
ListBox1.AddItem ws.Name
Else
End If
Next ws
komme ich leider nicht weiter.

Schönen Abend!

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

bei einer Internetsuche habe ich zum Deaktivieren des X das hier gefunden:

Link 1

Link 2

Gruß

M.O.
...