Discussion:
Variabler Bereich in Arbeitsblatt
(zu alt für eine Antwort)
Frederik
2007-02-16 10:39:42 UTC
Permalink
Hallo an alle
Ich will einen Bereich (Spalte) in einem Arbeitsblatt variable und
bedarfsabhängig automatisch befüllen. Der Bereichsname ist vorgegeben
(kann aber auch mit VBA variable gestaltet sein) und liegt immer in
Spalte ,,V" des Blattes. Ich möchte aber die Größe (Anzahl der Zellen)
des Bereiches variable halten. Abhängig will ich dann die Zellen im
Bereich von V1 bis V...n füllen. Könnt Ihr mir helfen dieses mit Code zu
realisieren? Im Voraus, Danke an Euch alle.
Gruß
Frederik
Herbert Taferner
2007-02-16 11:06:57 UTC
Permalink
Hallo Frederik,

z. B. so,

im Menü Einfügen/Namen/Definieren einen Namen vergeben
unter Bezieht sich auf:
folgende Formel:

=BEREICH.VERSCHIEBEN(V1;;;ANZAHL2(V:V))

mfg Herbert
Claus Busch
2007-02-16 11:35:23 UTC
Permalink
Hallo Frederik, hallo Herbert,
Post by Herbert Taferner
z. B. so,
im Menü Einfügen/Namen/Definieren einen Namen vergeben
=BEREICH.VERSCHIEBEN(V1;;;ANZAHL2(V:V))
bei der Vergabe von dynamischen Bereichsnamen unbedingt absolute Bezüge
verwenden. Sonst ändert sich der Bereich, je nach aktiver Zelle. Also so:

=BEREICH.VERSCHIEBEN($V$1;;;ANZAHL2($V:$V);1)
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Herbert Taferner
2007-02-16 11:41:13 UTC
Permalink
Hallo Claus,
Post by Claus Busch
bei der Vergabe von dynamischen Bereichsnamen unbedingt absolute Bezüge
=BEREICH.VERSCHIEBEN($V$1;;;ANZAHL2($V:$V);1)
Danke fürs korrigieren

mfg Herbert
Claus Busch
2007-02-16 11:46:56 UTC
Permalink
Hallo Herbert,
Post by Herbert Taferner
Post by Claus Busch
bei der Vergabe von dynamischen Bereichsnamen unbedingt absolute Bezüge
=BEREICH.VERSCHIEBEN($V$1;;;ANZAHL2($V:$V);1)
Danke fürs korrigieren
gern geschehen. Danke für die Rückmeldung.
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Frederik
2007-02-16 12:08:18 UTC
Permalink
Post by Claus Busch
Hallo Frederik, hallo Herbert,
Post by Herbert Taferner
z. B. so,
im Menü Einfügen/Namen/Definieren einen Namen vergeben
=BEREICH.VERSCHIEBEN(V1;;;ANZAHL2(V:V))
bei der Vergabe von dynamischen Bereichsnamen unbedingt absolute Bezüge
=BEREICH.VERSCHIEBEN($V$1;;;ANZAHL2($V:$V);1)
--
Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Hallo Claus, Hallo Herbert
ich habe die Variante von Claus eingebunden und das funktioniert.
Könnt Ihr mit bitte kurz erklären wo und was der Unterschied ist ?
Vielen Dank für Eure Hilfe schönes Wochenende wünsche ich Euch
Frederik
Claus Busch
2007-02-16 12:21:18 UTC
Permalink
Hallo Frederik,
Post by Frederik
ich habe die Variante von Claus eingebunden und das funktioniert.
Könnt Ihr mit bitte kurz erklären wo und was der Unterschied ist ?
Vielen Dank für Eure Hilfe schönes Wochenende wünsche ich Euch
von der Syntax her stimmen ja beide Versionen überein. Nur sind bei mir die
Bezüge absolut. Teste es einmal, indem du A1 selektierst und einen Namen
vergibst, für den du relative Bezüge in der Formel angibst. Dann
selektierst du D5 und schaust nochmals nach der Formel für den Bereich und
du wirst sehen, dass er sich in dem Maß verschoben hat, wie sich die aktive
Zelle verschoben hat.
Vielleicht kam die Fehlermeldung auch, weil das letzte Argument (Ausdehnung
über Spalten) fehlte. Bei mir funktioniert es z.B. so:
ActiveWorkbook.Names.Add Name:="MeinName", RefersToR1C1:= _
"=OFFSET(Tabelle4!R1C22,,,COUNTA(Tabelle4!C22),1)"
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Frederik
2007-02-16 12:02:57 UTC
Permalink
Post by Herbert Taferner
Hallo Frederik,
z. B. so,
im Menü Einfügen/Namen/Definieren einen Namen vergeben
=BEREICH.VERSCHIEBEN(V1;;;ANZAHL2(V:V))
mfg Herbert
Hallo Herbert
Danke für den Tipp allerdings funktioniert das nicht. Definiere ich
den Namen wie in Deinem Beispiel
=BEREICH.VERSCHIEBEN(V1;;;ANZAHL2(V:V))
gibt mir das System die Fehlermeldung:
Eigenschaft Row Source konnte nicht gesetzt werden ,,Ungültiger
Eigenschaftswert"

Ändere ich den Bereich ab wie z.B:
=BEREICH.VERSCHIEBEN(V2;;;ANZAHL2(V:V))
Wird der Bereich aus Spalte "A" geladen.

Was mache ich da falsch? Kann ich die Bereichsfestlegung nicht auch in
VBA realisieren? Z.B. if zähler = n then bereich = V2:V...n etc.
Wäre nett wenn Dir etwas einfallen würde.
Bis dann
Gruß Frederik
Loading...