Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox

Forumthread: Listbox

Listbox
22.10.2007 14:17:02
Ludwig
Hallo Experten
Mit
Dim nme As Name
Dim arr()
Dim iRow As Integer
ReDim arr(0 To 1, 0)
For Each nme In ActiveWorkbook.Names
ReDim Preserve arr(0 To 1, iRow)
arr(0, iRow) = nme.Name
arr(1, iRow) = Range(nme.Name).Value
iRow = iRow + 1
Next nme
LB_Namen.Column = arr
möchte ich eine Listbox mit den Variablennamen und den gespeicherten Werten füllen.
Leider bekomme ich einen Fehle für den Wert "Range(nme.Name).Value ".
Name kann eine Zahl, Text, Range enthalten, was halt so üblich ist.
Wie bekomme ich den Wert von Name in die Listbox?
Vielen Dank für eine Antwort in voraus.
Gruß Ludwig

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox
22.10.2007 22:19:45
Josef
Hallo Ludwig,
das würde so nicht funktionieren.
'Entweder so
'###
Dim nme As Name

With LB_Namen
    
    For Each nme In ActiveWorkbook.Names
        .AddItem nme.Name
        .List(.ListCount - 1, 1) = nme.Value
    Next nme
    
End With
'###
'oder so
'###
Dim nme As Name

Redim arr(0 To ActiveWorkbook.Names.Count - 1, 1)

For Each nme In ActiveWorkbook.Names
    arr(nme.Index - 1, 0) = nme.Name
    arr(nme.Index - 1, 1) = nme.Value
Next nme

LB_Namen.List = arr
'###

Gruß Sepp

Anzeige
AW: Listbox
23.10.2007 08:05:53
Ludwig
Hallo Sepp
Danke für die Antwort!
Leider bekomme ich mit Deinem Code das gleiche Ergebnis wie mit meinem:
arr(nme.Index - 1, 0) = nme.Name liefert schön den ZellNamen z.B. "Auftragsnummer"
arr(nme.Index - 1, 1) = nme.Value liefert z.B. "Formaufbau!$E$3", also den Zellbezug!
In der Zelle "Formaufbau!$E$3" steht jedoch " 06/2030/1/01 C160"
Wie komme ich an den Zellinhalt?
(Der nme.Value kann eine Zahl, ein Text oder auch ein array sein!)
Gruß Ludwig

Anzeige
AW: Listbox
23.10.2007 21:32:27
Josef
Hallo Ludwig,
probier mal.
Private Sub CommandButton1_Click()
Dim mne As Name
Dim strValue As String
Dim i As Integer, l As Long



With ListBox1
    .ColumnCount = 2
    .Clear
    
    For Each mne In ThisWorkbook.Names
        strValue = ""
        If mne.RefersToRange.Count = 1 Then
            strValue = mne.RefersToRange.Formula
        Else
            For l = 1 To mne.RefersToRange.Rows.Count
                For i = 1 To mne.RefersToRange.Columns.Count
                    strValue = strValue & mne.RefersToRange.Formula(l, i) & "."
                Next
                strValue = Left(strValue, Len(strValue) - 1)
                strValue = strValue & ";"
            Next
            strValue = "{" & Left(strValue, Len(strValue) - 1) & "}"
        End If
        .AddItem mne.Name
        .List(.ListCount - 1, 1) = strValue
    Next
    
End With

End Sub

Gruß Sepp

Anzeige
AW: Listbox
24.10.2007 08:21:36
Ludwig
Hallo Sepp
Du hast dir ja reichlich Mühe gemacht das Problem zu lösen.
Leider läuft die Stringbearbeitung nicht ohne Fehler durch und steigt irgendwann in der Schleife bei
".List(.ListCount - 1, 1) = strValue" aus.
Ich habe mir zwischendurch überlegt die Variablen in ein Tabellenblatt zu schreiben und dann von dort in die ListBox einzulesen. Habe allerdings den Code dafür noch nicht geschrieben.
Vielen Dan für Deine Unterstützung!
Ludwig

Anzeige
AW: Listbox
24.10.2007 22:40:29
Josef
Hallo Ludwig,
ich weis ja nicht was du erreichen willst, aber vielleicht ist das was für dich.
http://www.jkp-ads.com/OfficeMarketPlaceNM-EN.asp
Gruß Sepp

Anzeige
AW: Listbox
26.10.2007 08:14:00
Ludwig
Danke für den Hinweis!
Gruß Ludwig
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige