Auswahllisten und der Befehl INDIREKT
So, ich hab mein Projekt schon fast fertig bekommen...
brauch jetzt aber nochmal Expertenhilfe.
Ich habe 2 Excel Mappen. In der zweiten sind Werte für Auswahllisten definiert.
Die erste Mappe öffnet die zweite und definiert die Namen für die Auswahllisten für Mappe1 neu. (Das hab ich so gemacht, damit ich keinen festen Bereich definieren muss und in Mappe2 die Listen auch noch erweitern kann.
ActiveWorkbook.Names.Add Name:="extern_Auswahlliste1", RefersToR1C1:= _
"=Listen.xls!Auswahlliste1"
Wenn ich danach unter Einfügen/NAmen nachschaue, steht auch alles richtig drin.
Ich kann auch ein Auswahlmenü (Daten/Gültigkeit) erstellen
Ich habe aber noch eine Abhängigkeit drin und wollte ein 2. Auswahlmenü mit dem ersten über INDIREKT verknüpfen.
In einer Probedatei (eine Mappe, Auswahllisten ganz normal definiert) hat es funktioniert, aber so funktioniert es irgendwie nicht mehr.
Was mach ich falsch?
Gruß
Heike
Antwort schreiben
Antwort 1 von rainberg vom 21.11.2019, 07:31 Options
Hallo Heike,
Zitat:
Ich habe aber noch eine Abhängigkeit drin und wollte ein 2. Auswahlmenü mit dem ersten über INDIREKT verknüpfen.
....ich verstehe zwar nicht so richtig, was sich hinter diesem Satz verbirgt,
deshalb nur folgende Frage oder Mutmaßung:
"Könnte es sein, dass nicht beide, an der Aktion beteiligten, Dateien geöffnet sind?"
Die Funktion INDIREKT() verlangt dies nämlich.
Gruß
Rainer
Antwort 2 von _heike_ vom 21.11.2019, 09:20 Options
Die Abhänigkeit sieht so aus:
Auswahllisten:
Auswahlliste1
Auswahlliste2
...
dann
Auswahlliste1:
Wert1
Wert2
Wert3
Im ersten Feld wähle ich die Auswahlliste aus, im 2. Feld sollen dann die dazugehörigen Werte erscheinen.
Die Datei ist offen und in einer Probedatei hat das ganze auch schon funktioniert (allerdings hab ich dort die Auswahllisten über Einfügen/Namen definiert)
Gruß
Heike
Antwort 4 von _heike_ vom 21.11.2019, 10:05 Options
Hallo Rainer,
schon mal vielen Dank für Deine Antwort, das war ne Variante die ich noch nicht gekannt haben.
Ich hab vor ner Weile hier im Forum schonmal nach den Auswahllisten gefragt, und hab auch ne Antwort bekommen die funktioniert hat.
(http://www.supportnet.de/threads/1632009)
Das hat auch alles prima funktioniert, solag die Daten alle aus einer Mappe waren.
Ich brauch das ganze aber aus einer externen Mappe und der nächste Hacken ist, das die Datei auch in andere Ordner kopiert werden soll, deshalb kann ich auch keine feste Pfadangaben verwenden.
Ich hoffe dass mein Problem verständlich ist.
Gruß
Heike
Antwort 5 von _heike_ vom 21.11.2019, 10:10 Options
Also irgendetwas hab ich jetzt wohl falsch gemacht...
jetzt bekomm ich die Variante in der selben Mappe auch nicht mehr hin :-(
Wenn ich für das 2. DropDown Menü unter Gültigkeit =INDIREKT(A1) angebe, bekomm ich die Warnung:
Die Quelle untersucht gerade einen Möglichen Fehler. Soll fortgefahren werden?
Hab ich hier nen generellen Fehler eingebaut?
Gruß
Heike
Antwort 6 von _heike_ vom 21.11.2019, 10:46 Options
Oh, man, ich glaub ich hab meinen Fehler gefunden...
wenn es das war, dann renn ich glaub erstmal mit dem Kopf gegen die Wand ;-)
Ich hab die Auswahllisten beim übernemen in die Hauptmappe immer mit "extern_" erweitert...
dann haben die Namen natürlich nicht mehr gepasst.
Aber schon mal vielen Dank für die Gedult.
Gruß
Heike
Antwort 7 von rainberg vom 21.11.2019, 10:47 Options
Hallo Heike,
leider habe ich mit Abhängigkeiten von Gültigketslisten keine große Erfahrung, da ich sie in der Praxis noch nicht angewendet habe.
Deshalb habe ich Dir auch nur einen Link gesendet und keinen persönlichen Vorschlag gemacht.
Kann Dir nun leider aus der Ferne auch nicht sagen, wo der Fehler liegt.
Gruß
Rainer
Antwort 8 von _heike_ vom 21.11.2019, 11:11 Options
Hallo Rainer,
trotzdem vielen Dank für die Unterstützung.
So, vielleicht kann mir ja sonst noch jemand helfen.
Ich habe etwas rumprobiert.
Also wenn ich in der Hauptmappe auf Einfügen/Namen gehe, dann mit dem Auswahlfester in die 2. Mappe gehen, den Bereich markiere und so den Namen vergebe, funktioniert es.
Dann steht bei den Namen unter Bezieht sich auf:
=[neu4.xls]Tabelle2!$A$2:$A$6
Wenn ich die Namen über VB für die Hauptmappe übernehme
steht dann dort nur
=neu4.xls!Auswahlliste1
und so gehts dann nicht. (die INDIREKT Funktion, ein normales DropDown Menü kann ich erstellen)
Wo ist den hier der große Unterschied?
Wie müsste ich das in VB schreiben, dass es passt?
Bis jetzt sieht es so aus:
ActiveWorkbook.Names.Add Name:="Auswahlliste1", RefersToR1C1:= _
"=[neu4.xls]Tabelle2!Auswahlliste1"
Gruß
Heike
Antwort 9 von _heike_ vom 21.11.2019, 15:11 Options
So, ich hab ne Lösung gefunden, und die möchte ich euch ja nicht vorenthalten.
Ich definiere die Listen einfach komplett in VBA und damit ich neue Zeilen in die Listen noch nachträglich einfügrn kann, lese ich die Listen einfach bis zur letzten Zeile aus.
'Hier wir die letzte Zeile der Spalte A ermittelt
letztezeile_1 = Workbooks(2).Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
ActiveWorkbook.Names.Add Name:="Auswahliste1", RefersToR1C1:= _
"=[Listen.xls]Tabelle1!R2C1:R" & letztezeile_1 & "C1"
Gruß
Heike