AW: Zelleninhalt mit automatischer Verknüpf
10.03.2023 09:50:16
ChrisL
Hi
Dein Argument gegen Hyperlink (ich nehme an, du meinst die Formel), kann ich nicht so richtig nachvollziehen. Wäre aus meiner Sicht die sinnvollste Lösung, auch wenn der Link dann nicht in der gleichen Zelle steht.
Für VBA kann ich dir ChatGPT (Link im Forumstitel) empfehlen. Die Frage, wie ich sie gestellt habe (kursiv) kannst du auch noch etwas präzisieren oder ergänzende Nachfragen stellen. Die künstliche Intelligenz ist geduldig.
cu
Chris
excel vba. wenn in spalte a eine änderung erfolgt, lösche den hyperlink der betroffenen zellen und füge einen neuen hyperlink hinzu, welcher auf einen vordefinierten dateipfad verweist mit dem zelleninhalt als variabler dateiname.
Das folgende VBA-Code-Beispiel sollte die von Ihnen beschriebene Aufgabe ausführen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A:A") ' Überwachen von Änderungen in Spalte A
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
' Wenn eine Änderung in den überwachten Zellen stattgefunden hat:
Application.EnableEvents = False ' Deaktiviere Ereignisverarbeitung, um Endlosschleifen zu vermeiden
' Schleife über jede geänderte Zelle
For Each cell In Target
If cell.Hyperlinks.Count > 0 Then
cell.Hyperlinks(1).Delete ' Lösche vorhandenen Hyperlink
End If
If Len(cell.Value) > 0 Then ' Wenn Zelleninhalt nicht leer ist
cell.Hyperlinks.Add Anchor:=cell, Address:="C:\Pfad\zum\Verzeichnis\" & cell.Value & ".xlsx" ' Füge neuen Hyperlink hinzu
End If
Next cell
Application.EnableEvents = True ' Aktiviere Ereignisverarbeitung wieder
End If
End Sub
Dieser Code wird in das VBA-Modul für das betreffende Arbeitsblatt (Rechtsklick auf das Registerblatt, dann "Code anzeigen" wählen) eingefügt. Es wird das "Worksheet_Change"-Ereignis des Arbeitsblatts abgefangen und überwacht, ob Änderungen in Spalte A vorgenommen wurden. Wenn dies der Fall ist, wird für jede geänderte Zelle der vorhandene Hyperlink gelöscht und ein neuer Hyperlink mit dem Zelleninhalt als variabler Dateiname hinzugefügt.
Bitte stellen Sie sicher, dass der Dateipfad im Code auf Ihren tatsächlichen Pfad angepasst wird.