Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nachfolger einer Zelle mit Namen ansprechen

Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 14:14:19
POWVorti
Hoi!
Eigentlich hab ich einigermaßen VBA Kentnisse, aber auch keine guten... Daher hab ich mich mal für "nein" entschieden...
Also, zum Thema:
Ich habe eine Zelle mit einem Namen versehen (Beispiel: Datei_Anfang). Wie kann ich jetzt, beispielsweise über eine Schleife, alle weiteren Zellen, die sich in den Zeilen darunter befinden ansprechen? Das muß ja irgendwie gehen wie beispielsweise:
ActiveWorkbook.Names("Datei_Anfang" + schleifenzaehler).RefersToRange.Value = "Test"
Nur genau das klappt eben nicht (unverträgliche Typen...). Wie ist die richtige Syntax dafür?
Danke + Gruß
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 14:32:11
POWVorti
Ich heiße POWVorti *g*
Ne... ich glaube das bringt mir nichts... Hier geht es anscheinend um einen festen Bereich. Und mein Bereich soll variabel sein.
Ich gebe aber auch zu, ich verstehe Problematik und Lösungsvorschlag nicht ganz...
Mein Problem nochmal in anderen Worten: Ich möchte auf eine Zelle, die i Zeilen unter-/oberhalb von der Zelle mit dem Namen "Datei_Anfang" liegt, zugreifen.
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
bernd
hallo
so?
Option Explicit
Public

Sub test()
Dim zeile As Long
Dim spalte As Integer
zeile = Range("datei_anfang").Row
spalte = Range("datei_anfang").Column
Cells(zeile + i, spalte).Select 'oder was auch immer
End Sub

musst nur i noch festlegen.
bernd
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 14:52:57
POWVorti
Mmmmh, okay, so gehts:
Dim zelle As Range
zeile = ThisWorkbook.Worksheets(1).Range("Datei_Anfang").Row
spalte = ThisWorkbook.Worksheets(1).Range("Datei_Anfang").Column
ThisWorkbook.Worksheets(1).Cells(zeile + i, spalte) = "Bis hierhin"
Ist nur schade... Ich dachte, man könnte direkt in der Zuweisung sagen: ab Zelle "Datei_Anfang" i Zeilen runter... Ist ein bißchen umständlich so...
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
harry
hi,
wenn ich das richtig verstehe, solltest du den anfang nicht als name einer zelle, sondern als range definieren. dann kannst du mit dem offset befehl auf alle anderen zellen zugreifen. ein beispiel:
Dim anFang As Range
Set anFang = ActiveSheet.Cells(1, 1)
For i = 1 To 10
anFang.Offset(rowoffset:=i, columnoffset:=0).Select
Next i
liebe grüße,
harry
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 14:38:04
POWVorti
Nein... Ich habe einen festen Zellennamen definiert. Das will ich machen, um die Zelle variabel in der Tabelle verschieben zu können. Von daher bringt mir die Idee leider nichts.
Dann müßte ich trotzdem bei jeder Änderung das VBA-Makro pflegen...
AW: Nachfolger einer Zelle mit Namen ansprechen
bernd
hallo
geht z.B. auch so:
wenn ich dich richtig verstanden habe
Option Explicit
Public

Sub test()
Dim zelle As Range
For Each zelle In Range("datei_anfang" & ":a1000") 'a1000 anpassen
zelle.Value = 1 'oder was auch immer
Next
End Sub

bernd
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 14:41:39
POWVorti
Das bringt mir leider auch nichts... So definiere ich einen fest vorgegebenen Bereich.
Ich will aber wirklich auf eine Zelle zugreifen, die i Zeilen unterhalb der Zelle mit dem Namen "Datei_Anfang" liegt...
Ziel ist folgendes: Kopieren aller Zeilen, ab der Beginnzeile, solange, bis eine Leerzeile gelesen wurde... Dadurch, daß der Aufbau des Blattes noch variabel ist und sich das Layout ändern kann, will ich mit eindeutigen Namen arbeiten
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
bst
Auch Hallo,
sowas vielleicht ?
Quelle und Ziel sind dabei Namen.
Range(Range("Quelle"), Range("Quelle").End(xlDown)).Copy Range("Ziel")
cu, Bernd
AW: Nachfolger einer Zelle mit Namen ansprechen
25.01.2005 15:46:45
POWVorti
Da krieg ich die Fehlermeldung:
Copymethode des Range-Objektes ist fehlerhaft...
AW: Nachfolger einer Zelle mit Namen ansprechen
bst
Hmm,
funktioniert hier bei mir mit Excel 2000 schon.
Habe leider kein 97 zum Testen.
Du hast schon "Quelle" und "Ziel" jeweils als Namen definiert, nicht ?
Was erhältst Du denn im VBA-Direktfenster bei den folgenden zwei Anweisungen ?
?names("Quelle").RefersTo
?names("Ziel").RefersTo
Gruß, Bernd
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
27.01.2005 08:25:57
POWVorti
Es erfolgt eine automatische Umwandlung zu:
Print Names("Name").RefersTo
Anschließend erhalte ich die Fehlermeldung:
Anwendungs- oder objektdefinierter Fehler
AW: Nachfolger einer Zelle mit Namen ansprechen
27.01.2005 08:30:31
POWVorti
Ich sollte den Haken bei "Frage noch offen" setzen...
AW: Nachfolger einer Zelle mit Namen ansprechen
bst
Morgen POWVorti,
neuer Tag, neuer Versuch :-)
Ich denke mal ich hab's jetzt.
Du rufts das Teil aus dem Klassenmodul einer Tabelle heraus auf, nicht ?
Das geht so leider nicht. Mach sowas. Siehe auch hier: https://www.herber.de/bbs/user/16974.xls
a) via Modul, IMHO der einfachere Weg:
Hinter die Tabelle:

Private Sub CommandButton1_Click()
Call CopyIt
End Sub

In ein Modul!:
Sub CopyIt()
Range(Range("Quelle"), Range("Quelle").End(xlDown)).Copy Range("Ziel")
End Sub
b) direkt hinter der TabelleXYZ:

Private Sub CommandButton1_Click()
Dim wbSrc As Worksheet, wbDst As Worksheet
Set wbSrc = ActiveWorkbook.Names("Quelle").RefersToRange.Parent
Set wbDst = ActiveWorkbook.Names("Ziel").RefersToRange.Parent
wbSrc.Range(wbSrc.Range("Quelle"), wbSrc.Range("Quelle").End(xlDown)).Copy wbDst.Range("Ziel")
End Sub

Falls jemand einen einfacheren Weg für b) kennt, bitte her damit ...
Gruß, Bernd
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
27.01.2005 14:44:20
POWVorti
Hi!
Ich war leider nicht im Unternehmen gestern, deswegen konnte ich erst heute auf den Beitrag zugreifen.
Ich kriege leider noch immer die fehlerhafte Copy-Methode als Fehler, deswegen denke ich, es liegt an Excel 97.
Ich hatte zwar gehofft, daß es einfacher gehen würde, als in den vorherigen Lösungen, auf nachfolgende Zellen zuzugreifen, aber eine andere Möglichkeit scheint es anscheinend leider nicht zu geben...
Anzeige
AW: Nachfolger einer Zelle mit Namen ansprechen
bst
Abend,
Funktionieren meine zwei Makros in der Beispiels-Datei wirklich nicht bei Dir mit Excel 97 ?
Falls nicht, nicht verzweifeln ;-)
Viele Wege führen nach Rom.
Schönen Abend noch,
Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige