Copier contenu d'un lien hypertexte
m
Bonjour,
je suis plutôt débutant avec les macros VBA.
J'ai un fichier Excel qui contient environ 300 liens hypertextes (dans une colonne) qui ouvrent chacun un autre document Excel.
J'aimerais créer une macro qui permettrait d'ouvrir chacun des liens hypertextes, de copier le contenu du document qui s'est ouvert et de la coller sur une nouvelle feuille du premier document.
Est-ce que cela est possible?
Merci beaucoup
T
Bonjour,
Une piste à adapter (position de la plage) :
Sub Test()
Dim ClsSource As Workbook
Dim ClsCible As Workbook
Dim Fe As Worksheet
Dim ActiveFe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set ClsCible = ThisWorkbook
Set ActiveFe = ClsCible.ActiveSheet
'défini la plage en colonne A sur la feuille active à partir de A1 (à adapter)
With ActiveFe
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'gèle
Application.ScreenUpdating = False
'parcours la plage
For Each Cel In Plage
'si la cellule contient un lien...
If Cel.Hyperlinks.Count > 0 Then
'et qu'il est valide...
If Dir(Cel.Hyperlinks(1).Address) <> "" Then
'ajoute un nouvelle feuille au classeur
ClsCible.Worksheets.Add , Sheets(Sheets.Count)
Set Fe = ClsCible.Sheets(Sheets.Count)
'ouvre le classeur source
Set ClsSource = Workbooks.Open(Cel.Hyperlinks(1).Address)
'puis copie la zone utilisée dans la nouvelle feuille
ClsSource.Worksheets(1).UsedRange.Copy Fe.Range("A1")
'referme sans enregistrer
ClsSource.Close False
End If
End If
Next Cel
'réactive la feuille de départ
ActiveFe.Activate
'rafraîchi
Application.ScreenUpdating = True
End SubUne précision, la feuille copiée est la première en partant de la gauche (onglets) car son index est 1
ClsSource.Worksheets(1).UsedRange.Copysi ça en est une autre, indiquer le bon index ou si le nom est connu (ce qui est mieux) remplacer l'index par le nom :
ClsSource.Worksheets("Feuil2").UsedRange.Copy