Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1408to1412
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

Namen (Namens-Manager) in ListBox (UserForm) zeign

Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 13:59:33
Frank
Hallo Alle.
Ich verzweifle gerade an folgendem Code.
Möchte damit alle von mir in 'Tabell1' per 'Namens-Manager' festgelegten 'Namen' in der 'ListBox1' auflisten. 'ListBox1' soll mit 'UserForm_Initialize()' wie folgt gefüllt werden, deshalb Me. Das funktioniert soweit auch, aber ich bekomme immer nicht die erwarteten Einträge in der Listbox gelistet. In unten gezeigter Variante z. B. nur 'Tabelle1'. Und ich habe schon ca. 10 Varianten durch probiert. Bei einer anderen Variante gab es alle 'Namen' aber zusätzlich in der 'ListBox1' oben dran gestellt der Eintrag 'Tabelle1!_FilterDatabase', den ich im 'Namens-Manager' überhaupt nicht sehe.
Grundsätzlich scheitere ich m. E. daran, dass 'Names' wohl (?) nicht auf 'Worksheets' + in meinem Fall auf 'Tabelle1' bezogen werden kann?!
Erschwerend kommt hinzu, dass ich 'Tabelle1' als String in der globalen Variable 'AusgangsTabelle' Modul- + UserForm-übergreifend verwende.

Private Sub UserForm_Initialize()
Dim NamensBer As Name
ListBox1.RowSource = ""
For Each NamensBer In Sheets(AusgangsTabelle).Names
Me.ListBox1.AddItem Sheets(AusgangsTabelle).Name
Next
End Sub

Schon mal vorab meinen herzlichen Dank für sachdienliche Hinweise.
Gruß
Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 14:07:00
ransi
HAllo
Hilft dir dies weiter ?
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit



Private Sub UserForm_Initialize()
    Dim Die_Namen As Name
    With ListBox1
        For Each Die_Namen In Tabelle1.Names
            .AddItem Die_Namen.Name
        Next
        .ListIndex = 0
    End With
End Sub


ransi

Anzeige
AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 15:31:16
Frank
Hallo ransi.
Danke, aber Nein, es hilft nicht. Entspricht ja etwa meinem Code.
Ergebnis deiner Variante in der 'ListBox1' ist nur (!) 'Tabelle1!_FilterDatabase'. Wie bereits erwähnt ist dies aber im 'Namens-Manager' nicht zu sehen.
Frage: Hat Deine Varaiblenbezeichnung 'Die_Namen' eine besondere Bewandnis? Oder anders gefragt: Sie unterscheidet sich Programmablaufmäßig nicht von meiner gewählten Varaiblenbezeichnung 'NamensBer'?
Nachfolgend der mit Deiner With-Anweisung und von mir mit 'ThisWorkbook' veränderte Code, der aber immer noch 'Tabelle1!_FilterDatabase' zu viel in die ListBox1 schreibt.

With ListBox1
.RowSource = ""
For Each NamensBer In ThisWorkbook.Names
If NamensBer.RefersToRange.Parent Is Tabelle1 Then
.AddItem NamensBer.Name        ' ListBox1
End If
Next
.ListIndex = 0
End With
End Sub
Hallo Rudi.
Danke für Deine Hinweise, wenn auch ich die nicht wirklich verstehe. (Level: VBA bescheiden)
Mit Deiner Frage:

hast du die Namen denn auch auf Tabellenebene definiert?
Vermutlich eher auf Mappenebene.

sprichst einen meiner wunden Punkte zu VBA an!
Was bedeuten Deine Fragen?
Die Namen habe ich im Tabellenblatt 'Tabelle1' per Namens-Manager definiert. Und zwar nur schlichte Zellbezüge wie '=Tabelle1!$A$2:$A$199', '=Tabelle1!$B$2:$B$199', '=Tabelle1!$C$2:$C$199' usw. Ist das dann also auf Zitat:'Tabellenebene'?
Muss ich diese Namen auch noch im Makro-Code und wenn Ja wo definieren? Im Standardmodul 'Modul1'? oder in einem Code unter 'Tabelle1'? oder, oder?
Gruß
Frank

Anzeige
AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 15:33:39
Frank
Hallo Rudi.
Danke für Deine Hinweise. Siehe oben.
Gruß
Frank

AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 16:43:38
Rudi
Hallo,
deine Namen haben zwar Bezug zu Tabelle1, sind aber Namen des Workbooks. Das siehst du im Namensmanager in der Spalte 'Bereich'. Da steht entweder 'Arbeitsmappe' oder der Tabellenname.
_FilterDataBase: evtl. hilft dir
     With ListBox1
.RowSource = ""
For Each NamensBer In ThisWorkbook.Names
If NamensBer.RefersToRange.Parent Is Tabelle1 Then
If NamenBer.Name = NamensBer.NameLocal Then
.AddItem NamensBer.Name        ' ListBox1
End If
End If
Next
.ListIndex = 0
End With

weiter. Würde z.B. auch Druckbereich bzw. PrintArea betreffen.
Gruß
Rudi

Anzeige
AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
19.02.2015 14:42:14
Rudi
Hallo,
hast du die Namen denn auch auf Tabellenebene definiert?
Vermutlich eher auf Mappenebene.
Wenn sich alle Namen der Mappe auf Bereiche beziehen, kannst du das auswerten.
if Namensber.referstorange.parent is Tabelle1 then
listbox1.additem namensber.name
end if
Gruß
Rudi

AW: Namen (Namens-Manager) in ListBox (UserForm) zeign
20.02.2015 17:26:55
Frank
Hallo Rudi.
Danke, Dein Beitrag

'Wenn sich alle Namen der Mappe auf Bereiche beziehen, kannst du das auswerten.
if Namensber.referstorange.parent is Tabelle1 then
listbox1.additem namensber.name
end if

hat mir sehr geholfen!
Zwar bin ich jetzt ein Stück weiter aber sogleich poppt das nächste Problem auf.
Habs in neuem Beitrag eingestellt.
Gruß
Frank
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige