alle Tabellenblätter durchsuchen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm MsgBox
Bild

Betrifft: alle Tabellenblätter durchsuchen
von: Marco
Geschrieben am: 25.08.2015 09:05:59

Moin Moin,
ich bin echt am verzweifeln.
Folgendes Problem:
Ich habe eine Arbeitsmappe mit 20 Tabellenblättern für je einen Lieferanten. Eine Userform zwingt den Nutzer bestimmte Angaben zu machen, die dann in das Tabellenblatt des Lieferanten übernommen werden sollen (das ist nicht das Problem). Unter anderem muss ein Lieferant über eine Combobox ausgewählt werden.
Der Eintrag der Combobox ist jedoch nicht gleich dem Tabellenblattnamen (diese heißen Lieferant 1, Lieferant 2 usw.
Die Lieferantenbezeichnung ist aber in Zelle A1 des entsprechenden Tabellenblattes angegeben. D.h. alle Tabellenblätter Zelle "A1" = Liste in der Combobox
Nun das eigentliche Problem:
Nach Abschluss aller Angaben in der Userform soll bei Klick auf OK das richtige Tabellenblatt für den ausgewählten Lieferanten aktiviert und Zelle A15 ausgewählt werden.
Ich habe es mit mehreren Schleifen versucht (do while, do until, for next, for each). Es funktioniert aber nicht. Schleifen und ich vertragen uns scheinbar nicht so gut.
hier das was ich habe:

Private Sub cmd_OK_Click()
Dim Listenauswahl As String, Überschrift As String, ws As Worksheet
Dim i As String, wsCount As String
 
Listenauswahl = cmb_Lieferant.Text
Überschrift = ActiveSheet.Range("A1").Value
 
Sheets("Startseite").Activate
 
If Range("C8").Value = "" Then
    MsgBox "kein Lieferant vorhanden"
    Exit Sub
Else
'    ActiveSheet.Next.Select
 
For i = 1 To wsCount
If ActiveSheet.Range("A1") = Listenauswahl Then
    MsgBox "Richtigen Lieferanten gefunden"
    ActiveSheet.Next.Select
Else
    ActiveSheet.Next.Select
End If
Next i
 
'oder: 
 
For Each ws In ThisWorkbook.Worksheets
MsgBox ActiveSheet.Name
If Listenauswahl = Überschrift Then
    MsgBox "Richtigen Lieferanten gefunden"
    ActiveSheet.Range("C1").Select
End If
    ActiveSheet.Next.Select
Next
End If
 
'oder: 
Do Until Listenauswahl = Überschrift
    ActiveSheet.Next.Select
    Range("A1").Select
    Loop
'ActiveSheet.Next.Select
 
End If
 
End Sub
Vielleich nur ein kleiner Fehler. Aber ich komme einfach nicht weiter.

Bild

Betrifft: AW: alle Tabellenblätter durchsuchen
von: Matthias
Geschrieben am: 25.08.2015 09:15:18
Hallo Marco,
versuch mal das hier:

Dim ws As Worksheet
For Each ws in ThisWorkbook.Worksheets
   If ws.Range("A15")=cmb_Lieferant.Text Then
      ws.activate
      Exit For
   EndIf
Next ws
lg Matthias

Bild

Betrifft: AW: alle Tabellenblätter durchsuchen
von: Marco
Geschrieben am: 25.08.2015 09:52:35
Genial. Funktioniert einwandfrei. Danke für eure Hilfe.
Euch allen einen schönen Tag wünscht
Marco

Bild

Betrifft: AW: alle Tabellenblätter durchsuchen
von: Rudi Maintaire
Geschrieben am: 25.08.2015 09:18:03
Hallo,
Schema:

Sub aa()
Dim ws As Worksheet
Listenauswahl = cmb_Lieferant.Text
For Each ws In Worksheets
  If ws.Range("A1") = Listenauswahl Then
    Application.Goto ws.Range("A15")
    Exit For
  End If
Next ws
End Sub

Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "alle Tabellenblätter durchsuchen"