Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Automatsich Tabelle in Formel zeigen | Herbers Excel-Forum


Betrifft: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 20.08.2012 16:25:18

Hallo Excel-Profis,

ich habe mal wieder ein Problem für Spezialisten:

In meiner Tabelle habe ich in vielen Zellen Werte aus anderen Tabellen stehen (insges. rund 100 Tabellen).

Wenn ich jetzt den Wert in einer Zelle sehe, möchte ich per Doppellick in die Tabelle (und möglichst die Zieladresse) springen die in der Zelle ausgewertet wird.

Beispiel: In Tabelle1 Zelle A5 steht +Tabelle10!A10 - wenn ich dann einen Doppelkick auf Tabelle1 Zelle A5 mache sollte sich Tabelle10 mit Zelle A10 öffnen.

Toll wäre es natürlich, wenn die Funktion/Makro auch für andere Dateien gehen würde.

Geht das bzw. hat jemand eine Idee wie mal so etwas realisieren kann?

Vielen Dank und viele Grüße Lutz

  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Josef Ehrensberger
Geschrieben am: 20.08.2012 16:51:00


Hallo Lutz,

nur für einfache Verknüpfungen ala "Tabelle10!A10" oder soll das auch in Funktionen funktionieren?




« Gruß Sepp »



  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 20.08.2012 17:16:53

Hallo Sepp,

in diesem Fall sind es wirklich nur einfache Verknüpfungen.

Funktionen wäre natürlich Klasse aber das ist sicher ungleich schwieriger?!

Viele Grüße Lutz


  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Josef Ehrensberger
Geschrieben am: 20.08.2012 17:25:16


Hallo Lutz,

für einfache Verknüpfungen genügt das.

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  Dim strRef As String, objPre As Object
  
  Cancel = True
  
  On Error GoTo ErrExit
  
  If Target.HasFormula Then
    strRef = Replace(Replace(Replace(Target.Formula, "=", ""), "+", ""), "-", "")
    Application.Goto Range(strRef)
  End If
  
  Exit Sub
  
  ErrExit:
  MsgBox "Kein Verknüpfungsziel gefunden!", vbInformation, "Hinweis"
End Sub




Für Funktionen würde ich auf die eingebauten Mechanismen zurückgreifen.

Spur zum Vorgänger/Nachfolger und auf den Pfeil klicken, dann kann man das Ziel auswählen.




« Gruß Sepp »



  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 20.08.2012 17:45:17

Hallo Sepp - geht wie verrückt wenn man es in das Modul der Mappe kopiert.

Noch mal eine Frage; was wäre der Unterschied wenn man das auch zu externen Dateien so machen möchte? (Der Code öffnet das in der gleichen Mappe wunderbar).


Und wie Du weißt ist das Leben ja immer unfreundlich - in einigen Zellen habe ich zwar nur eine einfache Zellreferenz stehen aber am Ende dann noch /1000; bekommt man das auch hin? Wahrscheinlich noch replace /1000 durch nichts aber geht das noch in der Codezeile?

In jedem Fall aber schon mal vielen lieben Dank.

Viele Grüße Lutz


  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Josef Ehrensberger
Geschrieben am: 20.08.2012 18:11:32


Hallo Lutz,

dann so.

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  Dim strRef As String, strFile As String, objWB As Workbook
  
  Cancel = True
  
  On Error GoTo ErrExit
  
  If Target.HasFormula Then
    strRef = Split(Replace(Replace(Replace(Target.Formula, "=", ""), "+", ""), "-", ""), "/")(0)
    If InStr(1, strRef, "]") Then
      strFile = Replace(Replace(Split(strRef, "]")(0), "[", ""), "'", "")
      strRef = Replace(Split(strRef, "]")(1), "'", "")
      Set objWB = Workbooks.Open(strFile)
      Application.Goto objWB.Sheets(Split(strRef, "!")(0)).Range(Split(strRef, "!")(1))
    Else
      Application.Goto Range(strRef)
    End If
  End If
  
  Exit Sub
  
  ErrExit:
  MsgBox "Kein Verknüpfungsziel gefunden!", vbInformation, "Hinweis"
End Sub






« Gruß Sepp »



  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 21.08.2012 09:30:04

Hallo Sepp,

sorry bin jetzt erst wieder am Arbeitsplatz...

Vielen Tausend Dank - ich bin schwer beeindruckt - es geht mit /1000 und auch auf eine andere Mappe!

Er öffnet sogar die Mappe wenn die geschlossen ist!!

Echt Wahnsinn, noch mal vielen Dank - die Funktion sollte Excel mal im Standard einbauen!

Liebe Grüße und noch einen schönen Tag für Dich - Lutz


  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 21.08.2012 09:30:05

Hallo Sepp,

sorry bin jetzt erst wieder am Arbeitsplatz...

Vielen Tausend Dank - ich bin schwer beeindruckt - es geht mit /1000 und auch auf eine andere Mappe!

Er öffnet sogar die Mappe wenn die geschlossen ist!!

Echt Wahnsinn, noch mal vielen Dank - die Funktion sollte Excel mal im Standard einbauen!

Liebe Grüße und noch einen schönen Tag für Dich - Lutz


  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 21.08.2012 11:55:26

Hallo Sepp (oder alle anderen Spezialisten);

mit

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel  _
As Boolean)
  Dim strRef As String, strFile As String, objWB As Workbook
  
  Cancel = True
  
  On Error GoTo ErrExit
  
  If Target.HasFormula Then
    strRef = Split(Replace(Replace(Replace(Target.Formula, "=", ""), "+", ""), "-", ""), "/")(0) _

    If InStr(1, strRef, "]") Then
      strFile = Replace(Replace(Split(strRef, "]")(0), "[", ""), "'", "")
      strRef = Replace(Split(strRef, "]")(1), "'", "")
      Set objWB = Workbooks.Open(strFile)
      Application.Goto objWB.Sheets(Split(strRef, "!")(0)).Range(Split(strRef, "!")(1))
    Else
      Application.Goto Range(strRef)
    End If
  End If
  
  Exit Sub
  
ErrExit:
  MsgBox "Kein Verknüpfungsziel gefunden!", vbInformation, "Hinweis"
End Sub
Geht das ganz toll aber nur wenn die Datei in der sich der Bezug befindet noch nicht geöffnet ist. Wenn die Datei schon offen ist bricht er ab.

Kann man das irgendwie noch ergänzen dass es auch bei schon geöffneter Verknüpfungsdatei funktioniert?

Vielen Dank und viele Grüße Lutz


  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Josef Ehrensberger
Geschrieben am: 21.08.2012 12:26:03


Hallo Lutz,

ungetestet!

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  Dim strRef As String, strFile As String, objWB As Workbook, objOpen As Workbook
  
  
  Cancel = True
  
  On Error GoTo ErrExit
  
  If Target.HasFormula Then
    strRef = Split(Replace(Replace(Replace(Target.Formula, "=", ""), "+", ""), "-", ""), "/")(0)
    If InStr(1, strRef, "]") Then
      strFile = Replace(Replace(Split(strRef, "]")(0), "[", ""), "'", "")
      strRef = Replace(Split(strRef, "]")(1), "'", "")
      For Each objOpen In Application.Workbooks
        If objOpen.FullName = strFile Then Set objWB = objOpen: Exit For
      Next
      If objWB Is Nothing Then Set objWB = Workbooks.Open(strFile)
      Application.Goto objWB.Sheets(Split(strRef, "!")(0)).Range(Split(strRef, "!")(1))
    Else
      Application.Goto Range(strRef)
    End If
  End If
  
  Exit Sub
  
  ErrExit:
  MsgBox "Kein Verknüpfungsziel gefunden!", vbInformation, "Hinweis"
End Sub






« Gruß Sepp »



  

Betrifft: AW: Automatsich Tabelle in Formel zeigen von: Lutz
Geschrieben am: 21.08.2012 12:42:53

Hallo Sepp,

geht wunderbar - anscheindend brauchst Du nicht mal testen: Respekt!

Vielen Dank und viele Grüße Lutz


Beiträge aus den Excel-Beispielen zum Thema "Automatsich Tabelle in Formel zeigen"