ich habe nicht zwei Hyperlinks in der Zelle D11 sondern einen in der Zelle C11 z.Bsp. Firma 1 und eine Kopie in der Zelle D11 die auch "Firma 1" heißt und nun auf "Firma 2" umbenannt werden soll. Im weiteren Verlauf der Bearbeitung wird immer wieder die Zelle C11 - Firma 1 kopiert und muss dann umbenannt werden bis in der Range(C11:N11) die Hyperlinks Firma 1 bis Firma 12 stehen.
Ich verstehe nicht, warum der replace auch den Hyperlink in der Zelle C11 umbenennt obwohl die Variable iMax eindeutig der Wert 2 enthält.
Nach meinem Verständnis zeigt der Hyperlinks(2) eindeutig auf den zweiten Wert in Range(C11:N11) also auf D11.
Zitat:Nach meinem Verständnis zeigt der Hyperlinks(2) eindeutig auf den zweiten Wert in Range(C11:N11) also auf D11.
und woher nimmst du das "Verständnis"? Mir scheint das vielmehr falsch angenommen.
Ich habe gerade mal kurz ausprobiert: wenn ich Hyperlinks anlege, wird der Index in der Reihenfolge vergeben, in der sie angelegt werden. Das macht in sofern auch sinn, da Hyperlinks eine collection ist. Aber das ist jetzt auch nur eine Annahme von mir, ich habe es mir nicht in der Dokumentation angesehen (das solltest du tun, wenn du mit Eigenschaften Arbeitest, die du nicht kennst).
Dein "weiterer" Verlauf ist mir nicht klar geworden.
Ich verstehe nicht, wieso du nicht einfach - wie von mir vorgeschlagen - die Zelle angibst, deren Hyperlink du ansprechen möchtest.
Mir erscheint es zwar nicht als sinnvoll, aber wenn du unbedingt mit dem Bereich C11:N11 arbeiten möchteset (kann ja evtl. auch sinnvoll sein), dann kannst du die Zelle D11 ja auch so ansprechen: Range("C11:N11").Cells(2) und entsprechend ihren Hyperlink: Range("C11:N11").Cells(2).Hyperlinks(1)
Falls du mal nen Hyperlink hast, und nicht weißt, in welcher Zelle er sich befindet, kannst du das übrigens ganz einfach so rausfinden: msgbox Range("C11:N11").Hyperlinks(2).Parent.Address(0,0)
Ich denke, du müsstest eigentlich alles haben, was du benötigst, oder? Grüße, Ulrich
ausführe, dann wird bei mir nur ein Hyperlink ersetzt. Da Hyperlinks(2) auf nur einen Hyperlink verweist, kann ich nicht richtig glauben, dass deine Bilder wirklich mit der einmaligen Ausführung dieser Codezeile übereinstimmen. Ich hänge dir eine Datei an, die auf meinem Rechner das Gegenteil beweist: wenn du das Makro ausführst, dann wird bei mir nur einer der drei Hyperlinks verändert. Vielleicht kannst du mir ja auch eine Datei anhängen, die mich in Erstaunen versetzt.
Aber zurück zu deiner eigentlichen Fragestellung:
Zitat:mit folgendem Befehl möchte ich den 2ten Hyperlink in der Zeile C11:N11 anpassen.
Warum wehrst du dich gegen Range("D11").Hyperlinks(1)..... ?? Ich habe dir auch andere Alternativen genannt, die du nicht kommentiert hast.
Ich bemerke, dass ich hier genervt reagiere, denn ich habe dir bereits verschiedene Möglichekeiten genannt, wie du auf den Hyperlink der Zelle D11 zugreifen kannst, die du unkommentiert lässt und du fragst mich, ob ich weitere Ideen hätte?!
Ich antworte hier im Thread nicht mehr auf Codeschnipsel, sondern nur noch auf ausführbare Codes (komplette Makros), die ich mit Copy & Paste einfügen kann, oder Beispieldateien.
Mit welcher Excel-Version arbeitest du, ich habe Excel2007 unter Win7 laufen?
die beiden screenshots entsprechen genau dem Zustand von Hyperlinks vor und nach dem Replace!
Wenn ich dann dein Makro ausführe, dann passiert nichts. Die Zellen C11:E11 enthalten weiterhin Firma 1'A1.
Auch wenn ich nicht Alles, was du mir empfohlen hast, kommentiert habe, so habe ich es doch ausprobiert, konnte aber das gewollte Ergebnis nicht erreichen. Dies sollte keine Missachtung deiner Vorschläge sein.
Es ist mir doch auch schleierhaft warum das logisch Richtige in der Befehlszeile bei mir nicht funktioniert.
Warum wehre ich mich gegen Range("D11"). Hyperlinks(1).
In dem zugrunde liegenden Makro muss das Replace 48 mal in verschiedenen Zeilen ausgeführt werden. z.Bsp. Range("C11:N11") und Range("C48:N48") usw. Die Ausführung des Makros wird über einen Button angestoßen. Ich muss also über einen Index auf den Hyperlink zugreifen können.
Ich werde dir dann eine abgespekte Version meines Tabelle ersstellen die hoffentlich mein Problem erkennbar macht.
Die kann jedoch bis zum Wochenende dauern, da die Excel -Programmierung nicht meine Hauptaufgabe ist.
Ich arbeite mit WIN 7 und EXCEL 2010 und WIN 10 und EXCEL 2016.