Worksheet mit Variabler aufrufen

Bild

Betrifft: Worksheet mit Variabler aufrufen
von: Michael Rapp
Geschrieben am: 03.10.2003 23:15:21

Hallo Excel Freunde,
habe immer wieder Schwierigkeiten, variabel verschiedene Blätter auszuwählen.

ActiveWorkbook.Worksheets(i).Select
selektiert ein Blatt nach der Erstellungsreihenfolge, jedoch wenn ein Blatt gelöscht wurde, nicht mehr nach der im VBA Editor gezeigten Bezeichnung.

strname = "Blattname"
Sheets(strname).Select
selektiert nach dem Namen

Was ich brauche ist eine Möglichkeit mit einer Zahl ein Blatt aufzurufen. Dabei soll sie Zahl, den im VBA Editor gezeigten unveränderlichen Nummern entsprechen. Also statt:

sheet16.select
mit einer Variable arbeiten.

Danke für Eure Hilfe

Michael Rapp

Bild


Betrifft: AW: Worksheet mit Variabler aufrufen
von: PeterW
Geschrieben am: 03.10.2003 23:53:20

Hallo Michael,

dass in VBA in der Regel auf Select verzichtet werden kann hast du bestimmt schon gelesen. Der einzig sichere Weg ein Arbeitsblatt anzusprechen ist über seinen Namen. Beschreib mal dein konkretes Problem, dann lässt sich vielleicht eine Lösung finden.

Gruß
Peter


Bild


Betrifft: Hinweis Worksheets(i), Problem offen?
von: Jörg Gradert
Geschrieben am: 04.10.2003 00:09:45

Hallo Michael,
ActiveWorkbook.Worksheets(i).Select
selektiert ein Blatt nach der Erstellungsreihenfolge?

Nein:
ActiveWorkbook.Worksheets(i).Select
selektiert ein Blatt anhand der Reihenfolge der Anordnung der Blätter in der Arbeitsmappe.
Probier mal mein Testmakro, verändere dann die Reihenfolge der Blätter und lasse das Makro erneut laufen. Du wirst feststellen, dass die Blätter immer von vorne nach hinten durchnummeriert werden.


Sub test()
Dim i As Integer
For i = 1 To 3
ActiveWorkbook.Worksheets(i).Cells(1, 1) = i
Next i
End Sub


Hilft dir dieser Hinweis bei der korrekten Indexerstellung?

Ob deine gewünschte Lösung machbar ist, weiss ich nicht, ich habe es nicht hinbekommen.

Gruss Jörg


Bild


Betrifft: AW: Worksheet mit Variabler aufrufen
von: GerdW
Geschrieben am: 04.10.2003 00:17:33

"Dabei soll sie Zahl, den im VBA Editor gezeigten
unveränderlichen Nummern entsprechen"

Was soll das deiner Meinung nach für eine Nummer sein,
der Codename?

Gerd


Bild


Betrifft: AW: Worksheet mit Variabler aufrufen
von: Michael Rapp
Geschrieben am: 04.10.2003 02:17:55

Hallo ihr Nachteulen,

vielen Dank für die schnelle Reaktion.
Peter, arbeite wenn es geht ohne select. War nur zur Illustration der Blattbenennung.

Jörg, du hast recht. Die Anordnung der Blätter spielt bei Worksheets(i) eine Rolle.

Gerd, ich meine den Codename. Bei Worksheets(i) verändert sich die Zahl, wenn die Position des Blattesgeändert wird. Der Codename jedoch nicht. Deshalb ist es sicherer, ein Blatt darüber anzusprechen.

Meine Frage ist im Zusammenhang mit der Suche nach einem benannten Objekt. Ich lese aus der Tabelle 1 Spalte A die Worksheet Nummern der zu untersuchenden Blätter und überprüfe das Vorhandensein des gesuchten Objektes. Bei Erfolg wird in die Spalte B eine "1" geschrieben. Mein Problem besteht darin, dass wenn die Reiehenfolge der Blätter geändert wird, dann funktioniert das Makro nicht mehr. Deshalb wäre mir das Ansprechen mit dem Codenamen lieber.

Danke für Eure Hilfe
Michael

Der bisherige Code lautet:



Sub FindShape()
    Dim intI As Integer    'Zähler für Blätter
    Dim intShape As Integer  'Zähler für Objekte
    
   'Schleife durch alle Blätter, die Grafiken empfangen können
    For intI = 1 To 10
        'Schleife durch alle Shapes des gewählten Blattes vom letzten zum ersten
        For intShape = Worksheets(Sheet1.Range("A" & intI)).Shapes.Count To 1 Step -1 
            'Suche nach dem benannten Objekt
            If left(Worksheets(Sheet1.Range("A" & intI)).Shapes(intShape).name, 13) = "FS_Plancenter" Then
                'Schreibe bei Erfolg in die Tabelle1
                Sheet1.Range("B" & intI).Value = 1
                Exit For
            End If
        Next
    Next
End Sub



 Bild

Beiträge aus den Excel-Beispielen zum Thema " Worksheet mit Variabler aufrufen"