Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
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 / Zeile verschieben mit Hyperlink

VBA / Zeile verschieben mit Hyperlink
08.08.2022 15:36:11
Steve
Hallo zusammen,
ich versuche es einfach nochmal, evtl. ist meine Anfrage bereits zu weit runter gerutscht (?)..
ich habe ein kleines Problem, welches ich mit meinen VBA Kenntnissen noch nicht selbst lösen kann:
Ich möchte eine komplette Zeile einer Tabelle eine Zeile nach oben verschieben (Zeile darüber befindet sich danach unter der verschobenen Zeile) mit folgendem Makro:

Private Sub Hoch_Click()
If Not Intersect(Selection, Range("B19:S2500")) Is Nothing Then
ActiveSheet.Unprotect "***"
With Selection.EntireRow
.Cut
Rows(.Row - 1).Insert Shift:=xlDown
End With
ActiveSheet.Protect Password:="***", AllowInsertingRows:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, userinterfaceonly:=True
Else
MsgBox "Aktive Zelle befindet sich nicht in der Tabelle"
End If
End Sub
bzw. nach unten verschieben (Zeile darunter befindet sich danach über der verschobenen Zeile) mit diesem Makro:

Private Sub Runter_Click()
If Not Intersect(Selection, Range("B18:S2500")) Is Nothing Then
ActiveSheet.Unprotect "***"
With Selection.EntireRow
.Cut
Rows(.Row + 2).Insert Shift:=xlDown
End With
ActiveSheet.Protect Password:="***", AllowInsertingRows:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, userinterfaceonly:=True
Else
MsgBox "Aktive Zelle befindet sich nicht in der Tabelle"
End If
End Sub

Funktioniert soweit wie es soll.
Nun zu meinem Problem: In Spalte C befinden sich, jedoch nur teilweise, Hyperlinks. Der Text der Hyperlinks entspricht nicht dem Link selbst. Nun wird beim ausschneiden und einfügen der "angezeigte Text" ausgeschnitten und verschoben und nicht wie gewünscht der Hyperlink. Nach dem verschieben ist dieser unbrauchbar. Wie kann ich das am besten lösen?
Ich habe hierzu auch eine kleine Beispieldatei erstellt, die im wesentlichen meine betroffenen Tabellenblätter wiederspiegelt:
https://www.herber.de/bbs/user/154551.xlsx
Kopieren anstatt Ausschneiden der gesamten Zeile funktioniert hier anscheinend nicht weil sich die Zeile in einer Tabelle befindet, ich bekomme dann einen Laufzeitfehler 1004: "Das wird nicht funktionieren, weil dadurch Zellen in einer Tabelle in Ihrem Arbeitsblatt verschoben würden." Das ist allerdings genau das, was getan werden soll, Zellen in meiner Tabelle verschieben, bzw. ganze Zeilen.
Ich komme hier überhaupt nicht weiter gerade.
Vielen Dank schon mal für Eure Mühe.:)
Viele Grüße
Steve

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA / Zeile verschieben mit Hyperlink
08.08.2022 16:23:48
Daniel
Hi
kann ich nicht nachvollziehen.
bei mir wird der Hyperlink zusammen mit seinem Text verschoben.
Gruß Daniel
AW: VBA / Zeile verschieben mit Hyperlink
08.08.2022 17:07:16
Steve
Hi Daniel,
ich schätze, ich habe durch deine Anmerkung meinen Fehler gefunden. Es liegt wohl an dem Worksheet Change Makro, welches wenn ich in die Spalte für Hyperlinks Dateipfade einfüge daraus Hyperlinks macht und diese dann mit X benennt. Sobald ich die Zeile verschiebe wird nun aus dem X der Hyperlink generiert. Hmmm doof.
Aber vielen vielen Dank erstmal. Jetzt muss ich mal überlegen, wie ich das dann wieder so gestlten kann, dass die Hyperlinks trotzdem funktionieren.
Wenn jemandem auf die schnelle was einfällt... immer gerne.
Danke nochmal.
Viele Grüße
Steve
Anzeige
AW: VBA / Zeile verschieben mit Hyperlink
08.08.2022 17:17:38
Daniel
Hi
du kannst die Ausführung des Change-Makros verhindern, in dem du den Befehl:

Application.EnableEvents = False

ausführst. Danach werden keine automatischen Eventmakros mehr ausgeführt, solange bis der Befehl kommt:

Application.EnableEvents = True
beachte, dass die zuletzt gemachte Einstellung nach Makroende erhalten bleibt, auch bei einem Fehlerabbruch (gilt vor allem für dich beim Testen, wenn das passiert musst du die Events wieder einschalten, indem du den Befehl zum aktivieren im Direktfenster eingibst).
Oder du überlegst dir, ob es wirklich sinnvoll ist, die Hyperlinks im Change-Eventmakro zu generieren oder ob es nicht besser ist, dafür ein "normales" Makro zu erzeugen.
oder du prüfst, ob in der Zelle auch wirklich ein Link steht, bevor du den Zellinhalt in einen Hyperlik wandelst und brichst die Aktion ab, wenns nur ein "x" ist.
Gruß Daniel
Gruß Daniel
Anzeige
AW: VBA / Zeile verschieben mit Hyperlink
08.08.2022 17:38:31
Steve
Hi Daniel,
so einfach kann es sein, klasse! Vielen Dank für deine Hinweise, ich habe mich dafür entschieden im Change Makro zu prüfen, ob die Zelle ein "X" enthält. Funktioniert jetzt so, wie ich das eigentlich wollte. Ich danke Dir ganz herzlich.
Damit ist mein Problem gelöst :).
Viele Grüße
Steve

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige