Microsoft Excel

Herbers Excel/VBA-Archiv

Namensarray mit festen Werten

Betrifft: Namensarray mit festen Werten von: Jack
Geschrieben am: 29.11.2012 14:51:45

Hallo liebe Gemeinde

Ich hab mal wieder ein kleines Anliegen.

Und zwar

Gibt es die Möglichkeit (OHNE Vba) einen Namen zu definieren und diesen nicht mit einem Bezug zu versehen sondern mit fixen Werten. (Also sozusagen wie eine permanente Variable im Hintergrund zu halten)
Das korrumpiert zwar die Idee hinter dem Namensmanager hat aber folgenden Sinn,
ich möchte aus verschiedenen auch kosmetischen Aspekten die "Ursprungstabelle" nicht in der Mappe haben. (Eine indirekt() Lösung scheidet aber wegen der notwendigen "doppelöffnung" (also beider Mappen ) aus

Vielen Dank für kreative Ansätze..

  

Betrifft: AW: Namensarray mit festen Werten von: Hajo_Zi
Geschrieben am: 29.11.2012 14:58:21

meinst Du so?


Tabelle2

 F
15Hallo Jack

verwendete Formeln
Zelle Formel Bereich
F15 =Test 

definierte Namen
Name Bezieht sich auf Tabelle Z1S1-Formel
Test="Hallo Jack" ="Hallo Jack"

Tabellendarstellung in Foren Version 5.50


GrußformelHomepage


  

Betrifft: AW: Namensarray mit festen Werten von: Jack
Geschrieben am: 29.11.2012 15:12:12

Hallo Hajo ..

Ich hab mich etwas unglücklich ausgedrückt... Ich wollte das anschliessend in ein Listenfeld eintragen

Grüße


  

Betrifft: Matrixkonstante von: Rudi Maintaire
Geschrieben am: 29.11.2012 14:59:21

Hallo,
so?

A
3c

NameBezug
xxx={"a"."b"."c"."d"."e"}

ZelleFormel
A3=INDEX(xxx;3)


Gruß
Rudi


  

Betrifft: AW: Matrixkonstante von: Jack
Geschrieben am: 29.11.2012 15:04:11

Hallo Ihr beiden

sehr interessante Ansätze.
Ich müsste das ganze dann nur in einem Dropdown (also Gültigkeitskontrolle- Liste)
Wiedergeben.

Muss ich gleich mal Probieren


  

Betrifft: Korrumpiert mitnichten, ... von: Luc:-?
Geschrieben am: 29.11.2012 15:41:00

…Jack;
als Bezug muss bei Namen immer eine Formel angegeben wdn, was man leicht am führenden = erkennen kann. Bei Angabe eines (auch Mehrfach-)Bereichs wird der Name = diesem gesetzt, ansonsten eben = einer (Matrix-)Konstanten bzw dem Ergebnis eines Ausdrucks (Formel). Rudi verwendet eine Matrixkonstante, also feste Werte in Form einer Matrix bzw hier eines Vektors, Hajo einen skalaren Wert.
Gruß Luc :-?


  

Betrifft: AW: Korrumpiert mitnichten, ... von: Jack
Geschrieben am: 29.11.2012 15:49:32

Hallo Luc

Naja korrumpiert im Sinne von, das es sich sozusagen nicht auf eine veränderbare Zelle bezieht sondern "nur" einen fixen Wert ausgibt, der dann im weiteren auch über eine Liste (Listenfeld) ausgegeben werden soll.

Dh. Bei einem Listenfeld kann man für die Gülztigkeit ja einen Namen(-sdefinition) als Bezug angeben.
Wie löse ich es aber, dass ich den Namen mit festen Werten fülle, die ich dann in eben dieser Abrufen kann.
Dern nachteil bei der Lösung mit den Skalaraen ist, ja das ich diese nur über einen Index ansprechen kann.


Grüße


  

Betrifft: Skalare sind Einzelwerte, du meinst ... von: Luc:-?
Geschrieben am: 29.11.2012 19:41:09

…sicher (Rudis) Vektor(en), Jack!
Rudi trägt diese sog Matrixkonstante natürlich fest beim Namen ein. Das ist ja auch so vorgesehen und müsste dann ggf auch von der Datengültigkeit akzeptiert wdn. Das wäre dann auch das erste, was du überprüfen solltest, sonst hätten alle weiteren Überlegungen in dieser Richtung keinen Sinn.
Offensichtlich willst du diesen Namen aber variabel mit einer ggf stets anderen/veränderten/aktualisierten Matrixkonstante füllen. Dann kannst du ohne VBA keine Matrixkonstante nehmen, sondern musst dich direkt auf die Quelle beziehen, was dann ja auch ein verstecktes/r Blatt/Bereich sein könnte. Ansonsten bliebe nur die Eingabe von Hand für Texte wie bei Rudi, für Zahlen so:
{1.2.3;4.5.6;7.8.9} für eine 3×3 Matrix, natürl mit deinen Zahlen, die auch dezimal sein dürfen.
Alles, was etwas komfortabler in der Handhabung sein soll, geht nur mit VBA. Bspw habe ich bei einem Projekt eine Doku aller Namen angelegt, in der ich die Werte von solchen Konstanten direkt ändern kann. Die Änderung wird dann automatisch in den Namen übertragen, wobei eine Matrixkonstante nicht mal in der gezeigten Form eingegeben wdn muss, sondern einfach nur als Aufzählung. Die MxKonst macht dann das vbPgm im Hintergrund daraus.
Was die Gültigkeit betrifft, für die das ja wohl sein soll, die arbeitet doch auch mit Listen, nicht mit MxKonstanten. Das können dann doch ebenfalls nur Aufzählungstexte sein, die dann wohl ähnl einer MxKonst weiterverarbeitet wdn. Dann könntest du doch sicher einen solchen aufzählenden Text als quasi skalaren Konstantenwert angeben!? Wolltest du den (automatisch) erzeugen, müsstest du die betroffenen Zellinhalte per …&trennzeichen&… miteinander verbinden und das Ergebnis als "Wert" zum Namen eintragen. Hajos Vorschlag scheint in diese Richtung zu gehen.
Gruß Luc :-?


  

Betrifft: Skalare sind Fische (Segelflosser) owT ;-) von: Rudi Maintaire
Geschrieben am: 29.11.2012 20:10:56




  

Betrifft: Das auch...! ;-) Gruß owT von: Luc:-?
Geschrieben am: 30.11.2012 01:11:15

:-?


  

Betrifft: AW: Das auch...! ;-) Gruß owT von: Jack
Geschrieben am: 30.11.2012 10:42:02

Hallo Luc

Vielen Dank für deine Ausführung.

Zu den variablen und Konstanten...
Praktisch gesehen will ich das Bundesland in einer Liste auswählen und dann in der zweiten Liste eine der in diesem Bundesland befindlichen Städte auswählen und dann einen stadtindividuellen Wert ausgeben.

Und bisher hab ich es über eine Hilfstabelle gelöst. Das Problem hierbei ist, dass diese Ausgabe (in einem Berechnungs-Blatt) immer wieder in verschiedenen Mappen verwendet werden soll, und ich sozusagen für den DAU die Fehlermöglichkeiten minimieren will und er nur das eine Blatt (Berechnungsblatt) in die neue Mappe kopieren soll. (Und eben nicht noch die Hilfstabelle)

Deswegen mein anliegen =)

Grüße


  

Betrifft: Das du jetzt gelöst hast!? Gruß+schöWE owT von: Luc:-?
Geschrieben am: 30.11.2012 18:19:00

:-?


  

Betrifft: AW: Das du jetzt gelöst hast!? Gruß+schöWE owT von: Jack
Geschrieben am: 01.12.2012 00:40:39

Hallo Luc.
Also gelöst hab ich es noch nicht.
Wobei ich wahrscheinlich einfach die gültigkeitsliste manuell füllen müsste.
Aber dies Arbeit ist mit grad zu aufwändig ;-)

Daher suche ich noch nach einer praktikableren Lösung ;-)

Grüße


  

Betrifft: Dann leg' die doch per VBA an, ... von: Luc:-?
Geschrieben am: 02.12.2012 17:16:41

…Jack,
so wie quasi schon von Hajo vorgeschlagen, nur musst du zuvor die Liste bilden. Das kannst du mit einer kleinen Hilfsfkt einmalig machen und das Ergebnis in eine Konstante eintragen, die du dann zuweist.
Du kannst das auch per benannter Konstante außerhalb von VBA tun und dann den Namen verwenden.
Falls sich mal was ändert, erstellst du das halt mit deiner Fkt neu oder organisierst das Ganze so wie von mir für mein Projekt beschrieben.
Als Basis deiner udFkt verwendest du die vbFkt Join; dabei aber beachten, dass die nur 1dimensionale Vektoren verarbeiten kann. Dabei sind nur horizontale DatenfeldVektoren in xlVBA wirklich 1dimensional. Musst du also erst mit 1-2× WorksheetFunction.Transpose herstellen. Die Abfrage If IsError(LBound(dfvektor, 2)) Then muss einen, LBound(dfvektor) darf keinen Fehler ergeben. On Error Resume Next davor nicht vergessen!
Gruß Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Namensarray mit festen Werten"