Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1704to1708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Namensmanager

VBA Namensmanager
01.08.2019 08:20:49
Jens
Hallo,
ich würde gerne per VBA Listen im Namensmanager anlegen.
Weis aber nicht wie.
In der Datei ist bereits eine Beispielliste händisch erstellt worden.
https://www.herber.de/bbs/user/131201.xlsm
HAt jemand hierzu eine Idee? Weil ich habe viele Blätter die so aufgebaut sind und das alles händisch machen :(

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Namensmanager
01.08.2019 10:25:27
{Boris}
Hi,
das geht auch "zu Fuß" recht flott. Voraussetzung: Die Namen stehen direkt links neben den Daten (also ohne die Zelle "zwischen der roten und gelben Zelle".
Kannst ja einfach eine Spalte zwischen C und D einfügen (dieser später wieder ausblenden), dort einen Bezug zu Deinem Namen herstellen (D25: =B25) und Du kannst die Namen dann blockweise vergeben, indem Du exemplarisch den Bereich D25:X29 markierst und über "Formeln - Definierte Namen - Über Auswahl erstellen - Namen erstellen aus Werte in: linker Spalte" dann diese 5 Namen "en bloc" erstellst. Ist vielleicht ne Arbeit von 10 Minuten.
VG, Boris
Anzeige
Per VBA...
01.08.2019 11:27:58
{Boris}
Hi,
...bezogen auf Dein Beispielblatt - und zwar auf alle Bereiche ab Zeile 25 (die sind stets gleich groß):
Sub namen_vergeben()
Dim lngRow As Long, lngCol As Long, y As Long
For lngRow = 25 To 60 Step 7
For lngCol = 4 To 10 Step 24
For y = 0 To 4
ThisWorkbook.Names.Add Name:=Cells(lngRow + y, lngCol - 2), RefersTo:=Cells(lngRow +  _
y, lngCol).Resize(1, 20)
Next y
Next lngCol
Next lngRow
End Sub
VG, Boris
Vertipper - nicht 10 sondern 100
01.08.2019 11:30:17
{Boris}

Sub namen_vergeben()
Dim lngRow As Long, lngCol As Long, y As Long
For lngRow = 25 To 60 Step 7
For lngCol = 4 To 100 Step 24
For y = 0 To 4
ThisWorkbook.Names.Add Name:=Cells(lngRow + y, lngCol - 2), RefersTo:=Cells(lngRow +  _
_
y, lngCol).Resize(1, 20)
Next y
Next lngCol
Next lngRow
End Sub
VG, Boris
Anzeige
AW: Vertipper - nicht 10 sondern 100
01.08.2019 12:03:47
Jens
der Wahnsinn.
Es geht so einfach.
Vielen vielen Dank.
besteht die möglichkeit irgendwie das Ende noch per Abfrage zu bestimmen?
d.g. die Zahl 60 ermitteln zulassen ?
Das wäre dann die krönung dazu.
Zahl 60?
01.08.2019 12:08:17
{Boris}
Hi,
was genau meinst Du damit?
VG, Boris
Hab`s kapiert...
01.08.2019 12:11:38
{Boris}
Hi,
Du meinst den Zeilenzähler 60:

Sub namen_vergeben()
Dim lngRow As Long, lngCol As Long, y As Long
For lngRow = 25 To 60 Step 7
For lngCol = 4 To 100 Step 24
For y = 0 To 4
ThisWorkbook.Names.Add Name:=Cells(lngRow + y, lngCol - 2), RefersTo:=Cells(lngRow  _
+  _
_
y, lngCol).Resize(1, 20)
Next y
Next lngCol
Next lngRow
End Sub
Kann man - aber warum änderst Du die nicht einfach manuell im Code?
VG, Boris
Anzeige
AW: Hab`s kapiert...
01.08.2019 12:17:30
Jens
weil die Datei andere auch benutzen und ich den Code nicht einsehbar haben will.
Bzw. diese Personen keinerlei VBA können.
hast du eine idee?
Woran kann man das Ende exakt festmachen?
01.08.2019 12:23:30
{Boris}
Hi,
...letzter Eintrag in Spalte C (in Deinem Beispiel C64) und dann 4 Zeilen zurück (C60)?
Falls ja - dann so:
Sub namen_vergeben()
Dim lngRow As Long, lngLastRow As Long, lngCol As Long, y As Long
lngLastRow = Cells(Rows.Count, 3).End(xlUp).Row - 4
For lngRow = 25 To lngLastRow Step 7
For lngCol = 4 To 100 Step 24
For y = 0 To 4
ThisWorkbook.Names.Add Name:=Cells(lngRow + y, lngCol - 2), RefersTo:=Cells(lngRow  _
+ y, lngCol).Resize(1, 20)
Next y
Next lngCol
Next lngRow
End Sub
VG, Boris
Anzeige
AW: Woran kann man das Ende exakt festmachen?
01.08.2019 13:03:14
jens
perfekt :)
AW: Woran kann man das Ende exakt festmachen?
06.08.2019 13:23:07
Jens
Besten Dank. Funktioniert super.
Jedoch bräuchte ich dazu eine Modifizierung weil ich 25 Blatter in meiner Datei habe mit dem selben aufbau.
Möchte nur noch 1 Eingabeformular und die DAten soll dann in den Listen im Namensmanager gespeichert werden.
Anbei die Datei mit der Beschreibung.^
https://www.herber.de/bbs/user/131285.xlsm
Kannst du mit hier abschließend noch behilflich sein?
Wie soll das gehen?
06.08.2019 14:46:04
{Boris}
Hi,
Jedoch soll im Namensmanger unter "Bezieht sich auf" nicht stehen =Tabelle1!$BX$43:$CQ$43 sondern es sollen die tatsächlichen Werte aufgelistet sein. Also z.b. 300; 200;400;
Diese sind dann in der Liste verfügbar.

Ein einzelner Name kann nicht aus mehreren konstanten Werten bestehen, zumindest nicht, wenn diese Einzelwerte dann listenmäßig auswählbar sein sollen.
VG, Boris
Anzeige
AW: Wie soll das gehen?
06.08.2019 14:54:18
jens
Hallo,
geht das so nicht?
="200;300"
statt
=Tabelle1!$BX$43:$CQ$43
ohje dann muss ich 25 einzelen Sheets machen in denen ich die Daten dann den Listen unterschiedlichen Listen zuführe.
KAnn man das mit dem Auslesen der Listen wieder zurück zumindest umsetzen?
Excel-Namen
06.08.2019 19:33:20
{Boris}
Hi,
schau Dir doch mal genau an, welche Möglichkeiten es für die Definition von NAMEN gibt.
Ein Name kann sich auf eine Konstante beziehen (="300" oder =WAHR oder =5*7*99 oder...) oder auf einen zusammenhängenden Bereich (=Tabelle1!$BX$43:$CQ$43) oder einen diskontinuierlichen Bereich (=Tabelle1!$C$7;Tabelle1!$D$17;Tabelle1!$I$24) oder auf eine Konstantenmatrix (={300.400."Hallo".#NV}) oder eine Formel (=SUMME(Tabelle1!$C$8:$E$15)) - aber niemals auf mehrere Konstanten, die dann auch noch listenmäßig auswählbar sein sollen.
VG, Boris
Anzeige
AW: Excel-Namen
07.08.2019 09:15:25
Jens
Besten Dank für die Info.
habe ich nun verstanden.
Wie kann man dann die Daten speichern? Per Array? Aber da weis ich garnichts drüber wie das gehen soll? schlechteste Möglichkeit wäre eine Eingabeformular und weitere Blätter wo die Daten dann eingelesen oder von denen in das Eingabeformular ausgelesen werden.
Wobei mit lieber wäre die Daten könnten im Code gespeichert werden.
Hast du hierzu eine Idee. Dann wäre das Thema abgeschlossen.
Anbei dazu meine Liste.
https://www.herber.de/bbs/user/131309.xlsm

42 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige