Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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

Tabelle in den Names-Manager einlesen

Tabelle in den Names-Manager einlesen
15.09.2014 14:42:35
Lemmi
Hallo zusammen,
ich möchte aus einem Arbeitsblatt Bereichsnamen übertragen.
Ich dachte mir dass ich eine Tabelle im Arbeitsblatt Namens_Manager erstelle die alle Werte und alle Arbeitsfelder zu füllen erstelle.
Die erstellte Tabelle wird dann per Makro abgearbeitet und übertragen.
Kann das mit einem Makro durchgeführt werden?
Eine Beispieltabelle angefügt:
https://www.herber.de/bbs/user/92639.xlsx
Gruß
Lemmi

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle in den Names-Manager einlesen
17.09.2014 09:14:13
Beverly
Hi Lemmi,
theoretisch geht das schon zu machen, nur gibt es ein Problem bei den Formeln - diese müssen m.W. nach in der R1C1-Schreibweise zugewiesen werden.


AW: Tabelle in den Names-Manager einlesen
18.09.2014 13:58:12
Lemmi
Hallo Karin,
die Namen können ja eingelsen werden.
Menü,Formeln,Auswahl ... leider bekomme ich es nicht hin, dass " bezieht sich auf" Feld mit der Formel geüllt wird. Kann da nicht copy c und Copy V über VAB zugeordnet und abgesetzt werden.
...ist vieleicht nicht ganz so schön, aber könnte die Schreibweise R1C1-Schreibweise überflüssig machen!
Gruß
Lemmi

Anzeige
AW: Tabelle in den Names-Manager einlesen
18.09.2014 15:02:13
Beverly
Hi Lemmi,
genau das geht eben nicht. Aber wenn du die Formeln in der englischen Schreibweise vorhältst, dann geht es auch ohne R1C1-Bezug
Sub NamenErstellen()
Dim lngZeile As Long
Dim strTab As String
Dim strFormel As String
Dim strName As String
For lngZeile = 6 To 20
strTab = Cells(lngZeile, 6)
strFormel = "=" & Cells(lngZeile, 5)
strName = Cells(lngZeile, 3)
Worksheets(strTab).Names.Add Name:=strName, RefersTo:=strFormel
Next lngZeile
End Sub
Ich würde aber an deiner Stelle anstelle von BEREICH.VERSCHIEBEN die Funktion INDEX verwenden:
Arbeitsblatt02!$I$8:INDEX(Arbeitsblatt02!$I$8:$I$500,COUNT(Arbeitsblatt02!$I$8:$I$500))


Anzeige
AW: Tabelle in den Names-Manager einlesen
19.09.2014 17:06:49
Lemmi
Hallo Karin,
das hat alles gekappt! super!
Eine Frage dennnoch: Warum ist es besser mit "Index" zuarbeiten und nicht mit "Bereich.Verschieben"
Gruß
Lemmi

AW: Tabelle in den Names-Manager einlesen
19.09.2014 18:36:18
Beverly
Hi Lemmi,
BEREICH.VERSCHIEBEN ist eine volatile Funktion. Das bedeutet, dass sie bei jeder (auch nicht mit dieser Funktion verbundenen) Neuberechnung trotzdem auch wieder neu berechnet wird, was natürlich die Performance wesentlich beeinträchtigt. Und genau das passiert bei INDEX nicht, da INDEX nicht zu den volatilen Funktionen gehört.


Anzeige
AW: Tabelle in den Names-Manager einlesen
19.09.2014 08:26:22
Lemmi
Hallo Karin,
das Makro bekomme ich leider nicht ans laufen!
Meldet immer Laufzeitfehler; Index außerhelb des Gültigen Bereichs!
Könntes Du dies mal in der Beispieldatei einbinden?
GRuß
Lemmi

AW: Tabelle in den Names-Manager einlesen
19.09.2014 08:42:09
Beverly
Hi Lemmi,
dieser Fehler tritt auf, wenn es das Tabellenblatt nicht gibt, auf das sich deine Formel bezieht.


AW: Tabelle in den Names-Manager einlesen
19.09.2014 13:58:23
Lemmi
Hallo Karin,
d.h. Tabellenbalt: Arbeitsblatt02 erzeugen.
...habe ich gemacht!
...aber es klappt nicht!
Gruß
Lemmi

AW: Tabelle in den Names-Manager einlesen
19.09.2014 16:05:22
Beverly
Hi Lemmi,
da hatte ich mich nicht 100% deutlich ausgedrückt - nicht nur das Tabellenblatt, auf das sich die Formel bezieht, muss vorhanden sein, sondern auch alle die Tabellenblätter, die in Spalte F stehen, denn sonst kann der Name ja nicht für dieses Tabellenblatt erstellt werden und das löst slbstverständlich einen Fehler aus.


Anzeige
AW: Tabelle in den Names-Manager einlesen
20.09.2014 18:43:52
Lemmi
Hallo Karin,
alles super!
Zwei Fragen habe ich denn noch!
Warum sollte man Index und nicht verschieben.bereich nutzen.
Wäre es möglich die feste Zeilenangabe in eine Angabe die Flexibel ist umzuwandel.
Also wenn zum Beispiel in Spalte A kein inhalt mehr ist soll auch nicht mehr eingelesen werden.
(For lngZeile = 6 To 20)
Gruß
Lemmi

AW: Tabelle in den Names-Manager einlesen
20.09.2014 20:48:35
Beverly
Hi Lemmi,
zu INDEX vs. BEREICH.VERSCHIEBEN hatte ich eigentlich schon einen Beitrag geschrieben - weiß nicht, weshalb der nicht angezeigt wird.
Also: BEREICH.VERSCHIEBEN ist eine volatile Funktionie, d.h. sie wird bei jeder Neuberechnung (gleichgültig ob sie direkt mit der Funktion zusammenhängt ist oder nicht) berechnet - das beeinträchtigt natürlich die Performance negativ. INDEX dagegen gehört nicht zu den volatilen Funktionen.
Die letzte belegte Zeile in einer Spalte kann man z.B. so ermitteln:
IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Dabei ist die 1 die Spaltennummer.


Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige