Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
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
Inhaltsverzeichnis

VBA - Hyperlink Pfad ändern

VBA - Hyperlink Pfad ändern
Rouven
Hi,
schon das nächste Problem:
Ich möchte in einer Datei Hyperlinks ändern - der Pfad hat sich verschoben. Das klappt soweit auch einigermaßen - 4 Fragen treten auf, um es zu perfektionieren. Hier erstmal der Code:
--------------------------------

Sub Hyperlink()
Dim sHyp As Hyperlink
Dim oldAddress As String
Dim newAddress As String
'Anpassen !!!
oldAddress = "..\..\Bresser\Anwendungsdaten\"
newAddress = "N:\Customer Data\Test\"
For Each sHyp In ActiveSheet.Hyperlinks
If InStr(1, sHyp.Address, oldAddress) Then
sHyp.Address = Mid(sHyp.Address, 1, InStr(1, sHyp.Address, oldAddress) - 1) &  _
newAddress & Mid(sHyp.Address, InStr(1, sHyp.Address, oldAddress) + Len(oldAddress))
sHyp.TextToDisplay = sHyp.Address
End If
Next
End Sub

------------------------------
1 Frage:
Kann man es auch so einrichten, dass man bei oldaddress nur das ende nimmt - d.h. ich möchte eine stelle suchen und egal wie die ordnerstruktur davor aussieht soll er es durchführen. Wie z.B.
oldAddress = " *anwendungsdaten\ "
2 Frage:
Kann man das auch mit einer "wenn Abfrage" kombinieren ? soll heißen - er soll es nur so ändern, wenn z.B. ein Ordner namens "Tisch" enthalten ist - wenn er "Stuhl" heißt soll er es in dieses Format ändern ?
3 Frage:
Der Name des Hyperlinks wird umbenannt - wie und wo kann man das ändern ?
4 Frage:
Wenn eine Zeile ohne Hyperlinks dazwischen ist stoppt das Makro - was muss man machen, damit er es für eine Spalte fortlaufend durchführt ?
Viele viele Fragen - ich weiß, aber an diesem Punkt komm ich allein nicht weiter. Ist meine erste Makro-Programmierung.
Vielen Dank im Voraus
Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Hyperlink Pfad ändern
08.09.2012 13:32:12
Tino
Hallo,
hier mal ein Beispiel wie ich es verstanden habe.
Keine Ahnung ob ich Deine Fragen richtig verstanden habe.
Erst wird der reale Pfad ermittelt also ohne "..\...\"
Danach wird der Pfad von der Datei getrennt und jeweils in einer Variablen abgelegt.
Dann wird der rechte Bereich geprüft ob dieser oldAddress heißt.
Ist diese Bedingung erfüllt wird geprüft ob der Ordner Stuhl oder Tisch enthalten ist und
Entsprechend wird zu dem Dateinamen der Pfad für Tisch oder Stuhl angefügt.
Private Declare Function GetFullPathName Lib "kernel32.dll" Alias _
"GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, _
ByVal lpBuffer As String, ByVal lpFilePart As String) As Long


Sub Hyperlink()
Dim sHyp As Hyperlink
Dim oldAddress As String, newAddress As String
Dim newTischAddress As String, newStuhlAddress As String
Dim strFullPath$, strPath$, strFileName$

'Anpassen !!! 
oldAddress = "\Bresser\Anwendungsdaten\"
newTischAddress = "N:\Customer Data\Tisch\"
newStuhlAddress = "N:\Customer Data\Stuhl\"

For Each sHyp In ActiveSheet.Hyperlinks
    strFullPath = Space(255&)
    GetFullPathName sHyp.Address, 255&, strFullPath, vbNullString
    strFullPath = Left$(strFullPath, InStr(strFullPath, Chr(0)) - 1)
    strPath = Mid$(strFullPath, 1, InStrRev(strFullPath, "\"))
    strFileName = Right$(strFullPath, Len(strFullPath) - Len(strPath))

    If Right$(strPath, Len(oldAddress)) = oldAddress Then 'rechten Bereich mit oldAddress prüfen 
        If InStr(strPath, "\Stuhl\") > 0 Then 'wenn Ordner Stuhl 
            sHyp.Address = newStuhlAddress & strFileName
        ElseIf InStr(strPath, "\Tisch\") > 0 Then 'wenn Ordner Tisch 
            sHyp.Address = newTischAddress & strFileName
        End If
    End If

Next
End Sub
Gruß Tino

Anzeige
AW: VBA - Hyperlink Pfad ändern
10.09.2012 08:52:55
Rouven
Hi Tino,
danke für deine Mühe, aber ich bekomm das damit nicht geregelt.
Ich würde gern dann einfach meinen alten Code nehmen und dort 2 Sachen ändern:
1.) Er soll das Makro komplett für Spalte R anwenden, auch wenn dazwischen mal eine "Änderung" nicht möglich ist, wegen z.B. leerer Zelle
2.) Das ist noch das wichtigste: er soll den alten Hyperlink namen beibehalten
Vielen Dank
Grüße
Rouven

AW: VBA - Hyperlink Pfad ändern
10.09.2012 11:05:00
Rouven
alternativ zum "Namen beibehalten" wäre ein Befehl, den Namen aus dem Text der Spalten A (Luft), B (Gewehr) und C (Patrone) zu generieren - z.B. Luft Gewehr Patrone. (was anderes fielt mir gerade nicht ein - sorry
Der Name sollte also je mit Leerzeichen dazwischen aufgebaut sein und sich immer innerhalb der Spalte auf die Zeile beziehen, in der auch der hyperlink steht.

Anzeige
AW: VBA - Hyperlink Pfad ändern
10.09.2012 11:17:03
Rouven
wieder ich - den befehl zum namen aus 3 spalten habe ich - nur wie kann ich den bei VBA einsetzen - damit der hyperlink so formatiert wird.
=VERKETTEN(;B3; " ";C3;" ";D3)
Grüße

AW: VBA - Hyperlink Pfad ändern
13.09.2012 13:01:36
UweD
Hallo
so z.B.
Var = [B3] & " " & [C3] & " " & [D3]
Gruß UweD

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige