Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabelle per Codename auswählen

Tabelle per Codename auswählen
07.10.2015 15:36:23
PeTeR
Hallo VBA-Freaks,
ich habe eine Datei "A.xlsx" und darin ein Tabellenblatt "Tabelle1" mit dem Codenamen "Auftrag". Nun öffne ich per Makro die Datei "A.xlsx" und möchte das Tabellenblatt "Auftrag" per Codename auswählen:
Workbooks.Open Filename:="...\A.xlsx" - funzt
Auftrag.Activate - FUNZT NICHT
Worksheets("Tabelle1").Activate - funzt, will ich aber nicht, weil zu gefährlich.
Wie macht man das denn?
Vielen Dank für euer Anregungen
PeTeR

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle per Codename auswählen
07.10.2015 16:19:06
Nepumuk
Hallo,
ich hab das so gelöst (arbeite auch ausschließlich mit dem Codenamen):
Option Explicit

Public Sub Test()
    Dim objWorkbook As Workbook, objWorksheet As Worksheet
    Set objWorkbook = Workbooks.Open(Filename:="...\A.xlsx") ' - funzt
    Set objWorksheet = GetSheetNameByCodeName(objWorkbook, "Auftrag")
    If Not objWorksheet Is Nothing Then
        objWorksheet.Activate
    Else
        Call MsgBox("Tabelle nicht gefunden.", vbCritical, "Panic !!!!!")
        Exit Sub
    End If
    
    'weiterer Code
    
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing
End Sub

Public Function GetSheetNameByCodeName( _
        ByRef probjWorkbook As Workbook, _
        ByVal pvstrCodeName As String) As Object

    
    Dim objSheet As Object
    
    For Each objSheet In probjWorkbook.Sheets
        
        If objSheet.CodeName = pvstrCodeName Then
            
            Set GetSheetNameByCodeName = objSheet
            Set objSheet = Nothing
            Exit For
            
        End If
    Next
End Function

Gruß
Nepumuk

Anzeige
If ActiveWorkbook.Worksheets(x).CodeName ...
07.10.2015 16:25:07
Matthias
Hallo
Dim x&
Workbooks.Open Filename:="C:\...\A.xlsx"
For x = 1 To Worksheets.Count
If ActiveWorkbook.Worksheets(x).CodeName = "Auftrag" Then ActiveWorkbook.Worksheets(x).Activate
Next
Gruß Matthias

Das fktioniert idR nur dann nicht, ...
07.10.2015 19:14:00
Luc:-?
…Peter,
wenn der CodeName nicht eindeutig ist, d.h., noch eine andere Mappe mit einem Blatt gleichen CodeNamens geöffnet ist oder ein weiteres Objekt dieses Namens (ggf als Global­Variable) existiert. Die CodeNames bezeichnen nämlich unitäre Objekte und sind nicht direkt vom jeweiligen Workbook abhängig. Man kann aber mit codename.Parent.Name deren Workbook feststellen.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
Du irrst Dich Luc ...
07.10.2015 19:44:56
Matthias
Hallo Luc
Ich hab das getestet.
Es gab eindeutig nur den CodeNamen in dem vom Code geöffneten Workbook
Es gibt keine Mappe mit gleichem CodeNamen!
Ich bekomme es auch nur so hin, in dem ich den Codenamen per Index abfrage
und wenn er stimmt per Index aktiviere.
Gruß Matthias

Ich habe es auch getestet (Xl12)! Wat nu? ;-)
07.10.2015 20:00:19
Luc:-?
Es hat nur unter den von mir beschriebenen Bedingungen nicht fktioniert, Matti.
Gruß, Luc :-?

Allerdings kann ich nichts zu 365 sagen! owT
07.10.2015 20:01:34
Luc:-?
:-?

Verwirrung
07.10.2015 20:07:04
Matthias
Hi
Ist ja auch egal.
Aber in meinem Bsp. konnte ich es wenigstens realisieren.
Dein Einspruch hat mich nur verwirrt!
Gruß Matthias

Anzeige
Das deine Variante auch fktioniert, war klar, ...
07.10.2015 23:06:11
Luc:-?
…Matti,
aber eigentlich sollte auch die direkte Anwendung möglich sein, denn dafür wurde das Objekt ja geschaffen. Viell hat MS bei Überarbeitung von VBA ja was verbockt… ;-)
Luc :-?

AW: Das deine Variante auch fktioniert, war klar, ...
08.10.2015 10:19:37
PeTeR
Hallo ihr 3,
erstmal ganz, ganz herzlichen Dank für euere professionellen Lösungen. SUPER!!
@Luc: Auch bei mir gibt es den Codenamen definitiv nur ein einziges Mal, aber der Zugriff klappt nicht. Was auch immer MS da verbockt hat :-(
Many Thanx, PeTeR

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige