Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Per Doppelklick auf Zelle eines anderen Arbeitsblatt springen

2,454 views
Skip to first unread message

Ingo Jansen

unread,
Jan 16, 2003, 6:18:51 AM1/16/03
to
Hallo,

ich habe folgendes Problem:

In Arbeitsblatt B habe ich in einigen Zellen Zahlen stehen welche ich
in einer anderen Zelle (E16) summiert habe. Im Arbeitsblatt A habe ich
mit der Formel "=B!E16" das Ergebnis der Zelle E16 auf Arbeitsblatt B
in Zelle A1 stehen.

Kann man es einstellen, dass man im Arbeitsblatt A nun z. B. per
Doppelklick auf die Zelle A1 direkt auf Zelle E16 auf Arbeitsblatt B
springt um die dort die Zusammensetzung dieser Summe anzusehen?

Vielen Dank für die Hilfe!!!

Thomas Ramel

unread,
Jan 16, 2003, 8:37:38 AM1/16/03
to
Grüezi Ingo

Ingo Jansen schrieb:


>
> In Arbeitsblatt B habe ich in einigen Zellen Zahlen stehen welche ich
> in einer anderen Zelle (E16) summiert habe. Im Arbeitsblatt A habe ich
> mit der Formel "=B!E16" das Ergebnis der Zelle E16 auf Arbeitsblatt B
> in Zelle A1 stehen.
>
> Kann man es einstellen, dass man im Arbeitsblatt A nun z. B. per
> Doppelklick auf die Zelle A1 direkt auf Zelle E16 auf Arbeitsblatt B
> springt um die dort die Zusammensetzung dieser Summe anzusehen?

Kopiere die folgende Prozedur in den Code-Teil der betreffenden Mappe(n):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.HasFormula = False Or VBA.InStr(1, Target.Formula, "!") = 0 Then
Exit Sub
Dim strZiel As Variant
strZiel = VBA.Split(Right(Target.Formula, Len(Target.Formula) - 1), "!")
Application.Goto Worksheets(strZiel(0)).Range(strZiel(1))
End Sub

und teste entsprechend.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

stefan onken

unread,
Jan 16, 2003, 8:43:48 AM1/16/03
to
hallo Ingo,
rechtsklick auf das Register der Tabelle, von wo aus du
den Doppelklick machen willst, dann linksklick auf Code
anzeigen (dadurch startet der VBA-Editor).
Dort fügst du ein:

Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
MsgBox Sheets("Tabelle2").Range("E16").Formula, _
, "Formel in E16"
End If
End Sub

Den Namen der Tabelle mußt du anpassen.
Dieser Code zeigt dir die Formel in E21 in einer
MessageBox an.

Gruß
stefan

>-----Originalnachricht-----

>.
>

Ingo Jansen

unread,
Jan 17, 2003, 1:57:49 AM1/17/03
to
Hallo Newsgroup,

vielen Dank für die beiden schnellen Antworten. Leider bin ich absolut
kein Experte mit VBA und habe prompt auch schon ein Problem:

Wenn ich auf das Tabellenblatt von dem ich abspringen möchte mit der
rechten Maustaste klicke und dann Code anzeigen anklicke öffnet sich
das VBA Fenster. Darin steht bereits folgendes:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

End Sub

Ist die genannte Prozedur davor, danach, dazwischen oder sogar
stattdessen einzufügen?

Bei meinen Versuchen bin ich weiterhin auf folgendes Problem gelaufen:

Prozedur von Thomas Ramel:

Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden....

die ersten beiden Zeilen sind gelb markiert und haben eine Pfeil am
Rand und weiterin ist in der 6. Zeile das Wort .Split blau markiert

Vielen Dank und schonmal ein schönes Wochenende!!

MfG

Ingo

Thomas Ramel

unread,
Jan 17, 2003, 2:13:52 AM1/17/03
to
Grüezi Ingo

Ingo Jansen schrieb:
>

> Wenn ich auf das Tabellenblatt von dem ich abspringen möchte mit der
> rechten Maustaste klicke und dann Code anzeigen anklicke öffnet sich
> das VBA Fenster. Darin steht bereits folgendes:
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
>
> End Sub
>
> Ist die genannte Prozedur davor, danach, dazwischen oder sogar
> stattdessen einzufügen?

In diesem Falle: stattdessen!
Lösche die Zeilen und kopiere den geposteten Code in dieses Fenster.

> Prozedur von Thomas Ramel:
>
> Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden....
>
> die ersten beiden Zeilen sind gelb markiert und haben eine Pfeil am
> Rand und weiterin ist in der 6. Zeile das Wort .Split blau markiert

Tja; hier laufen wir in einen Versionskonflikt.
Du hast leider deine Excel-Versin nicht angegeben. Ich nehme nun an, es ist
xl97. Der Befehl 'Split' steht erst seit xl97 zur Verfügung.
Ich wollte die Prozedur schon umschrieben, habs dann aber (leider) bleiben
lassen.

Hier die angepasste Version, die auch unter xl97 laufen sollte:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.HasFormula = False Or VBA.InStr(1, Target.Formula, "!") = 0 Then
Exit Sub

Dim strBlatt As String, strRange As String, intI As Integer
intI = InStr(1, Target.Formula, "!")
strBlatt = Mid(Target.Formula, 2, intI - 2)
strRange = Mid(Target.Formula, intI + 1, Len(Target.Formula))
Application.Goto Worksheets(strBlatt).Range(strRange)
End Sub

Thomas Ramel

unread,
Jan 17, 2003, 2:19:56 AM1/17/03
to
Grüezi Ingo nochmals

Thomas Ramel schrieb:


> Der Befehl 'Split' steht erst seit xl97 zur Verfügung.

Hier wollte ich latürnich xl2000 schreiben ;-)

Ingo Jansen

unread,
Jan 17, 2003, 10:07:53 AM1/17/03
to
Thomas Ramel <t.r...@mvps.org> wrote in message news:<3E27AE9C...@mvps.org>...

> Grüezi Ingo nochmals
>
> Thomas Ramel schrieb:
> > Der Befehl 'Split' steht erst seit xl97 zur Verfügung.
>
> Hier wollte ich latürnich xl2000 schreiben ;-)

Grüezi Thomas,

vielen Dank. Es gab zwar noch einen Fehler da das End If fehlte.
Konnte ich aber mit probieren rausbekommen.

Kann ich so unverschämt sein und noch nach einer Möglichkeit fragen um
von der durch Doppelklick erreichten Zelle wieder auf die
ursprüngliche Zelle zu gelangen? Und kann man beide Funktionen auf
einem Arbeitsblatt kombinieren?

Schönes Wochenende!

MfG

Ingo

Thomas Ramel

unread,
Jan 17, 2003, 12:18:43 PM1/17/03
to
Grüezi Ingo

Ingo Jansen schrieb:
>

> vielen Dank. Es gab zwar noch einen Fehler da das End If fehlte.
> Konnte ich aber mit probieren rausbekommen.

Solange 'If' und 'Then Exit Sub' in derselben Zeile stehen, kannst Du auf
'End If' verzichten. Das ist die Kurzschreibweise, die auch in der Hilfe
beschrieben wird.
Vermutlich wurde die Zeile umgebrochen und verursachte dadurch den Fehler.
Bei mir lief die Prozedur so ohne Fehler; ich habe sie dann 1:1 in den
Beitrag kopiert.

> Kann ich so unverschämt sein und noch nach einer Möglichkeit fragen um
> von der durch Doppelklick erreichten Zelle wieder auf die
> ursprüngliche Zelle zu gelangen?

Tja, das war ja zu befürchten. ;-)

*Musst* Du denn in die besagte Zelle springen, oder reicht es dir, wenn
z.B. die Formel jener Zelle in einer MessageBox ausgegeben wird?
Das könntest Du wie folgt haben:
Ersetze die Zeile 'Application.Goto....' durch die folgenden:

MsgBox "Die Formel der verknüpften Zelle lautet" & Chr(13) _
& Worksheets(strBlatt).Range(strRange).FormulaLocal

Das Zurückspringen ist nicht so einfach zu lösen, an Ideen fehlt es
allerdings nicht. Aber wenn es nicht notwendig ist, muss sich niemand 'ein
Bein ausreissen'.

Ingo Jansen

unread,
Jan 21, 2003, 4:36:03 AM1/21/03
to
Hallo Thomas,

vielen Dank für Deine Antwort! Sorry wegen dem "End If", du hattest
Recht, dass die Zeile umgebrochen war und es daher zu dem Fehler kam.

Wäre schon schön, wenn das mit dem Springen in die "Start-Zelle"
klappen würde. Ich hoffe, dass Du mich richtig verstanden hast. Ich
habe zwei, oder mehrere Arbeitsblätter. Mit Hilfe Deiner ersten
Prozedur springe ich per Doppelklick von Tabelle A auf die jeweilige
verknüpfte Zelle in Tabelle B. Mit der neuen Prozedur würde ich gerne
wieder auf die "Absprungzelle" in der Tabelle A zurück springen. Dies
erreiche ich manuell indem ich auf Extras / Dedektiv / Sprung zum
Nachfolger klicke.... Wenn das per Doppelklick zu Aufwändig ist, geht
es dann anders einfacher??

Aber bitte kein Bein ausreissen ;-))

Danke und fr. Grüße

Ingo Jansen

Thomas Ramel

unread,
Jan 21, 2003, 5:08:46 AM1/21/03
to
Grüezi Ingo

Ingo Jansen schrieb:
>

> Wäre schon schön, wenn das mit dem Springen in die "Start-Zelle"
> klappen würde. Ich hoffe, dass Du mich richtig verstanden hast. Ich
> habe zwei, oder mehrere Arbeitsblätter. Mit Hilfe Deiner ersten
> Prozedur springe ich per Doppelklick von Tabelle A auf die jeweilige
> verknüpfte Zelle in Tabelle B. Mit der neuen Prozedur würde ich gerne
> wieder auf die "Absprungzelle" in der Tabelle A zurück springen. Dies
> erreiche ich manuell indem ich auf Extras / Dedektiv / Sprung zum
> Nachfolger klicke.... Wenn das per Doppelklick zu Aufwändig ist, geht
> es dann anders einfacher??

Zeichne die Abforlge über den Detektiv per Makro-Recorder auf und weise das
Makro dem Worksheet_BeforeDoubleClick-Ereignis zu. Analog der ersten
Prozedur, einfach im anderen Tabellenblatt.
Probleme gibt es, wenn mehrere Zellen auf diese verweisen, oder die Zelle
auf demselben Tabellenblatt liegt, wie die erste.

Thomas Ramel

unread,
Jan 21, 2003, 5:54:13 AM1/21/03
to
Grüezi Ingo nochmals

Ingo Jansen schrieb:


>
> Wäre schon schön, wenn das mit dem Springen in die "Start-Zelle"
> klappen würde. Ich hoffe, dass Du mich richtig verstanden hast. Ich
> habe zwei, oder mehrere Arbeitsblätter. Mit Hilfe Deiner ersten
> Prozedur springe ich per Doppelklick von Tabelle A auf die jeweilige
> verknüpfte Zelle in Tabelle B. Mit der neuen Prozedur würde ich gerne
> wieder auf die "Absprungzelle" in der Tabelle A zurück springen.
>

> Aber bitte kein Bein ausreissen ;-))

Keine Angst, das Bein ist noch dran ;-)

Hier eine Möglickeit mit Userform:

Im Tabellenblatt

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
If Target.HasFormula = False Or VBA.InStr(1, Target.Formula, "!") = 0 Then
Exit Sub
Dim strBlatt As String, strRange As String, intI As Integer
intI = InStr(1, Target.Formula, "!")
strBlatt = Mid(Target.Formula, 2, intI - 2)
strRange = Mid(Target.Formula, intI + 1, Len(Target.Formula))

Set oldCell = Target
Application.Goto Worksheets(strBlatt).Range(strRange)
Load UserForm1
UserForm1.Show
End Sub

In ein allgemeines Modul:

Public oldCell As Range

In eine Userform mit einem Commandbutton namens CommandButton1:

Private Sub CommandButton1_Click()
Me.Hide
Unload Me
Application.Goto oldCell
Set oldCell = Nothing
End Sub

Mappe schliessen, wieder öffnen und ausprobieren.

Ingo Jansen

unread,
Jan 31, 2003, 8:09:51 AM1/31/03
to
Thomas Ramel <t.r...@mvps.org> wrote in message news:<3E2D26D5...@mvps.org>...

Hallo Thomas,

da bin ich nochmal....

habe mal versucht das ganze umzusetzen. Leider funktioniert es nicht.
Sollte da jetzt nicht ein Button erscheinen auf den ich klicken kann
um auf die verknüpfte Zelle auf dem ersten Blatt zu springen? Wenn ich
aber im VBA Editor bei dem User Form auf Testen klicke erscheint ein
Button. Wenn ich den dann jedoch drücke kommt folgende Fehlermeldung:
Laufzeitfehler '5'. Unzulässiger Prozeduraufruf oder ungültiges
Argument.

Kannst Du mir nochmal helfen?

Danke und ein schönes Wochenende!

Ingo

Thomas Ramel

unread,
Jan 31, 2003, 8:20:20 AM1/31/03
to
Grüezi Ingo

Ingo Jansen schrieb:
>>


> habe mal versucht das ganze umzusetzen. Leider funktioniert es nicht.
> Sollte da jetzt nicht ein Button erscheinen auf den ich klicken kann
> um auf die verknüpfte Zelle auf dem ersten Blatt zu springen? Wenn ich
> aber im VBA Editor bei dem User Form auf Testen klicke erscheint ein
> Button. Wenn ich den dann jedoch drücke kommt folgende Fehlermeldung:
> Laufzeitfehler '5'. Unzulässiger Prozeduraufruf oder ungültiges
> Argument.

Du verwendest wie bisher den Doppelklick um zur Vorgäner-Zelle zu springen.
Wenn du bei der Zelle angekommen bist erschient der Button.
Beim Klick darauf springst Du zur Ausgangszelle zurück.

Ingo Jansen

unread,
Feb 3, 2003, 5:15:59 AM2/3/03
to
Hallo Thomas,


> Du verwendest wie bisher den Doppelklick um zur Vorgäner-Zelle zu springen.
> Wenn du bei der Zelle angekommen bist erschient der Button.
> Beim Klick darauf springst Du zur Ausgangszelle zurück.

das funktioniert bei mir nicht! Leider! Ich glaube wir sollten das
Thema abschliessen. Vielen Dank für Deine Hilfe!!!!

MfG

Ingo

T.Ramel

unread,
Feb 3, 2003, 5:34:45 AM2/3/03
to
Grüezi Ingo

Ingo Jansen schrieb:

Welche Excel-Versin verwendest Du?
Bei mir mit xl2000 funktionerte es ohne probleme, solange der Sprung auf
ein anderes Tabellenblatt führt.
Es *muss* gehen!


Hier der Link zu einer Demo-Mappe:

http://users.quick-line.ch/ramel/Demo-Daten/SPRUNG_ZUM_VORG%c4NGER_UND_R%dcCKSPRUNG.xls

Ingo Jansen

unread,
Feb 5, 2003, 8:18:08 AM2/5/03
to
Hallo Thomas,

leider habe ich Excel 97!!

MfG

Ingo

Thomas Ramel

unread,
Feb 5, 2003, 8:22:28 AM2/5/03
to
Grüezi Ingo

Ingo Jansen schrieb:


> Hallo Thomas,
>
> leider habe ich Excel 97!!

Kannst Du genau(er) einkreisen, wo es hängt?

Ingo Jansen

unread,
Feb 6, 2003, 11:18:33 AM2/6/03
to
Grüezi Thomas,

> Grüezi Ingo
>
> Ingo Jansen schrieb:
> > Hallo Thomas,
> >
> > leider habe ich Excel 97!!
>
> Kannst Du genau(er) einkreisen, wo es hängt?

hatte schonmal versucht es zu beschreiben...

> habe mal versucht das ganze umzusetzen. Leider funktioniert es nicht.
> Sollte da jetzt nicht ein Button erscheinen auf den ich klicken kann
> um auf die verknüpfte Zelle auf dem ersten Blatt zu springen? Wenn ich
> aber im VBA Editor bei dem User Form auf Testen klicke erscheint ein
> Button. Wenn ich den dann jedoch drücke kommt folgende Fehlermeldung:
> Laufzeitfehler '5'. Unzulässiger Prozeduraufruf oder ungültiges
> Argument.

Hilft das weiter??

Danke und Gruß

Ingo

0 new messages