Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benannten Bereich um 1 Zeile erweitern

Benannten Bereich um 1 Zeile erweitern
14.04.2006 16:32:53
Emu
Es besteht bereits ein einpaltiger Bereich mit einer Liste von Nationen. Diese List ist mit dem Namen "Nation" benannt. Wie kann ich per Makro diese Liste um einen Eintrag erweitern. Anschließend muss der erweiterte Bereich wieder den Namen "Nation" tragen.
Hier nochmal der Code:

Sub Nation_2_erweitern()
' Nation_2_erweitern Makro
Dim i, k
'   Zunächst wird die aktuelle Länge der Liste ausgelesen
i = Sheets(3).Cells(3, 44).Value
'   und zwischengespeichert
Sheets(3).Cells(3, 45).Value = i
'   Die zukünftige Listenlänge wird hochgezählt
k = i + 1
'   Aktueller Name wird gelöscht
ActiveWorkbook.Names("Nation").Delete
'   Neuer Bereich soll benannt werden, klappt auf diese weise aber nicht
ActiveWorkbook.Names.Add Name:="Nation", RefersToR1C1:= _
"=sheets(3).cells(4,44):sheets (3).cells(4+k,44)"
Sheets(3).Cells(3, 44).Value = k
'   So sah das Makro nach Aufzeichnung aus, mit absoluter Adressierung, sollte aber ja flexibel adressiert werden.
'    ActiveWorkbook.Names.Add Name:="Nation", RefersToR1C1:= _
"=Daten!R4C44:R18C44"
'    Sheets("Menü").Select
End Sub

Danke im Vorraus :D
Emu

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benannten Bereich um 1 Zeile erweitern
14.04.2006 19:35:08
Gerd
Hi,
kann es auch vorkommen, dass im Bereich Zellinhalte gelöscht werden?
Wenn ja, was soll dann passieren?
mfg Gerd
AW: Benannten Bereich um 1 Zeile erweitern
14.04.2006 22:25:48
ctr01
Hallo D,
ich weiss nicht, ob Dir das weiterhilft, dieses Problem löse ich meist über eine Excel-Funktion, die eine dynamische Liste erzeugt, also jeden neuen Eintrag in der Liste berücksichtigt.
Zur Erläuterung :
in Tabelle1 befindet sich ab Zelle A1 die fragliche Liste
der Zelle A1 gebe ich den Namen (z.B.) "StartListe" ('einfügen, Namen, definieren' - kennst Du sicherlich)
dann kommt das "Herzstück" : ebenfalls über 'einfügen, Namen, definieren' vergebe ich für die Liste den Namen "Liste" (oder wie auch immer)
im Feld "bezieht sich auf" trage ich folgende Excel-Funktion ein :
=StartListe:BEREICH.VERSCHIEBEN(StartListe;ANZAHL2(Tabelle1!$A$1:$A$100)-1;0;1;1)
Probiere es aus und schau Dir zum Verstehen die Funktionsweise von "BEREICH.VERSCHIEBEN" an
in Deinem Makro kannst Du nun beispielsweise mit
Dim Nation as Range
Set Nation=ActiveSheet.Range("Liste") 'das Tab-Blatt sollte hierfür aktiv sein
jegliche Veränderung der Liste auffangen
Ich halte es für mich so, dass ich trotz aller Lust am Programmieren nicht ständig das Rad neu erfinden will, wo Excel selbst schon Lösungen bietet
Viel Erfolg
Norbert
Anzeige
AW: Benannten Bereich um 1 Zeile erweitern
15.04.2006 00:41:45
Emu
Ich habe jetzt schon etwas weiter gemacht, mein einziges Problem ist jetzt der Befehl, mit dem ich einem markierten Bereich einen Namen zuweise. Auch über die Makroaufzeichungsfunktion komme ich da nicht weiter.
@Gerd: Nein es wird nichts gelöscht, es kommen wenn dann nur weitere Einträge hinzu.
@Norbert: Danke erstmal, ist mittlerweile etwas spät, ich werde mir deine Lösung morgen nochmal angucken :P
Gruß
Emu
AW: Benannten Bereich um 1 Zeile erweitern
15.04.2006 13:58:01
Emu
Hallo Norbert,
habe deine lösung ausprobiert, komme leider nicht weiter, finde den bereich "nation" immer noch nicht unter der auswahl.
ps. bereich.verschieben ist für mich seit beginn von excel immer noch ein mysterium
Emu
Anzeige
AW: Benannten Bereich um 1 Zeile erweitern
15.04.2006 15:34:08
ctr01
Hallo Emu,
es führt hier wohl ein wenig weit, wenn ich versuchen wollte, die Funktionsweise von BEREICH.VERSCHIEBEN mit anderen Worten und verständlicher als die Online-Hilfe samt Beispiel zu erklären.
Verstehe nicht ganz, unter welcher "Auswahl" Du "Nation" finden willst. Unter "Gehe zu" wird ein solch dynamischer Bereich nicht aufgeführt, aber teste doch einfach, ob Du mit
Dim NameNation as String
NameNation=Application.WorksheetFunction.Index(Nation,x)
die gewünschte Rückmeldung bekommst (nachdem Du zuvor wie beschrieben "Nation" als Range definiert hast).
Gib nochmals eine Nachricht, wenn es nicht funktioniert, dann stelle ich Dir ein kurzes Beispielmakro im Laufe des Abends hier ein
Gruß Norbert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige