Link auf Register per VBA

20/01/2010 - 16:20 von Beck, Alwin | Report spam
Hallo,
ich importiere beim Öffnen von Excel verschiedene CSV-Datein.
Jede CSV Datei wird dann in ein neues Register importiert.

Da es sich um einige Register handelt und ich nicht Register für
Register
blàttern muss, möchte ich in ein Übersichtsregister die Registernamen
einfügen
und auf diese dann einen Link setzen - dieses per VBA, da der Import
mehrmals
am Tag làuft.

Wie geht das per VBA ?

Danke
Gruß
Albe
 

Lesen sie die antworten

#1 Andreas Killer
20/01/2010 - 19:04 | Warnen spam
Beck, Alwin schrieb:

Da es sich um einige Register handelt und ich nicht Register für Register
blàttern muss, möchte ich in ein Übersichtsregister die Registernamen
einfügen


...
Wie geht das per VBA ?


Dafür gibt es verschiedene Möglichkeiten, die einfachste ist IMHO ein
Blatt zu erstellen und dort pro Tabelle eine Zelle mit einen Hyperlink
zu plazieren.

Der "Haken" dabei ist das ein Hyperlink auch immer auf eine Zelle
verweisen muss, d.h. klickst Du drauf landest Du z.B. immer in der
TabelleXY!A1

Dafür funktioniert das ganze dann ohne Makro's. Ein Beispiel anbei.

Wenn Du in der jeweiligen Tabelle die gerade aktive Zelle beibehalten
möchtest, dann müsstest Du eine einfache Liste (ohne Hyperlinks)
erstellen und im Workbook_SheetSelectionChange-Ereignis dann die
angeklickte Zelle auswerten. Wenn Du das lieber möchtest bitte nochmal
nachfragen.

Andreas.

Public Const OurName = "Übersicht"

Sub ÜbersichtHyperLink()
Dim WS As Worksheet, OurSheet As Worksheet
Dim Antwort As VbMsgBoxResult
Dim Y As Long
'Mal kucken ob es schon eine Übersicht gibt
On Error GoTo AddIt
Set OurSheet = Sheets(OurName)
'Wenn wir hierhin kommen ist es da
Antwort = MsgBox("Tabelle '" & OurName & "' schon vorhanden. " & _
"Neu erstellen?", vbOKCancel)
If Antwort = vbCancel Then Exit Sub
'Okay, weg mit dem Ding
Application.DisplayAlerts = False
OurSheet.Delete
Application.DisplayAlerts = True

AddIt:
'Neues Blatt "ganz links" erstellen
Set OurSheet = Sheets.Add(Before:=Sheets(1))
OurSheet.Name = OurName

'Inhaltverzeichnis erstellen
Y = 1
For Each WS In Sheets
'Sind wir es selber?
If WS.Name <> OurSheet.Name Then
OurSheet.Hyperlinks.Add _
Anchor:=OurSheet.Cells(Y, 1), _
Address:="", _
SubAddress:=WS.Cells(1, 1).Address(External:=True), _
ScreenTip:= _
"Klicken um auf " & WS.Name & " zu wechseln", _
TextToDisplay:=WS.Name
Y = Y + 1
End If
Next
End Sub

Ähnliche fragen