Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hyperlink per VBA mitkopieren

Forumthread: Hyperlink per VBA mitkopieren

Hyperlink per VBA mitkopieren
05.02.2014 15:24:47
Gregy
Moin,
ich habe folgende Code in VBA der auch prinzipiell gut funktioniert
If Cells(3, 1).Value = "Ofenkörper" And Cells(3, 2).Value = "Ofengestell" Then
Sheets("Anlage").Range("A4:T4").Copy
Sheets("Ofengestell").Range("A200").PasteSpecial Paste:=xlPasteValues, SkipBlanks _
:=False, Transpose:=False
Sheets("Anlage").Range("C4:T4").Copy
Sheets("Ofengestell").Range("U200").Value = Date
Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteFormats
Range("A3:T3").ClearContents

Es erfolgt beim klicken des jeweiligen Buttons eine Abfrage der Zelle A3 und B3. Passen die Eingaben kopiert der Code die Zellen A4 bis T4 in ein anderes Tabellenblatt (hier Ofengestell) wobei er im weiteren Verlauf von den Zellen C4 bis T4 die Formatierung beibehalten soll (da stehen Preise und Datum-Angaben drin).
Nun ist es allerdings so, dass ich in den Spalten R4, S4 und T4 jeweils Hyperlinks drin habe. Diese sollen ebenfalls als Hyperlink in das neue Blatt mit kopiert werden.
Hat hierzu jemand eine Lösung für mich? Bei Google bin ich leider nicht weiter gekommen. Vielen Dank und beste Grüße

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink per VBA mitkopieren
05.02.2014 16:29:58
fcs
Hallo Greggy,
du musst etwas anders kopieren.
Die Zellen der Spalten C bis T müssen komplett kopiert werden, anschliessend dann nochmals nur die Werte.
Gruß
Franz
Sub aaTest()
If Cells(3, 1).Value = "Ofenkörper" And Cells(3, 2).Value = "Ofengestell" Then
Sheets("Anlage").Range("A4:B4").Copy
Sheets("Ofengestell").Range("A200").PasteSpecial Paste:=xlPasteValues, _
SkipBlanks:=False, Transpose:=False
Sheets("Anlage").Range("C4:T4").Copy
Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteAll, _
SkipBlanks:=False, Transpose:=False
Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteValues, _
SkipBlanks:=False, Transpose:=False
Sheets("Ofengestell").Range("U200").Value = Date
Range("A3:T3").ClearContents
End If
End Sub

Anzeige
AW: Hyperlink per VBA mitkopieren
05.02.2014 17:00:56
Gregy
Hallo fsc,
vielen Dank! Es funzt. Wie bekomme ich es jetzt noch hin, dass alle Formatierungen bis auf Zeilenhintergrung, bedingte Formatierungen, und Rahmen mitgenommen werden?

AW: Hyperlink per VBA mitkopieren
06.02.2014 11:01:18
fcs
Hallo Gregy,
die bedingten Formatierugnen kann man im Zielbereich ohne Bedenken löschen.
Bei Rahmen und Zellfarben würde ich diese einfach mal entfernen/ausblenden.
Fall bestimme/alle Zellen in den Zeilen Zellfarben oder Rahmen haben sollen, dann müssen diese im Zielblatt dann vom Makro entsprechend formatiert werden.
Gruß
Franz
Sub aaTest()
If Cells(3, 1).Value = "Ofenkörper" And Cells(3, 2).Value = "Ofengestell" Then
Sheets("Anlage").Range("A4:B4").Copy
Sheets("Ofengestell").Range("A200").PasteSpecial Paste:=xlPasteValues, _
SkipBlanks:=False, Transpose:=False
Sheets("Anlage").Range("C4:T4").Copy
Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteAll, _
SkipBlanks:=False, Transpose:=False
Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteValues, _
SkipBlanks:=False, Transpose:=False
Sheets("Ofengestell").Range("U200").Value = Date
With Sheets("Ofengestell").Range("C200:T200")
.Interior.ColorIndex = xlColorIndexNone 'Zellhintergrundfarbe entfernen
.Borders.LineStyle = xlLineStyleNone 'Linien ausblenden
.FormatConditions.Delete 'bedingte Formatierungen löschen
End With
Range("A3:T3").ClearContents
End If
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink per VBA mitkopieren in Excel


Schritt-für-Schritt-Anleitung

Um Hyperlinks in Excel per VBA mitzukopieren, kannst du folgenden VBA-Code verwenden. Dieser Code prüft, ob die Bedingungen erfüllt sind und kopiert die Daten einschließlich der Hyperlinks.

Sub aaTest()
    If Cells(3, 1).Value = "Ofenkörper" And Cells(3, 2).Value = "Ofengestell" Then
        Sheets("Anlage").Range("A4:B4").Copy
        Sheets("Ofengestell").Range("A200").PasteSpecial Paste:=xlPasteValues, _
        SkipBlanks:=False, Transpose:=False
        Sheets("Anlage").Range("C4:T4").Copy
        Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteAll, _
        SkipBlanks:=False, Transpose:=False
        Sheets("Ofengestell").Range("C200").PasteSpecial Paste:=xlPasteValues, _
        SkipBlanks:=False, Transpose:=False
        Sheets("Ofengestell").Range("U200").Value = Date
        Range("A3:T3").ClearContents
    End If
End Sub

Dieser Code sorgt dafür, dass alle relevanten Daten und die Hyperlinks in das Zielblatt kopiert werden. Achte darauf, die Zellen entsprechend anzupassen, falls du andere Bereiche kopieren möchtest.


Häufige Fehler und Lösungen

  1. Hyperlinks werden nicht mitkopiert
    Überprüfe, ob du xlPasteAll im PasteSpecial-Befehl verwendest. Das stellt sicher, dass die Hyperlinks zusammen mit den Zelleninhalten kopiert werden.

  2. Formatierungen gehen verloren
    Wenn du nur die Werte kopierst, gehen die Formatierungen verloren. Stelle sicher, dass du zuerst die Zellen mit xlPasteAll kopierst und danach mit xlPasteValues die reinen Werte einfügst.


Alternative Methoden

Eine Alternative zum Kopieren von Hyperlinks ist die Verwendung von vba hyperlink. Hier kannst du gezielt die Hyperlinks in den Zellen extrahieren und in die Zielzellen einfügen:

Sub CopyHyperlinks()
    Dim srcRange As Range
    Dim destRange As Range
    Dim cell As Range

    Set srcRange = Sheets("Anlage").Range("R4:T4")
    Set destRange = Sheets("Ofengestell").Range("R200")

    For Each cell In srcRange
        If cell.Hyperlinks.Count > 0 Then
            cell.Hyperlinks(1).Copy
            destRange.Cells(1, cell.Column - srcRange.Column + 1).PasteSpecial
        End If
    Next cell
End Sub

Diese Methode ermöglicht es dir, die Hyperlinks gezielt zu kopieren, ohne die anderen Zelleninhalte zu beeinflussen.


Praktische Beispiele

Hier sind einige Beispiele, wie du excel vba hyperlinks effektiv nutzen kannst:

  • Hyperlinks aus einer Liste kopieren: Wenn du eine Liste von Hyperlinks hast, kannst du diese einfach in eine andere Tabelle übertragen, indem du die oben genannten Methoden anpasst.

  • Hyperlinks dynamisch aktualisieren: Du kannst den VBA-Code auch so anpassen, dass die Hyperlinks automatisch aktualisiert werden, wenn sich der Inhalt in der Ursprungstabelle ändert.


Tipps für Profis

  • Verwende Named Ranges: Anstatt feste Zellbezüge zu nutzen, kannst du Named Ranges verwenden, um deinen VBA-Code flexibler und leichter wartbar zu gestalten.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler zu vermeiden, insbesondere wenn du mit Hyperlinks arbeitest.


FAQ: Häufige Fragen

1. Kann ich auch mehrere Hyperlinks gleichzeitig kopieren?
Ja, du kannst den Code anpassen, um mehrere Hyperlinks in einem Arbeitsgang zu kopieren, indem du eine Schleife verwendest.

2. Was ist der Unterschied zwischen xlPasteAll und xlPasteValues?
xlPasteAll kopiert sowohl Inhalte als auch Formatierungen, während xlPasteValues nur die reinen Werte ohne Formatierungen oder Hyperlinks einfügt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige