Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Hyperlinks in andere Datei kopieren

Betrifft: Hyperlinks in andere Datei kopieren von: Werner
Geschrieben am: 13.08.2014 13:43:24

Hallo!

Trotz Recherche habe ich keine Lösung für mein Problem finden können.

Mit diesem Code kopiere ich Daten von einer Datei zu einer anderen:

Sub Datenexport()
    'Daten aus zwei Tabellen abgleichen per Schlüsselspalte
    Dim wbQuelle As Workbook, wksQuelle As Worksheet, vAuswahl
    Dim wbZiel As Workbook, wksZiel As Worksheet
    Dim varSchluessel, lSpalteSchluessel As Long
    Dim Zelle As Range, rBereich As Range
    Dim ZeileQuelle As Long, ZeileZiel As Long
    Set wbZiel = Workbooks("Widerspruchsdatei 2014 02.xlsm") 
    Set wksZiel = wbZiel.Worksheets("Widersprüche") 'Name - anpassen
    
    'Nr. der Schlüsselspalte in Zieldatei
    lSpalteSchluessel = 13 'ggf Anpassen
    With wksZiel
      'Letzte Datenzeile in Zieltabelle Spalet
      ZeileZiel = .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
      'Beich mit ID-Nummern im Zielblatt
      Set rBereich = .Range(.Cells(2, lSpalteSchluessel), .Cells(ZeileZiel, lSpalteSchluessel))
    End With
    
    'Tabelle mit ggf. neuen Daten
    Set wbQuelle = ActiveWorkbook 'Workbooks.Open(Filename:=vAuswahl, ReadOnly:=True)
    Set wksQuelle = wbQuelle.Worksheets("Tabelle")
    
    Application.ScreenUpdating = False
    With wksQuelle
      lSpalteSchluessel = 3 'Spalte mit ID-Code in Quelldatei
      For ZeileQuelle = 4 To .Cells(.Rows.Count, lSpalteSchluessel).End(xlUp).Row
        'Such-Werte aus Zeile in Zieltabelle einlesen
        varSchluessel = .Cells(ZeileQuelle, lSpalteSchluessel)
        
        'Name in Bereich mit ID-Code in Zieltabelle suchen
        Set Zelle = rBereich.Find(what:=varSchluessel, _
          LookIn:=xlValues, lookat:=xlWhole)
        If Zelle Is Nothing Then 'Code in Zieldatei nicht vorhanden
'          ZeileZiel = Zelle.Row
            Dim LoLetzte As Long
            With Workbooks("Widerspruchsdatei 2014 02.xlsm").Worksheets("Widersprüche")
            ZeileZiel = .Cells(.Rows.Count, 11).End(xlUp).Row + 1
            LetzteZeile = Workbooks("Widerspruchsdatei 2014 02.xlsm").Sheets("Widersprüche"). _
UsedRange.SpecialCells(xlLastCell).Row
            End With
            wksZiel.Cells(ZeileZiel, 11) = .Cells(ZeileQuelle, 1)
            wksZiel.Cells(ZeileZiel, 12) = .Cells(ZeileQuelle, 2)
            wksZiel.Cells(ZeileZiel, 13) = .Cells(ZeileQuelle, 3)
            wksZiel.Cells(ZeileZiel, 17) = .Cells(ZeileQuelle, 4)
            wksZiel.Cells(ZeileZiel, 18) = .Cells(ZeileQuelle, 5)
            wksZiel.Cells(ZeileZiel, 24) = .Cells(ZeileQuelle, 6)
            wksZiel.Cells(ZeileZiel, 25) = .Cells(ZeileQuelle, 7)
            wksZiel.Cells(ZeileZiel, 39) = .Cells(ZeileQuelle, 12)
        Else
          'MsgBox "Nichts zu exportieren bzw. fertig!"

        End If
      Next
    End With
    'Quelldatei wieder schließen
    'wbQuelle.Close savechanges:=False
    Application.ScreenUpdating = True
    MsgBox "Fertig!", vbInformation + vbOKOnly, "Datenabgleich"
Beenden:
    Set wbQuelle = Nothing: Set wbZiel = Nothing: Set wksQuelle = Nothing: Set wksZiel =  _
Nothing
Set Zelle = Nothing: Set rBereich = Nothing
End Sub
In dieser Zelle in der Quelldatei liegt ein Hyperlink zu einer Word-Datei:

.Cells(ZeileQuelle, 12)

Es wird aber nicht der Hyperlink sondern nur der Hyperlink-Text (z. B. Text.docx) kopiert.

Kann mir jemand helfen, dass das Ganze als Hyperlink in der Zeildatei steht und dann von dort natürlich auch geöffnet werden kann?

Vielen Dank schon mal im Voraus!

Werner

  

Betrifft: AW: Hyperlinks in andere Datei kopieren von: fcs
Geschrieben am: 13.08.2014 15:55:09

Hallo Werner,

probiere mal folgendes: ändere Zeile

            wksZiel.Cells(ZeileZiel, 39) = .Cells(ZeileQuelle, 12)

in
            .Cells(ZeileQuelle, 12).Copy wksZiel.Cells(ZeileZiel, 39)
evtl. musst du in Spalte 39 das Format noch ein wenig nachbereiten.

Da MS Office teileweise mit relativen Pfaden arbeitet kann es sein, dass die Links nicht funktionieren.
Das gleiche Problem existiert, wenn man die Hyperlink-Information in der Quellzelle ausliest und anschliessend diese Infos in einen Hyperlink in der Zielzelle einbaut.

Gruß
Franz


  

Betrifft: AW: Hyperlinks in andere Datei kopieren von: Werner
Geschrieben am: 15.08.2014 07:20:45

Hallo Franz1

EINWANDFREI!!!
Vielen Dank!
Klappt wunderbar!

Gruß
Werner


 

Beiträge aus den Excel-Beispielen zum Thema "Hyperlinks in andere Datei kopieren"