Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt auswählen mit msgbox

Tabellenblatt auswählen mit msgbox
15.02.2009 02:03:00
Muthig
Hallo,
im folgenden Makro wird durch Eingabe in eine msgbox ein Tabellenblatt ausgewählt. In der Datei sind 53 Tabellenblätter, ein Tabellenblatt heißt "Anmeldung", die anderen sind mit "1", "2"."3" usw. bis "52" benannt. Bei den zweistelligen Tabellenblättern funktioniert es, aber bei den einstelligen nicht. Kann mir jemand helfen ?

Sub TabSelect()
Dim wks As Worksheet
Dim strWks As String
strWks = InputBox("Bitte Kalenderwoche (Tabellenblatt) angeben:")
If strWks = "" Then Exit Sub
For Each wks In Worksheets
If InStr(UCase(wks.Name), UCase(strWks)) > 0 Then
wks.Select
Exit Sub
End If
Next wks
Beep
MsgBox "Kein Blatt gefunden!"
End Sub


Wo liegt der Fehler ? Bin nur VBA- Anfänger. Vielen Dank schon mal im Voraus.
Freundliche Grüße
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tabellenblatt über INPUTBOX auswählen
15.02.2009 03:16:00
NoNet
Hallo Thomas,
Du meinst wohl INPUTBOX und nicht MSGBOX !
Der Grund, dass es bei 2-stelligen KWs nicht funktioniert, liegt an der von dir verwendeten Logik :
Du durchsuchst alle Tabellenblätter und aktivierst das erste, das die gesuchte Zahl enthält.
Beispiel : Die Zahl "17" ist NUR in Blatt 17 enthalten, das funktioniert also.
Die Zahl "1" ist jedoch in 51, 41, 31, 21, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 1 enthalten - je nach Reihenfolge wird also das zuerst gefundene Blatt aktiviert - das gleiche gilt für alle anderen einstelligen Nummern !
Ändere den Code, folgendermassen :
VBA-Code:
Sub TabSelect()
    Dim wks As Worksheet
    Dim strWks As String
    strWks = InputBox("Bitte Kalenderwoche (Tabellenblatt) angeben:")
    If strWks <> "" Then
        On Error Resume Next
        Err.Clear
        Set wks = Worksheets(strWks)
        If Err.Number > 0 Then
            Beep
            MsgBox "Blatt nicht gefunden!"
        Else
            wks.Select
            Set wks = Nothing
        End If
    End If
End Sub
Gruß, NoNet
AW: Tabellenblatt über INPUTBOX auswählen
Thomas

Hallo Nonet und Mathias,
vielen Dank für Eure Hilfe und den Erklärungen dazu. Die Variante von Nonet funktioniert hervorragend. Auch Die Erläuterungen dazu verstehe ich sogar. Warum mein Code nicht funktioniert, könnte daran liegen, dass ich die 52 Tabellenblätter nicht von Hand angelegt habe, sondern mir ein passendes Makro dazu im Internet gesucht habe. Nochmals vielen Dank und eine schöne Woche.
Thomas
alles getestet ... und i.O
Matthias

Hallo Thomas
Ich kann Deinen Fehler nicht nachvollziehen.
evtl. sind bei Dir Leerzeichen in den Tabs 1-9 vorhanden.
Also evtl. heißen Deine Blätter nicht
"1" sondern
" 1" oder
"1 " beachte das/die Leerzeichen vor/nach 1
https://www.herber.de/bbs/user/59475.xls
Bei mir klappt alles einwandfrei.
getestet mit XL2000 und XL2007.
Gruß Matthias
Anzeige
AW: Tabellenblatt über INPUTBOX auswählen
15.02.2009 23:03:00
Thomas
Hallo Nonet und Mathias,
vielen Dank für Eure Hilfe und den Erklärungen dazu. Die Variante von Nonet funktioniert hervorragend. Auch Die Erläuterungen dazu verstehe ich sogar. Warum mein Code nicht funktioniert, könnte daran liegen, dass ich die 52 Tabellenblätter nicht von Hand angelegt habe, sondern mir ein passendes Makro dazu im Internet gesucht habe. Nochmals vielen Dank und eine schöne Woche.
Thomas
alles getestet ... und i.O
15.02.2009 05:26:00
Matthias
Hallo Thomas
Ich kann Deinen Fehler nicht nachvollziehen.
evtl. sind bei Dir Leerzeichen in den Tabs 1-9 vorhanden.
Also evtl. heißen Deine Blätter nicht
"1" sondern
" 1" oder
"1 " beachte das/die Leerzeichen vor/nach 1
https://www.herber.de/bbs/user/59475.xls
Bei mir klappt alles einwandfrei.
getestet mit XL2000 und XL2007.
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen