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 fedjo Experte (2.2k Punkte)
Hallo Tom,
eine If Abfrage sollte das Problem lösen.

Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Dim Blattname As String
Blattname = ListBox1.Value
If Blattname = "Hilfe" Then
Application.DisplayAlerts = True
Exit Sub
Else
Sheets(Blattname).Delete
ListBox1.Clear
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ListBox1.AddItem ws.Name
Next ws
Application.DisplayAlerts = True
End If
End Sub

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

@M.O.:
Vielen, vielen Dank für die Links!

@fedjo:
Blätter, auch wenn Sie nicht "Hilfe" heißen, sollen zusätzlich noch auf ein "Keywort" geprüft werden.
Irgendwie muss dies aus meiner Sicht nach
For Each ws In ThisWorkbook.Worksheets
stattfinden, aber es funktioniert so nicht, wie ich es mir vorstelle:

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Hilfe" _
Or ws.Range("B2") = "Toll" Then
Else
ListBox1.AddItem ws.Name
End If
Next ws

Hast Du vielleicht noch einen Lösungsansatz für mich?

Erholsames Wochenende!

Tom
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hi!

So müsste es passen: ;-)
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Range("B2") <> "Toll" Then
Else
ListBox1.AddItem ws.Name
End If
Next ws

Ciao

Tom
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Tom,
es gibt bestimmt auch noch andere Lösungen, aber es funktioniert.
Du kannst die Tabelle auch noch anzeigen vor dem löschen und die Frage zulassen, ob die Tabelle gelöscht werden soll.
Wenn die UserForm ShowModal=false gesetzt ist kann gleichzeitig in derTabelle und UserForm gearbeitet werden.

Gruß
fedjo

Private Sub CommandButton1_Click()
Application.DisplayAlerts = False 'Frage ob Tabelle gelöscht
Dim Blattname As String
Blattname = ListBox1.Value
If Blattname = "Hilfe" Then Exit Sub
Worksheets(ListBox1.Text).Select 'Tabelle wird eingeblendet zum löschen
If Range("B2") = "Toll" Then
Sheets("Hilfe").Select
Exit Sub
Else
Sheets(Blattname).Delete
ListBox1.Clear
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ListBox1.AddItem ws.Name
Next ws
Application.DisplayAlerts = True
End If
Sheets("Hilfe").Select
End Sub
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo fedjo!

Danke für Deine Tipps!

Wenn die UserForm ShowModal=false gesetzt ist kann gleichzeitig in derTabelle und UserForm gearbeitet werden.


Da kann ich Dir leider nicht folgen.
Ich habe zwar dies in meiner Tabelle eingestellt und Deinen neuen Code ausprobiert, aber keine Veränderung feststellen könne.

Schönen Sonntag!

Tom
...