Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hyperlink setzen ALEX.K

Hyperlink setzen ALEX.K
02.02.2004 09:27:30
Jacob
Hallo Leute,
ich habe in diesem Code folgendes Problem :
Sobald ein Objekt mit der Beschriftung "Vormonat" gefunden wird, wird er umbenannt in "Aktuell". Dann soll dieser Objekt auch ein Hyperlink bekommen, der auf die "C:\Neu.xls" verweist. Wie geht es?
Ich danke schon im Voraus für Eure Antworten.

Public

Sub SucheButton()
Dim shp     As Shape
Dim sh      As Worksheet
Dim book    As Workbook
For Each book In Workbooks
For Each sh In book.Sheets
For Each shp In sh.Shapes
If shp.Type = msoAutoShape Then
If shp.DrawingObject.Caption = "Vormonat" Then
shp.DrawingObject.Caption = "Aktuell"
End If
End If
Next shp
Next sh
Next book
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink setzen ALEX.K
02.02.2004 09:35:01
AndreasS
Hallo,
wie so was in eine Richtung geht:
siehe 02.02.2004 07:46:22
Gruß
Andreas
AW: Hyperlink setzen ALEX.K
02.02.2004 09:43:53
Alex K.
Hallo Jacok
hier mal der Code mit Hyperlink:

Public Sub SucheButton()
Dim shp As Shape
Dim sh As Worksheet
Dim book As Workbook

For Each book In Workbooks
For Each sh In book.Sheets
For Each shp In sh.Shapes
If shp.Type = msoAutoShape Then
If shp.DrawingObject.Caption = "Vormonat" Then
shp.DrawingObject.Caption = "Aktuell"
sh.Hyperlinks.Add shp, "C:\Neu.xls"
End If
End If
Next shp
Next sh
Next book
End Sub



Anzeige
Hyperlink setzen an ALEX.K
02.02.2004 09:58:57
Jacob
Hallo Alex
ich Danke dir vom ganzen Herzen, denn so eine schnelle Antwort habe ich nicht erwartet. Es funktioniert einwandfrei. Vielleicht kannst du mir noch meine letzte Frage beantworten
Sobald ich dieses Makro nicht von der aktuellen Datei starte, funktioniert es nicht d.H. ich habe eine offene Datei (start.xls) mit einem Autoshape, dem das Makro zugeordnet ist. Dieses Makro habe ich um einem Aufruf einer anderen Datei ergänzt. In der Datei die geöffnet wird, soll es eben nach dem Autoshape "Vormonat" gesucht werden soll, was aber nicht funktioniert. Hängt es mit der Start.xls, die ebenfalls offen ist und ein Autoshape besitzt ?.
Danke für deine Mühe Jacob
Anzeige
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:02:54
Alex K.
Hallo Jakob,
mein Makro durchsucht alle offenen Arbeitsmappen. Wenn du aber die Datei erste NACH der Durchsuchung aufrufst, kann es nicht mehr funktionieren. Also der Aufruf der DAtei muss VOR

For Each book In Workbooks

erfolgen.
Wenn dass nicht klappt, dann stell mal das komplette Makro ein.
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:12:10
Jacob
Hallo Alex
es ist sehr nett von dir dass du dich damit befasst. Ich bin der Meinung ich öffne die Datei vor der ganzen Prozedur, aber es will einfach nicht. Was mache ich falsch ?

Sub Sichern()
Dim AlterName, Neuername
Dim Button   As Shape
Dim Sh       As Worksheet
Dim Book     As Workbook
Dim Datei    As String
Datei = "c:\Excel\Vormonat"
On Error GoTo Meldung
Monat = Month(Now)
If Day(Now) - 15 <= 10 Then
Monat = Monat - 1
End If
If Monat - 2 < 1 Then
Archivmonat = Monat - 2 + 12
Archivjahr = Year(Now) - 1
Else
Archivmonat = Monat - 2
Archivjahr = Year(Now)
End If
Archivname = "Stand_" & Archivmonat & "_" & Archivjahr & ".xls"
FileCopy "c:\excel\aktuell.xls", "c:\excel\Aktuell_alt.xls"
AlterName = "c:\excel\Vormonat.xls": Neuername = "c:\Excel\" & Archivname
Name AlterName As Neuername
AlterName = "c:\Excel\Aktuell_alt.xls": Neuername = "c:\Excel\Vormonat.xls"
Name AlterName As Neuername
Workbooks.Open Filename:=Datei
For Each Book In Workbooks
For Each Sh In Book.Sheets
For Each Button In Sh.Shapes
If Button.Type = msoAutoShape Then
If Button.DrawingObject.Caption = "Vormonat" Then
Button.DrawingObject.Caption = "Aktuell"
Sh.Hyperlinks.Add Button, "C:\Neu.xls"
End If
End If
Next Button
Next Sh
Next Book
Workbooks("c:\excel\vormonat.xls").Close SaveChanges:=True
Exit Sub
Meldung:
titel1 = "Fehler"
Mel0 = "Sie haben die Datei bereits einmal gesichert."
antwort = MsgBox(Mel0 + Chr(13), vbOKOnly, titel1)
End Sub

Anzeige
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:27:12
Alex K.
Hallo Jakob,
der Fehler liegt in der Zeile

Workbooks("c:\excel\vormonat.xls").Close SaveChanges:=True

Auf eine Arbeitsmappe wird NIE mit Pfad- und Dateinamen referenziert. Sondern nur mit dem Dateinamen.
Also

Workbooks("vormonat.xls").Close SaveChanges:=True

alternativ kannst du auch

ActiveWorkbook.Close SaveChanges:=True

verwenden.
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:37:08
Jacob
Hallo Alex
ich habe die Zeile entsprechend geändert aber es will nicht funktionieren. Zu dieser Zeile kommt es gar nicht sondern es bricht beim ertmaligen Aufruf von
If Button.DrawingObject.Caption = "Vormonat" Then ab.
Jacob
Anzeige
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:43:20
Jacob
Hallo Alex
sorry mein Fehler, es funktioniert wieder so wie es soll. Ich hatte da noch eine Kleinigkeit vergessen. Ich möchte mich bei dir noch Mal bedanken, Du hast mir sehr geholfen.
Viele Grüße
Jacob
AW: Hyperlink setzen an ALEX.K
02.02.2004 10:52:38
Alex K.
Hallo Jakob,
du hast schon recht, wenn das AutoShape keine Bezeichnung hat, dann kommt ein Fehler. Hier mal der verbesserte Code mit Fehlerabfrage. Du kannst den Code

For Each Book In Workbooks
For Each Sh In Book.Sheets
For Each Button In Sh.Shapes
If Button.Type = msoAutoShape Then
If Button.DrawingObject.Caption = "Vormonat" Then
Button.DrawingObject.Caption = "Aktuell"
Sh.Hyperlinks.Add Button, "C:\Neu.xls"
End If
End If
Next Button
Next Sh
Next Book

gegen diesen hier austauschen:

On Error Resume Next
For Each Book In Workbooks
For Each Sh In Book.Sheets
For Each Button In Sh.Shapes
If Button.Type = msoAutoShape Then
If Button.DrawingObject.Caption = "Vormonat" Then
If Err.Number = 0 Then
Button.DrawingObject.Caption = "Aktuell"
Sh.Hyperlinks.Add Button, "C:\Neu.xls"
Else
Err.Clear
End If
End If
End If
Next Button
Next Sh
Next Book

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige