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

zu benannter Zelle gehen

zu benannter Zelle gehen
20.04.2008 15:04:00
Reinhard
Hallo Wissende,
irgendwie kam mir die Problematik noch nicht unter.
Eine benannte Zelle kann man nicht selektieren, ist das richtig?
Wie kann ich dann, ohne jetzt Goto zu einer benannten Zelle hüpfen, gibt es da was ?
(also einfache Vba-Befehle, nicht refersto auslesen oder so)

Sub nn()
ActiveWorkbook.Names.Add Name:="Apfel", RefersToR1C1:="=Tabelle2!R1C3"
'Range("Apfel").Select    'Fehler
'Range(Apfel).Select       'Fehler
MsgBox Range("Apfel").Value
Application.Goto Reference:="Apfel"
End Sub


Danke ^ Gruß
Reinhard

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zu benannter Zelle gehen
20.04.2008 15:25:08
Beate
Hallo Reinhard,
wenn du das Makro von einem anderen Tabellenblatt aus startest, musst du vorher das Blatt selektieren:
Sub nn()
    ActiveWorkbook.Names.Add Name:="Apfel", RefersToR1C1:="=Tabelle2!R1C3"
    Sheets("Tabelle2").Select
    Range("Apfel").Select
    MsgBox Range("Apfel").Value
End Sub


Aber warum selektierst du überhaupt?
Guckst Du: Achtung Makrorekorder oder Wer selektiert denn da?
Gruß,
Beate

Anzeige
AW: zu benannter Zelle gehen
20.04.2008 15:54:36
Reinhard
Hallo Beate,
der Code war nur so, damit man klar sieht das es den namen Apfel auch gibt, kein Shreibfehler oder so.
Es geht darum, ich wollte im Dokumentmodul eines anderen Blattes sowas basteln:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
Range(Target.Value).Select
End Sub
Deshalb kam ich auf Select und fand keine Lösung mit Select, stiess auf Goto, damit war zwar der Code fertig, aber ich wollte halt wissen ob ich beim Ausprobieren mit Select etwas übersehen habe und es doch mit Select geht, deshalb habe ich hier nachgefragt.
Dank euch weiß ich jetzt wie es mit Select ginge und da man damit 2 Codezeilen bräuchte, es besser ist Goto zu nehmen.
Jetzt habe ich noch ein Problem in der gleichen Fruchtangelegenheit :-)
Es gibt Zellen im Blatt Obst mit den Namen Apfel,Banane,Orange.
In A1 eines anderen Blattes habe ich die Gültigkeitsliste: Apfel;Banane;Orange.
Durch obigen Code (halt mit Goto drinnen) klappt das gut, man wählt aus und schwupps ist man in der gewünschten Zelle.
Aber ist mna wieder in dem anderen Blatt und will erneut in die gewählte Zelle so klappt das nicht da ein Klick auf A1 ja kein Change-Ereignis auslöst.
Jetzt wollte ich das so lösen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
'ActiveSheet.Hyperlinks.Add Anchor:="A1", Address:="", SubAddress:= _
'        Range("A1"), TextToDisplay:=Range("A1")
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:="", SubAddress:= _
Range("A1"), TextToDisplay:=Range("A1")
Application.Goto Reference:=Target.Value
End Sub


aber der Debugger meckert immer beim Add Befehl :-(
Ich weiß, um jetzt in A1 etwas auswählen zu können muß man sich mit der Tastatur reinschleichen oder mit der Maus lange drücken damit der Hyperlink nicht ausgeführt wird.
Manuell war es ja einfach auf A1 einen Hyperlink zu legen, aber der ist ja fest, ich will ihn ja dynamisch je nach Inhalt von A1.
Könnt ihr mir da auch weiterhelfen dies zu lösen?
Danke auch an Daniel
Gruß
Reinhard

Anzeige
AW: zu benannter Zelle gehen
20.04.2008 16:23:50
Daniel
Hi
anstatt aufwendig mit den Hyperlinks rumzubasteln, erstelle doch einfach nochmal das gleich Makro für das "Worksheet_Before_Doubleclick-Event"
wenn du zur gleichen Zelle nochmal wechseln willst, dann führt du einfach einen Doppelcklick auf die Zelle A1 aus und die Benannte Zelle wird angesprungen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Cancel = True
Application.Goto Target.Value
End Sub


Beim Wechsel des Zellwertes wird dann wieder dieses Makro aktiv:


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
Application.Goto Target.Value
End Sub


Gruß, Daniel

Anzeige
Lösung Hyperlink zu benannter Zelle
20.04.2008 16:59:00
Reinhard
Hallo Daniel,
okay, guter workaround, aber ich wollte es unbedingt wissen.
Durch rumprobieren kam ich auf eine Lösung:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:="", SubAddress:= _
"Tabelle2!" & Range("A1") ', TextToDisplay:="huhu"
Application.Goto Reference:=Target.Value
End Sub


Danke dir und allen für die Bemühungen
Gruß
Reinhard

Anzeige
AW: Lösung Hyperlink zu benannter Zelle
20.04.2008 18:48:00
Gerd
Hallo Reinhard,
wenn es so geht, sollte es so ebenfalls gehen.
If Target.Address = "$A$1" Then
.....................................
.....................................
.....................................
End If
Gruß Gerd

AW: Lösung Hyperlink zu benannter Zelle
20.04.2008 18:53:56
Reinhard
Hallo Gerd,
danke für den Hinweis, er ist vollkomen richtig.
Nur, das hatte ich halt nicht dazu geschrieben, später kommen noch mehr Zellen als A1 dazu, deshalb habe ich das gleich so vorbereitet, daß der spätere Benutzer des Codes das leicht selbst auf
...Intersect(Target,Range("A1:A5"))... erweitern kann.
Gruß
Reinhard

Anzeige
AW: zu benannter Zelle gehen
20.04.2008 15:25:38
Daniel
Hi
wenn du eine Zelle selektieren willst (egal ob benannt oder nicht benannt), dann muß das Blatt, auf dem sich diese Zelle befindet, schon aktiv sein.
(bei Application.Goto ist das nicht erforderlich)
du könntest alternativ diesen Code verwenden:

Range("Apfel").Parent.Select
Range("Apfel").Select


allerdings wüsste ich nicht, was daran besser oder einfacher sein sollte als


Application.Goto "Apfel"


Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige