Hallo,
in der Zwischenzeit habe ich herausgefunden, dass es sich hier offensichtlich um einen MS-EXCEL Bug handelt (http://support.microsoft.com/kb/329835/de). Wann der behoben wird, steht in den Sternen. Daher habe ich Dir drei Makros geschrieben. Ich habe alles in Deinen File eingefuegt. Es funktioniert sehr gut. Wichtig fuer die Zukunft: Verwende in EXCEL moeglichst keine „Zellverbindungen“, da Excel dann bei Berechnungen durcheinanderkommen kann. Den korrigierten File habe ich Dir per Email zurueckgeschickt.
Ich habe Folgendes getan:
1. All Deine Hyperlinks auf den Tabellenblaettern geloescht
2. Alle Deine Zellbereiche „Ent-Verbunden“
3. In den VBA MakroMode (EXTRAS>MAKRO>VBA-Editor) gewechselt
4. Folgende 2 Makros auf Dein Hauptblatt „Inventur“ kopiert
- Worksheet_SelectionChange
- hyperlinkinput
5. Folgendes Makro auf das Blatt „Diese Arbeitsmappe“ kopiert
- Workbook_SheetSelectionChange
Und hier die Makros:
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Makro erlaubt, dass wenn eine Zelle im Bereich Range geklickt wird, der Cursor auf
' das Tabellenblatt, das den Namen des Zelltextes traegt, springt. Steht z.B. auf dem
' aktiven Blatt (=dieses Tabellenblatt) in Zelle "B6" der Wert "Austria", dann springt
' der Cursor ueber das Unterprogramm "hyperlinkinput" auf das Blatt "Austria", Zelle "A2".
' Ich habe deshalb Zelle "A2" gewaehlt, weil ich in einem weiteren Programm, das auf dem
' Blatt "Diese Arbeitsmappe" eingetragen ist, als Ruecksprungquelladresse "A1" und als
' Zieladresse "A2" verwende / martintino 2008-05-01 / EXCEL 2003 Makro
On Error GoTo errorhandling
Selection.Activate
If Not Intersect(Target, Range("b5:b200")) Is Nothing Then Call hyperlinkinput
Exit Sub
' Der Errorhandlingpart sorgt dafuer, dass beim Klicken einer Leeraddresse
' kein Fehler entsteht. Es passiert ganz einfach nichts.
errorhandling:
Exit Sub
End Sub
'--------------------------------
Private Sub hyperlinkinput()
On Error GoTo errorhandling
Dim targetsheetname As String
targetsheetname = Selection.Value
Worksheets(targetsheetname).Activate
ActiveSheet.Range("A2").Select
Exit Sub
' Der Errorhandlingpart sorgt dafuer, dass beim Klicken einer Leeraddresse
' kein Fehler entsteht. Es passiert ganz einfach nichts.
errorhandling:
Exit Sub
End Sub
'--------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target _
As Range)
On Error GoTo errorhandling
If Target.Address = "$A$1" Then
Worksheets("Inventur").Activate
ActiveSheet.Range("A2").Select
End If
Exit Sub
' Der Errorhandlingpart sorgt dafuer, dass beim Klicken einer Leeraddresse
' kein Fehler entsteht. Es passiert ganz einfach nichts.
errorhandling:
Exit Sub
End Sub
'--------------------------------
Beste Gruesse
martintino