Forums Neueste Beiträge
 

excel2003: Array-Probleme

06/10/2007 - 00:06 von Erich Jung | Report spam
Hallo zu spàter Stunde,

in der Hoffnug für mein Problem hier Hilfe zu bekommen möchte ich mal
schildern was ich nicht hin bekomme.

Folgendes Makro definiert mir Zellnamen in einer anderen Tabelle die ich aus
einer Listbox in Worksheets("Konfiguration Namen") auswàhle.

Sub ZellenNamen_Definieren()
Dim arrZellNamen_Pos As Variant
Dim arrData_Soll As Variant
Dim ListBox1
Dim ListNr

'Aktiviert die Zieltabelle
ListNr = ActiveSheet.ListBox1.ListIndex
Worksheets(ListNr + 1).Activate

'Arraydeklaration für Zielzellen und deren Zellnamen
arrZellNamen_Pos = Array("F1", "G1", "G2", "G4")
arrData_Soll = Array("Benennung", "Erstell_Datum", "Änderungsgrund",
"TTNR")

For i = 0 To UBound(arrZellNamen_Pos)
Range(arrZellNamen_Pos(i)).Name = arrData_Soll(i)
Next
Worksheets("Konfiguration Namen").Activate
End Sub

Der Nachteil ist nun wenn ich weitere Zellnamen vergeben will immer das
Makro editieren muss, was mir unflexibel erscheint.
Meine Idee ist nun in dem Tabellenblatt in der sich auch die ListBox
befindet, in -> Worksheets("Konfiguration Namen") einfach
die Position im Bereich A1:A4 -> "F1", "G1", "G2", "G4" und die Namen im
Bereich B1:B4 die Werte "Benennung", "Datum", "Änderungsgrund",
"TTNR"anzugeben und die dann per Makro in ein array einlesen um dann das/die
arrays wieder wie oben beschrieben
verarbeiten zu können.

Ich hoffe ich habe mich nicht zu kompliziert ausgedrückt und jemand kann mir
helfen.

Grüsse und eine Gute Nacht
Erich
 

Lesen sie die antworten

#1 {Boris}
06/10/2007 - 01:02 | Warnen spam
Hi Erich,

Folgendes Makro definiert mir Zellnamen in einer anderen Tabelle die ich aus
einer Listbox in Worksheets("Konfiguration Namen") auswàhle.

Sub ZellenNamen_Definieren()
Dim arrZellNamen_Pos As Variant
Dim arrData_Soll As Variant
Dim ListBox1
Dim ListNr

'Aktiviert die Zieltabelle
ListNr = ActiveSheet.ListBox1.ListIndex
Worksheets(ListNr + 1).Activate

'Arraydeklaration für Zielzellen und deren Zellnamen
arrZellNamen_Pos = Array("F1", "G1", "G2", "G4")
arrData_Soll = Array("Benennung", "Erstell_Datum", "Änderungsgrund",
"TTNR")

For i = 0 To UBound(arrZellNamen_Pos)
Range(arrZellNamen_Pos(i)).Name = arrData_Soll(i)
Next
Worksheets("Konfiguration Namen").Activate
End Sub

Der Nachteil ist nun wenn ich weitere Zellnamen vergeben will immer das
Makro editieren muss, was mir unflexibel erscheint.
Meine Idee ist nun in dem Tabellenblatt in der sich auch die ListBox
befindet, in -> Worksheets("Konfiguration Namen") einfach
die Position im Bereich A1:A4 -> "F1", "G1", "G2", "G4" und die Namen im
Bereich B1:B4 die Werte "Benennung", "Datum", "Änderungsgrund",
"TTNR"anzugeben und die dann per Makro in ein array einlesen um dann das/die
arrays wieder wie oben beschrieben
verarbeiten zu können.



Definiere einen dynamischen Namen für die Zellbezüge. Stehen diese in
Spalte A ab A1, dann z.B. Name: Zellen - mit Bezug auf:

=INDIREKT("A1:A"&ANZAHL2('Konfiguration Namen'!$A:$A))

Wenn Du jetzt in Spalte B die Namen hinterlegst, dann kannst Du diese
per Makro wie folgt zuweisen (jetzt noch ohne Fehlerbehandlung
aufgrund ungültiger Namen respektive Zellbezüge):

Option Explicit

Sub namen_vergeben()
Dim C As Range
For Each C In Range("Zellen")
Range(C).Name = C.Offset(0, 1)
Next C
End Sub

Grüße Boris

Ähnliche fragen