XL 2013 Ouvrir fichier source

coline741

XLDnaute Junior
Bonjour le forum,

Fort mari de ne pas trouver de solution simple par une petite macro sympa. Honteux et confus je vous soumets ici le problème.

Le fichier joint comporte une liste de jazzmen avec un lien pour chacun (en l'occurence, colone G ici)

Si par exemple, je sélectionne Bill Evans en G5, le lien apparait: ='E:\music1\bill evans\[Bill Evans Discography.xls]Feuil3'!$C$4574

Le but de la macro est d'ouvrir le fichier "Bill Evans Discography.xls" , à l'emplacement Feuil3'!$C$4574

C'est tout.

La feuille Macro1(non active) fonctionne toujours mais rame sur des disques externes de 3 téras ou plus.

Thank you in advance for your assistance.
 

Pièces jointes

  • Music_find.xls
    76.5 KB · Affichages: 9
Solution
Bonsoir,
désolé, le taf me laisse que peu de temps ...
Donc j'ai pas chargé ton fichier mais dans le code précédent (remis ci-dessous) tu "select" une plage d'un onglet sur d'une destination.

Peut-être est-ce là qu'il faut voir pour sélectionner la bonne plage au bon endroit :)

VB:
Sub test()
Dim Fichier$, Fich, Plage$, Onglet$, Destination As Workbook
    strQuote = Chr(34)
    Fichier = ThisWorkbook.Sheets("Feuil1").Range("G5").FormulaLocal
    Fich = Split(Fichier, "'")
    Plage = Right(Fich(1), Len(Fich(1)) - InStr(1, Fich(1), "]", vbTextCompare))
    Fich(1) = Replace(Left(Fich(1), InStr(1, Fich(1), "]", vbTextCompare) - 1), "[", "")
    Plage = Plage & Fich(2)
    Onglet = Left(Plage, InStr(1, Plage, "!"...

Deadpool_CC

XLDnaute Accro
Bonsoir,
désolé, le taf me laisse que peu de temps ...
Donc j'ai pas chargé ton fichier mais dans le code précédent (remis ci-dessous) tu "select" une plage d'un onglet sur d'une destination.

Peut-être est-ce là qu'il faut voir pour sélectionner la bonne plage au bon endroit :)

VB:
Sub test()
Dim Fichier$, Fich, Plage$, Onglet$, Destination As Workbook
    strQuote = Chr(34)
    Fichier = ThisWorkbook.Sheets("Feuil1").Range("G5").FormulaLocal
    Fich = Split(Fichier, "'")
    Plage = Right(Fich(1), Len(Fich(1)) - InStr(1, Fich(1), "]", vbTextCompare))
    Fich(1) = Replace(Left(Fich(1), InStr(1, Fich(1), "]", vbTextCompare) - 1), "[", "")
    Plage = Plage & Fich(2)
    Onglet = Left(Plage, InStr(1, Plage, "!", vbTextCompare) - 1)
    Plage = Right(Fich(2), Len(Fich(2)) - 1)
    Set Destination = Workbooks.Open(Fich(1))
    With Destination
        .Sheets(Onglet).Range(Plage).Select
    End With
End Sub

A+
 

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane