Hallo,
Ich erstelle in Excel 2003 eine Inventur-Liste.
Die erste Seite ist die Übersichtsseite, auf der alle div. Abteilungen zusammengefasst sind.
z.B. Lager 0,00 EUR
z.B. Büro 0,00 EUR
usw.
Lager ist mit einem Hyperlink auf das Tabellenblatt Lager versehen. Auf dem Tabellenblattblatt Lager ist dann wieder ein Hyperlink auf die Übersichtsseite eingerichtet (damit man hin und her springen kann).
Soweit funktioniert auch alles so wie ich es möchte :o).
Das Problem welches ich jetzt habe ist folgendes. Da ich ja diese Tabelle auch für nächstes Jahr benötige, habe ich einfach die Datei für 2008 abgepeichert (Datei-> Speichern unter....-> Inventur2008).
Nun habe ich aber das Problem, dass alle von mir gesetzten Hyperlinks sich auf die Datei Inventur2007 beziehen, heißt also, ich muss alle Links per Hand auf 2008 ändern.
Gibt es dazu eine möglichkeit, dass ich dies einfacher machen kann? Evtl. die Links diesem Blatt fest zuordnen kann?
Vielen Dank für Eure Hilfe
Gruß
Office - Word, Excel und Co. 9.718 Themen, 41.059 Beiträge
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