Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
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
Inhaltsverzeichnis

Zellen mit Zellennamen ansprechen

Zellen mit Zellennamen ansprechen
29.01.2013 08:24:35
StepT
Guten morgen,
Ich habe eine Exceldatei mit verschiedenen Arbeitsblättern. Auf diesen habe ich verschiedene wichtige Zellen, welchen ich jeweils einen Namen gegeben habe.
Theoretisch weiß Excel durch den Namensmanager ja auf welchem Arbeitsblatt welcher Zellname definiert ist.
Ich habe zum Bsp. die Zelle mit dem Namen "Sparte_Gruppendaten_CPK". Diese Zelle kann sich theoretisch auf einer von vier verschiedenen Arbeitsblättern befinden.
Wie kann ich die Zelle ansprechen ohne alle vier Arbeitsblätter durchsuchen lassen zu müssen?
Im Grunde will ich nur überprüfen, ob die Zelle eine Formel enthält, es sollte also in die Richtung von:
Thisworkbook.Range("Sparte_Gruppendaten_CPK").HasFormula
gehen.
PS: Das Problem ist hier stark vereinfacht dargestellt. Zellnamen kann ich leider nicht anpassen

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ist doch genau richtig so ...
29.01.2013 08:45:59
Matthias
Hallo
Wenn Du nur wissen willst ob ne Formel in dieser Zelle steht, ist doch der Weg genau richtig.
If Range("Sparte_Gruppendaten_CPK").HasFormula Then
MsgBox "Formel vorhanden"
End If
Gruß Matthias

AW: ist doch genau richtig so ...
29.01.2013 08:52:51
Luschi
Hallo Matthias,
mit Deiner Variante erleide ich regelmaßig Schiffbruch, wobei ich dazu sagen muß, daß ich
100te von Namen in 1 Arbeitsmappe habe. Deshalb mache ich den Zugriff nur noch so:

If ThisWorkbook.Names("Sparte_Gruppendaten_CPK").RefersToRange.HasFormula Then
MsgBox "Formel vorhanden"
End If
Gruß von Luschi
aus klein-Paris

Anzeige
was passiert denn bei dieser Variante
29.01.2013 09:24:01
Matthias
Hallo Luschi
Vorab - Ist ja nicht meine Variante ;-)
Der Vorschlag kam ja vom Fragenden selbst.
Ich habs nur mit diesem einen Namen getestet(auf verschiedenen Blättern)
Das hatte ohne Probleme funktioniert.
Du schreibst mit dieser Variante erleidest Du regelmaßig Schiffbruch.
Was meinst Du damit, was passiert dann bei Dir?
Will ja auch dazulernen.
Gruß Matthias

AW: was passiert denn bei dieser Variante
29.01.2013 13:25:54
Luschi
Hallo Matthias,
das ist so wie in dem Lied 'Tausend mal berührt und nichts ist passiert...'. Bei '1001' (im übertragenem Sinn) kommt dann die häßliche Debugger-Meldung Error 1004 oder 424. Und jedesmal ist es dann ein anderer definierte Name, der ihm nicht paßt.
Neuerdings benutze ich wieder dieses Konstrukt:

If [Sparte_Gruppendaten_CPK].HasFormula Then
MsgBox "Formel vorhanden"
End If
Darüber hat noch kein Kunde eine Fehler-Ticket abgegeben und Excel 2013 spielt da auch noch mit.
Gruß von Luschi
aus klein-Paris

Anzeige
Danke für Deine Informationen
29.01.2013 22:55:16
Matthias
Hallo Luschi
Was ist wenn ich nach: If .RefersToRange.HasFormula
mit With Range("Sparte_Gruppendaten_CPK") arbeite ?
siehe Code:
 With ThisWorkbook.Names("Sparte_Gruppendaten_CPK")
If .RefersToRange.HasFormula Then
With Range("Sparte_Gruppendaten_CPK")
MsgBox "Formel vorhanden in " & .Parent.Name & .AddressLocal
End With
End If
End With
Besser oder eher auch ungünstig?
Gruß Matthias

AW: Danke für Deine Informationen
30.01.2013 08:45:53
Luschi
Hallo Matthias,
da ThisWorkbook.Names("Sparte_Gruppendaten_CPK").RefersToRange bereits ein Range-Objekt
ist, kann man es auch so machen:

With ThisWorkbook.Names("Sparte_Gruppendaten_CPK")
If .RefersToRange.HasFormula Then
MsgBox "Formel vorhanden in " & .RefersToRange.Parent.Name & " - " & .RefersToRange. _
AddressLocal
End If
End With
oder
With ThisWorkbook.Names("Sparte_Gruppendaten_CPK").RefersToRange
If .HasFormula Then
MsgBox "Formel vorhanden in " & .Parent.Name & " - " & .AddressLocal
End If
End With
Gruß von Luschi
aus klein-Paris

Anzeige
Danke
30.01.2013 11:54:19
Matthias
Hallo Luschi
Der Syntax war bei meinem Test falsch.
Hatte es mit With .RefersToRange versucht und war gescheitert.
Danke
Gruß Matthias

AW: Zellen mit Zellennamen ansprechen
29.01.2013 08:47:38
Dieter(Drummer)
Hi Step T,
versuche mal dirtekt das entsprechende Tabellanblatt mit einzusetzen:
Statt: Thisworkbook.Range("Sparte_Gruppendaten_CPK").HasFormula
So z.B.: Thisworkbook.Range("Tabelle1!Sparte_Gruppendaten_CPK").HasFormula
Gruß, Dieter(Drummer)

das ist nicht nötig
29.01.2013 08:52:36
Matthias
Hallo Dieter
so holst Du Dir alle Infos die Du brauchst.
With Range("Sparte_Gruppendaten_CPK")
If .HasFormula Then
MsgBox "Formel vorhanden in " & .Parent.Name & .AddressLocal
End If
End With
Gruß Matthias

Anzeige
AW: Danke Matthias ...
29.01.2013 09:14:24
Dieter(Drummer)
... habe wieder etwas gelernt und der Tag war nicht umsonst.
Gruß und einen schönen Tag,
Dieter(Drummer)

AW: vielleicht nochmal zusammenfassend
29.01.2013 13:34:24
Daniel
Hi
wenn sich der benannte Zellbereich in der gerade aktiven Datei befindet, dann kann man ihn direkt über
Range("Name des Zellbereichs") ansprechen.
Arbeitet man jedoch mit mehrern Dateien parallel und man muss die Datei dazu mit angeben, dann muss man zusätzlich zur Datei auch noch das Tabellenblatt mit angeben:
ThisWorkbook.Sheets("Tabelle1").Range("Name des Zellbereichs")
oder, wenn das Tabellenblatt nicht bekannt ist, wie von Luschi beschrieben über das Names-Objekt gehen:
ThisWorkbook.Names("Name des Zellbereichs").RefersToRange
Gruß Daniel

Anzeige
AW: vielleicht nochmal zusammenfassend
29.01.2013 23:06:16
Matthias
Hallo Daniel
Dann lag ich ja doch nicht ganz so falsch
denn Zitat:
Ich habe eine Exceldatei mit verschiedenen Arbeitsblättern
Somit ist mein Vorschlag ja "im Grunde genommen" richtig,
denn von dieser Aussage bin ich auch ausgegangen.
Werde aber mal Luschis Vorschlag im Auge behalten und ein bisschen Testen
Man lernt ja immer gern dazu.
Gruß Matthias

AW: vielleicht nochmal zusammenfassend
29.01.2013 23:50:28
Daniel
Hi
die Methode über das NAMES-Objekt funktioniert jedoch nur bei Namen mit einer direkten Zuweisung des Zellbereichs.
Wird der Zellbereich des Namens über eine Formel berechnen, muss man über RANGE gehen.
Gruß Daniel
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige