PDA

Vollständige Version anzeigen : Problem mit dynamischer Bereichsname


big-yedi
30.09.2016, 11:11
Hallo Forengemeinde ...

In der beigefügten Excel-Tabelle wollte ich mir mit Bereich.verschieben einen dynamischen Namen hinterlegen.

Die Namensvergabe "Kriterium" im Namensmanager wollte ich mit Bereich.verschieben realisieren. Bereich.verschieben soll hierbei einen Bereich von C2-D10 berücksichtigen/umfassen, abhängig von den Eingabewerten.

Ist z.B. nur EIN Verkäufername in der Spalte C hinterlegt, soll sich KRITERIUM auf C1:D2 beziehen. Ist ein ZWEITER Verkäufername hinterlegt, soll sich KRITERIUM auf C1:D3 beziehen.

Wenn ich den dynamischen Bereich "nur" auf Spalte C ansetze funktioniert alles; versuche ich Spalte D zu berücksichtigen funktioniert mein dynamischer Bereich nicht mehr.

Wo ist mein Denkfehler?

Danke Euch!

R J
30.09.2016, 12:42
Hi yedi,

So sollte es funktionieren:

Sub dynName()
Dim lz&
lz = Columns(3).Find("", after:=Cells(1, 3)).Row - 1
ThisWorkbook.Names("Kriterium").RefersTo = "=Tabelle1!$C$2:$D$" & lz
End Sub

big-yedi
30.09.2016, 14:04
... also nur mit VBA möglich?!? :-(

Frank Furter
30.09.2016, 16:11
Hallo Forengemeinde ...

In der beigefügten Excel-Tabelle wollte ich mir mit Bereich.verschieben einen dynamischen Namen hinterlegen.

Die Namensvergabe "Kriterium" im Namensmanager wollte ich mit Bereich.verschieben realisieren. Bereich.verschieben soll hierbei einen Bereich von C2-D10 berücksichtigen/umfassen, abhängig von den Eingabewerten.

Ist z.B. nur EIN Verkäufername in der Spalte C hinterlegt, soll sich KRITERIUM auf C1:D2 beziehen. Ist ein ZWEITER Verkäufername hinterlegt, soll sich KRITERIUM auf C1:D3 beziehen.

Wenn ich den dynamischen Bereich "nur" auf Spalte C ansetze funktioniert alles; versuche ich Spalte D zu berücksichtigen funktioniert mein dynamischer Bereich nicht mehr.

Wo ist mein Denkfehler?

Danke Euch!

hallo, ich würde das nicht mit BEREICH.VERSCHIEBEN() machen...

... sondern mit INDEX()..:

=$C$1:INDEX($D:$D;VERGLEICH(0;$D:$D;-1))

bzw..:

=$C$1:INDEX($D:$D;VERGLEICH("*";$C:$C;-1))

wenn es unbedingt mit B.V() sein soll geht..:

=BEREICH.VERSCHIEBEN($C$1:$D$1;;;ANZAHL2($C$1:$C$5))

big-yedi
12.10.2016, 19:15
...der dynamische Name mit deinem Bereich.verschieben nicht :-(

Evtl. Inhalte in Spalte D werden leider nicht berücksichtigt, wenn ich diesen so gestalteten dynamischen Namen im "erweiterten Filter" nutzen will.

Ich hatte vorgehabt, den KRITERIENBEREICH des erweiterten Filters mit einem dynamischen Namen zu definieren.

Ich habe es nochmal kurz mit diversen Skizzierungen im Tabellenblatt "Export" angedeutet.

Danke Euch!

Frank Furter
12.10.2016, 19:20
...der dynamische Name mit deinem Bereich.verschieben nicht :-(

Evtl. Inhalte in Spalte D werden leider nicht berücksichtigt, wenn ich diesen so gestalteten dynamischen Namen im "erweiterten Filter" nutzen will.

Ich hatte vorgehabt, den KRITERIENBEREICH des erweiterten Filters mit einem dynamischen Namen zu definieren.

hallo, dann machtst du was falsch.... was soll da denn nicht funktionieren..? Ich habe alle drei versionen getestet...

big-yedi
12.10.2016, 19:26
Vielleicht hatte ich meine Frage ein wenig falsch formuliert...vielleicht ist die Skizzierung in der neuen Datei nachvollziehbar worauf es hinauslaufen soll ;-)

Frank Furter
12.10.2016, 19:38
Vielleicht hatte ich meine Frage ein wenig falsch formuliert...vielleicht ist die Skizzierung in der neuen Datei nachvollziehbar worauf es hinauslaufen soll ;-)

hallo, ich verstehe nicht... wo soll denn der bereich hin..?

big-yedi
12.10.2016, 23:26
... der "Bereich" soll als dynamischer Name "KRITERIUM" definiert werden und im erweiterten Filter an den KRITERIENBEREICH übergeben werden.

Luschi
12.10.2016, 23:51
Hallo big-yedi,

hier mal meine Vorstellungen von einem 'dynamischen Bereich'.

Gruß von Luschi
aus klein-Paris

Frank Furter
13.10.2016, 08:22
Hallo big-yedi,

hier mal meine Vorstellungen von einem 'dynamischen Bereich'.

Gruß von Luschi
aus klein-Paris


hallo, mit makro aber eine *.xlsx ..? das passt doch gar nicht. aber hier geht es scheibar wirklich nicht ohne vba...

Luschi
13.10.2016, 09:32
Hallo Frank Furter,

habe mich auch schon gewundert, aber ich glsube, daß viele User die Möglichkeiten von Excel-Formeln gar nicht kennen und deshalb nach Makros rufen. Aber bei dem ??? 'Wissensdurst' werden wir auch mit 100 noch gut zu tun haben.

Gruß von Luschi
aus klein-Paris

xlph
13.10.2016, 10:44
Damit die Filterung mit dem Spezialfilter wirkt, muss dieser jedes mal neu
gestartet werden, wobei zuvor die Bereiche evtl. jedes mal neu eingegeben werden müssen, da er diese nicht beibehält.

Diesen Vorgang lässt sich mit VBA lösen.


Ich sehe wir drehen uns im Kreis:
Erweiteter-/ Spezialfilter per Makroaufzeichnung mit "dynamischen" Kriterienbereich?! (http://www.ms-office-forum.net/forum/showthread.php?t=335818)

big-yedi
13.10.2016, 15:49
Ja, sicher möchte ich das ganze später evtl. per VBA realisieren (=Makrorekorder). Sprich: einen dynamischen mit Funktionen realisieren, der dann per erweiterten Filter (per Makroaufzeichnung) ausgeführt wird.
Aber nicht jeder Office-Anwender ist auch gleichzeitig VBA-Entwickler; vieles lässt sich ja auch mit Funktionen realisieren (was nicht heißen muss dass jeder Office-Anwender auch alle ca. 500 Funktionen auswendig kennt).
Auf die Programmierung eines Makros wollte ich bewusst verzichten ;-)