Forums Neueste Beiträge
 

Names.add mit array-Daten; Namen dann in Auswahlfeld benutzen

09/09/2015 - 13:10 von Ewald | Report spam
Hallo NG,

mit einem Makro füge ich einen Namen ein, dessen Daten aus einer Tabelle stammen.
der Code:

Option Explicit
Public I As Long
Public Tab_Namen() As Variant
'--
Sub Namen_erstellen()
ReDim Tab_Namen(2 To 4)
For I = 2 To 4
Tab_Namen(I) = Cells(I, 1) ' Apfel, Banane, Birne
Next I
ActiveWorkbook.Names.Add Name:=Cells(1, 1).Value, RefersTo:=Tab_Namen
End Sub 'Obst

das funktioniert auch; im Namens-Manager wird der Name Obst mit Apfel, Banane, Birne angezeigt.
Möchte ich aus einer Zelle ein Auswahlfeld machen (Datenüberprüfung - Einstellungen, dann Zulassen:Liste .. als Quelle =Obst angebe und mit OK bestàtige, erscheint die Meldung: Die Quelle untersucht gerade einen möglichen Fehler. Möchten Sie den Vorgang fortsetzen? sprich: das funktioniert nicht.

Wer weiß was ich falsch mache?

Danke für eure Mühe.

Gruß
Ewald
 

Lesen sie die antworten

#1 Claus Busch
09/09/2015 - 13:25 | Warnen spam
Hallo Ewald,

Am Wed, 9 Sep 2015 04:10:51 -0700 (PDT) schrieb Ewald:

mit einem Makro füge ich einen Namen ein, dessen Daten aus einer Tabelle stammen.
der Code:



ich würde entweder dem Namen einen Range zuweisen anstatt einem Array
oder die Datenüberprüfung per VBA machen und die einzelnen Werte als
String dort eingeben.
Also entweder:

Sub Namen_erstellen()
ActiveWorkbook.Names.Add Name:=Range("A1"), _
RefersTo:=Range("A2:A4")
End Sub

Oder:

Sub Liste()
Dim myStr As String
Dim i As Long

For i = 2 To 4
myStr = myStr & "," & Cells(i, 1)
Next
myStr = Mid(myStr, 2)

With Range("F1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:_
xlBetween, Formula1:=myStr
End With
End Sub


Mit freundlichen Grüßen
Claus
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional

Ähnliche fragen