Guten Tag,
ich möchte in eine Excelmappe für jeden Tag (von Mo-Do) 5 Daten eingeben. Ich habe für jeweils 3 Monate ein Datenblatt. Eine Zeile stellt eine Kalenderwoche dar. Diese Blätter sollen ausgedruckt werden. Ich habe einen kleinen Dialog per VBA erstellt mit dem ich die 5 Daten abfrage und ein Datum auswähle. Jetzt müssen diese Daten entsprechend dem Datum zugeordnet werden. Ich überlege ob ich manuell für jedes Datum ein Namensfeld anlege. Aber wie spreche ich die 5 einzelnen Felder eines Namensfeldes an oder gibt es eine elegantere Methode?
ich möchte in eine Excelmappe für jeden Tag (von Mo-Do) 5
Daten eingeben. Ich habe für jeweils 3 Monate ein Datenblatt.
Eine Zeile stellt eine Kalenderwoche dar. Diese Blätter sollen
ausgedruckt werden. Ich habe einen kleinen Dialog per VBA
erstellt mit dem ich die 5 Daten abfrage und ein Datum
auswähle. Jetzt müssen diese Daten entsprechend dem Datum
zugeordnet werden. Ich überlege ob ich manuell für jedes Datum
ein Namensfeld anlege. Aber wie spreche ich die 5 einzelnen
Felder eines Namensfeldes an oder gibt es eine elegantere
Methode?
hallo Achim,
hilft das weiter?:
Sub tt()
Dim Zei, rng
For Zei = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range(Cells(Zei, 2), Cells(Zei, 6))
rng.Name = "N" & Cells(Zei, 1).Value
Next Zei
MsgBox Range("N" & Cells(3, 1)).Cells(1, 4).Value
End Sub
Hallo Reinhard
Danke für die schnelle Antwort.
Wenn ich das richtig verstehe, wird mit deinem Script den Ranges ein Name zugewiesen. Ich möchte aber den bereits benannten Ranges Daten zuweisen und brauche dafür eine Funktion um die einzelnen Zellen des Range anzusprechen.
Wenn ich das richtig verstehe, wird mit deinem Script den
Ranges ein Name zugewiesen. Ich möchte aber den bereits
benannten Ranges Daten zuweisen und brauche dafür eine
Funktion um die einzelnen Zellen des Range anzusprechen.
Tabellendarstellung erreicht mit dem Code in FAQ:2363
habe ich mit
**For Zei = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range(Cells(Zei, 2), Cells(Zei, 6))
rng.Name = "N" & Cells(Zei, 1).Value
Next Zei**
namen für die Zellen in A vergeben. Als Namen habe ich den Zellinhalt genommen, aber da z.B. 01.01.2009 ein verbotener name ist habe ich ein „N“ davorgestzt.
Mit
MsgBox Range(„N“ & Cells(3, 1)).Cells(1, 4).Value
greife ich auf den Datenbereich eines Namens zu.
„N“ & Cells(3, 1)) ergibt „N03.01.2009“ also entspricht dies: