Bedingung in einem Link

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Bedingung in einem Link
von: Wolfi
Geschrieben am: 24.11.2003 14:50:28

Hallo bräuchte mal wieder Eure Hilfe:

ich möchte von einem Tabellenblatt mit einem Link in ein anderes Tabellenblatt verzweigen. Das geht ja Siehe Beispieldatei: https://www.herber.de/bbs/user/2132.xls

Allerdings soll immer zu der Zelle gesprungen werden wo das aktuelle Datum drin steht. Geht das ?

Gruß und Danke

Bild


Betrifft: AW: Bedingung in einem Link
von: Alyssia Mc Kay
Geschrieben am: 24.11.2003 15:59:41

Hi Wolfi

Das mit dem variablen Hyperlink wird etwas komplizierter,
wohl auch machbar, doch einfacher ist es mit VBA.

Hab dein File angepasst.

https://www.herber.de/bbs/user/2134.xls

Hier noch der Code:


Sub GeheZuHeute()
Worksheets("Tabelle2").Activate
ActiveSheet.UsedRange.Select
For Each Zelle In Selection
If Zelle.Value = Date Then
' MsgBox "Gefunden"
Zeile = Zelle.Row
Spalte = Zelle.Column
Cells(Zeile, Spalte).Select
Exit For
End If
Next
'MsgBox "Heute"
End Sub


Hoffe du kannst was anfangen damit.

regards Alyssia


Bild


Betrifft: AW: Bedingung in einem Link
von: Wolfi
Geschrieben am: 24.11.2003 16:31:02

Hi Alyssia,

Danke. Ich glaub damit kann ich was anfangen.

Gruß Wolfi


Bild


Betrifft: AW: Bedingung in einem Link
von: Reinhard
Geschrieben am: 24.11.2003 17:28:22

Hi Wolfi,
der erste Code muss in "DieseArbeitsmappe"
(Mit Alt+F11 in den Editor wechseln, Doppelklick auf DieseArbeitsmappe).
Mittels des Makros wird bei jeder Öffnung der Arbeitsmappe in Tabelle2 automatisch der Name "DieserTag" erst gelöscht, dann an die Zelle die das aktuelle Datum enthält neu vergeben.
Dadurch kannst du beim HyperlinkEinfügen auf diesen Namen verweisen. Den Hyperlink kannst du manuell eingeben, oder benutze das zweite Makro, es fügt den Hyperlink in die aktuelle Zelle ein.
Gruß
Reinhard


Private Sub Workbook_Open()
On Error Resume Next 'gibt sonst Fehler wenn der Name "DieserTag" nicht existiert
ActiveWorkbook.Names("DieserTag").Delete
For i = 1 To 256
    If Worksheets("Tabelle2").Cells(2, i) = Date Then
        ActiveWorkbook.Names.Add Name:="DieserTag", RefersToR1C1:="=Tabelle2!R2C" & i
    End If
Next i
End Sub



Sub Hyperlinkeinrichten()
ActiveCell.Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="DieserTag"
Selection.Hyperlinks(1).TextToDisplay = "gehezu"
End Sub



Bild


Betrifft: AW: Bedingung in einem Link
von: Wolfi
Geschrieben am: 24.11.2003 20:29:00

Hallo Reinhard,

hab gerade die Tabellen angepasst, aber irgendwie klappt das nicht, bekomme immer deb Fehle falscher Bezug. (Bin leider noch nicht so vertraut mit VBA)

https://www.herber.de/bbs/user/2137.xls

Gruß Wolfi


Bild


Betrifft: AW: Bedingung in einem Link
von: Reinhard
Geschrieben am: 24.11.2003 22:40:17

Hallo Wolfi,
schau dir https://www.herber.de/bbs/user/2142.xls an, gehe dort auf Tab1 und klicke auf den Button, bei mir kommt da kein Fehler.
Gruß
Reinhard


Bild


Betrifft: AW: Bedingung in einem Link
von: Wolfi
Geschrieben am: 25.11.2003 11:39:03

Hallo Reinhard,

muß leider nochmals stören.

aber das klappt bei mir nur zum Teil. Die von dir erstellte Tabelle geht. Aber wenn ich das auf eine andere Exceltabelle anwenden will, mittels kopieren etc. klappt das nicht.
Ich bekomme beim erstellen des links über das Makro immer folgenden Fehler:Objekt unterstützt die Eigenschaft oder Methode. Es liegt an der Zeile Selection.Hyperlinks(1).TextToDisplay = "gehezu" im Link Macro.
Und beim Ausführen kommt dann Bezug ist ungültig.
Ich weiß leider nicht wie ich das beheben kann.

Gru Wolfi


https://www.herber.de/bbs/user/2149.xls


Bild


Betrifft: kein Problem
von: Reinhard
Geschrieben am: 25.11.2003 19:09:02

Hi Wolfi,
deine Datumsangaben stehen ja jetzt in Zeile 7 also brauchst du nur das nachstehende Makro, das ja schon in DieseArbeitsmappe steht, anzupassen wie nachstehend gezeigt.
Gruß
Reinhard


Private Sub Workbook_Open()
On Error Resume Next 'gibt sonst Fehler wenn der Name "DieserTag" nicht existiert
ActiveWorkbook.Names("DieserTag").Delete
For i = 1 To 256
    If Worksheets("GLSD").Cells(7, i) = Date Then
        ActiveWorkbook.Names.Add Name:="DieserTag", RefersToR1C1:="=GLSD!R7C" & i
    End If
Next i
End Sub



Bild


Betrifft: AW: kein Problem
von: Wolfi
Geschrieben am: 26.11.2003 08:58:56

Hallo,

das versteh ich nicht.

1. klar den Bezug muß ich anpassen, hab ich jetzt auch gemacht.
2. Es kommt aber immer noch der Fehler Bezug ist ungültig.
3. Wenn ich allerdings über Alt+F11 den VBA Code von dieser Arbeitsmappe aufrufe und dann Sub/User Form ausführen betätige und dann wieder den link aktiviere klappt es. Schließ ich dann die Arbeitsmappe wieder und öffne sie erneut: wieder der Fehler.
4. Der Fehler beim erstellen des Links über das Macro ist auch noch da. Es wird zwar der Link erstellt allerdings wird der Name des links immer mit DieserTag statt mit, wie im Macro definiert gehenzu, erstellt. Hat das vielleicht was mit der Excel-Version zu tun?

Gruß Wolfi


Bild


Betrifft: AW: kein Problem
von: Reinhard
Geschrieben am: 26.11.2003 12:49:40

Hallo Wolfi,
anbei noch die letzte Version deiner Datei:
https://www.herber.de/bbs/user/2176.xls
Da funktioniert es problemlos
Wahrscheinlich hast du Recht, es muss an der Version von Excel liegen dass es nicht klappt. Ich habe XL2000, also Xl 9.0 auf Win98.
Unklar ist mir allerdings, warum der folgende Code:


Private Sub Workbook_Open()
On Error Resume Next 'gibt sonst Fehler wenn der Name "DieserTag" nicht existiert
Worksheets("GLSD").Range("DieserTag").Interior.ColorIndex = 36
ActiveWorkbook.Names("DieserTag").Delete
For i = 1 To 256
    If Worksheets("GLSD").Cells(7, i) = Date Then
        ActiveWorkbook.Names.Add Name:="DieserTag", RefersToR1C1:="=GLSD!R7C" & i
    End If
Next i
Worksheets("GLSD").Range("DieserTag").Interior.ColorIndex = 2
End Sub


manuell per F5 (Sub ausführen) ausgelöst, funktioniert, aber nicht beim Öffnen der Arbeitsmappe.
Beim Speichern der Arbeitsmappe klickst du auf 'Aktualisieren'?

Und der andere Code,
Sub Hyperlinkeinrichten()
ActiveCell.Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="DieserTag"
Selection.Hyperlinks(1).TextToDisplay = "gehezu"
End Sub


klappt bei dir nicht. Du kannst ja mal ein Makro aufzeichnen wenn du den Hyperlinknamen "Gehezu" manuell für den Hyperlink zu "DieserTag" einträgst.

Ich habe irgendwo noch Office97 rumliegen, wenn ich es finde, spiel ich es mal auf, aber ohne Gewähr, da ich nicht genau weiss ob ich die CD noch habe.
Gruß
Reinhard


Bild


Betrifft: AW: kein Problem
von: Wolfi
Geschrieben am: 26.11.2003 13:37:58

Halo Reinhard,

ich glaub ich hab das Problem, daran hab ich noch nicht gedacht:

und zwar starte ich die Excelmappe nicht aus Excel selbst heraus, sonder aus SAP-BW 2.1 (Business Warehouse)und da werden noch weitere VBA Projekte angezeigt.
Ich hab dann die Mappe lokal abgespeichert und siehe da es klappt. (Allerdings auch nicht den link mit dem Macro erstellen, aber das ist ja nicht so tragisch).

Allerdings weiß ich nicht wie ich das jetzt lösen soll.

Gru Wolfi


Bild


Betrifft: AW: kein Problem
von: Wolfi
Geschrieben am: 26.11.2003 14:48:43

Hi,

hab jetzt ne Lösung aber verstehen tu ich's nett.

Statt Private Sub Workbook_Open()hab ich
Private Sub Workbook_SheetActivate(ByVal Sh As Object)genommen dann geht es.

Gruß Wolfi


Bild


Betrifft: AW: kein Problem
von: Reinhard
Geschrieben am: 26.11.2003 17:16:41

Hi Wolfi,
kannst ja mal in beide Subs sowas wie
MsgBox "WB-Open"
bzw. MsgBox "WB-SheetActivate"
einbauen, ich mutmaße dass Workbooks_open nicht ausgeführt wird.
Wenn es ausgeführt wird könnte man ja am ersten Befehl von Workbooks_open mit F9 (im Editor) einen Haltepunkt setzen und dann mittels F8 das Makro weiterverfolgen...
Gruß
Reinhard


Bild


Betrifft: AW: kein Problem
von: Wolfi
Geschrieben am: 01.12.2003 10:25:07

Hallo Reinhard,

komme leider erst jetzt wieder dazu an diesem Projekt weiter zu arbeiten.
Im Prinzip reicht mir das über Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Ich würde jetzt aber noch eine Fehlermeldung ausgeben können, falls es kein Aktuelles Datum gibt. Weiß aber leider nicht wie ich das machen muss.

Gruß Wolfi


Bild

Beiträge aus den Excel-Beispielen zum Thema " Bedingung in einem Link"