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

Namen definieren für bestimmten Bereich

Namen definieren für bestimmten Bereich
03.08.2008 19:58:00
Andre
Hallo zusammen,
ich habe eine Tabelle in der ich 2 Spalten mit Namen definiert habe (Vorgaenge, Identification). Zwischen den beiden Spalten sind Zeilen (einzelne Vorgänge, siehe Beispieltabelle). Jetzt möchte ich jedem Vorgang einen Namen geben ... unzwar wenn möglich über eine Schleife in VBA ... die echte Tabelle enthält etwa 400 Vorgänge. Gibt es da eine Möglichkeit die Vorgänge zu bennenen ohne immer alles eingeben zu müssen? Das wäre echt genial! Sinn und Zweck der ganzen Sache ist, dass ich aus jedem Vorgang eine Information brauche, die ich später mit einer Formel heraushole.
https://www.herber.de/bbs/user/54311.xls
Viele Grüße
Andre

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

Betreff
Datum
Anwender
Anzeige
AW: Namen definieren für bestimmten Bereich
03.08.2008 20:18:34
Daniel
Hi
ich halte es nicht für besonders sinnvoll, für jeden Vorgang einen Namen anzulegen, da gibt es sicherlich bessere Methoden, um an die Informationen zu einem Vorgang ranzukommen (z.B. mit dem SVERWEIS oder der Kombination aus INDEX und VERGLEICH.
aber falls du unbedingt ein Makro dazu haben willst:

Public Sub Namen_Für_Vorgänge()
Dim Zelle As Range
For Each Zelle In Range("A2:A" & Range("A1").End(xlDown).Row)
ActiveWorkbook.Names.Add Name:=Zelle.Offset(, 8).Value, RefersTo:=Zelle.Resize(, 8)
Next
End Sub


falls die Grösse der Namensbereiche noch nicht richtig passt, musst du es selber noch einwenig anpassen.
Gruß, Daniel

Anzeige
AW: Namen definieren für bestimmten Bereich
03.08.2008 20:24:04
Ramses
Hallo
Wenn die Vorgänge eindeutig sind, warum machst du das nicht mit SVERWEIS()
Die Vorgänge in deinem Beispiel entsprechen nicht der Konvention zur Namensvergebung
*********************************
Richtlinien für Namen
Welche Zeichen können verwendet werden?
Das erste Zeichen eines Namens muss ein Buchstabe oder ein Unterstrich sein. Für alle weiteren Zeichen des Namens können Buchstaben, Ziffern, Punkte oder Unterstriche verwendet werden.
Können Zellbezüge als Namen verwendet werden?
Namen dürfen nicht identisch mit einem Zellbezug sein, beispielsweise Z$100 oder R1S1.
Kann ich mehr als ein Wort verwenden?
Ja, jedoch dürfen Namen keine Leerzeichen enthalten. Unterstriche und Punkte können zur Trennung von Wörtern verwendet werden - z. B. Umsatz_Steuer oder Erstes.Quartal.
Wie viele Zeichen können verwendet werden?
Ein Name darf maximal 255 Zeichen umfassen.
Anmerkung
Wenn ein für einen Bereich definierter Name mehr als 253 Zeichen enthält, kann er nicht im Feld Name ausgewählt werden.
Wird bei Namen Groß- und Kleinschreibung unterschieden? Namen können Buchstaben in Groß- und Kleinschreibung enthalten. Microsoft Excel unterscheidet bei Namen nicht zwischen Groß- und Kleinbuchstaben. Wenn Sie beispielsweise den Namen Umsatz erstellt haben und dann in derselben Arbeitsmappe den Namen UMSATZ erstellen, wird der erste Name durch den zweiten ersetzt.
*******************************************
Wie lauten deine Vorgangsnamen sonst, oder ist dies nur ein Beispiel ?
Gruss Rainer

Anzeige
AW: Namen definieren für bestimmten Bereich
04.08.2008 16:46:00
Andre
Hi,
vielen Dank für eure Antworten. Das es erstmals kein Sinn macht, versteh ich. Ich versuche gerade folgendes Problem zu lösen: https://www.herber.de/forum/archiv/996to1000/t997694.htm#997694
Eigentlich war es meine Vision (:-)) das jeder Vorgang einen Bereich darstellt und ich dann in jedem Vorgangsbereich die erste Information von rechts aus auslese. Also die erste Zelle von rechts aus in jedem Bereich, die mit Informationen gefüllt ist.
@ Daniel:
danke für den Code. Das hilft mir sehr weiter. Ich hab ihn jetzt bissle umgeschrieben für meine Benutzung:


Public Sub Namen_Fuer_Vorgaenge()
Dim Zelle As Range
Dim iName As String
For Each Zelle In Range("A2:A" & Range("A1").End(xlDown).Row)
ActiveWorkbook.Names.Add Name:="Vorgang" & Zelle.Value, RefersTo:=Zelle.Resize(, 8)
Next
End Sub


Doch nun hab ich noch eine Frage. Die Spalte "I" hat den Namen "Identification" und ist eben nicht immer Spalte "I" sondern auch mal weiter hinten oder vorne. Gibt es nun die Möglichkeit bei RefersTo:=Zelle.Resize(, 8) festzulegen, dass ich den Bereich nicht um 8 Spalten ausweiten will, sondern eben bis zum Bereich "Identification" minus genau dieser Spalte? Also das die Spalte vor "Identification" noch mit in jedem Vorgangsbereich drin ist?
@ Ramses
Ist nur ne Beispieltabelle - die Vorgänge heißen total anders und entsprechen der Namenskonvention.
Sorry für die teilweise sclechten Erklärungen, ich bin darin ungeübt. Und vielen Dank für eure Hilfe!
Gruß Andre

Anzeige
AW: Namen definieren für bestimmten Bereich
04.08.2008 18:52:00
Daniel
Hi
du kannst mit
=Rows(1).find(what:="Identification", lookin:=xlvalues, lookat:xlwhole).Column
die Spalten-Nr feststellen, in der der "Identification" steht und diesen Wert in der Resize-funktion entsprechend verwenden.
Gruß, Daniel

AW: Namen definieren für bestimmten Bereich
04.08.2008 21:09:00
Andre
Hi Daniel,
dankeschön für deine Hilfe! Das funktioniert super! Welch' ein schönes Gefühl *grins
Gruß
Andre

AW: Namen definieren für bestimmten Bereich
04.08.2008 21:26:13
Ramses
Hallo
Alternativ ohne "Find"
Zelle.Resize(, Range("Identification").Column -1)
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige