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, "!"...
plus les disks sont grand plus le swap d’échange est longLa feuille Macro1(non active) fonctionne toujours mais rame sur des disques externes de 3 téras ou plus.
Merci Patrick, mais ce n'est pas une réponse ! Je m'attendais à une macro vba pour évoluer dans ce langagebonsoir
plus les disks sont grand plus le swap d’échange est long
les gros disks c'est bon pour le stockage pas l'exploitation
et pour peu que tes ports usb soit mal paramétrés ça devient un torture les latence d'attente
déjà 1 terra c'est bien trop grand pour les config windows actuelles alors 3 tera c'est mort
c'est ça le soucis avec les config matériel
on vous vent des machines soit disant de course sauf que de série aucun organe n'est 100% compatible avec d'autres du coup ben avoir une becane rapide releve de la chance ou d'un budget conséquent
Bonjour,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.
SELECTION
=ERREUR(FAUX)
=SELECTION.CELLULES(9;;1)
=LIRE.FORMULE(CELLULE.ACTIVE())
=STXT(B5;3;CHERCHE("[";B5)-2)
=INFORMATIONS("repertoire")
=REPERTOIRE(B5)
=STXT(LIRE.FORMULE(CELLULE.ACTIVE());3;CHERCHE("[";LIRE.FORMULE(CELLULE.ACTIVE()))-2)
=STXT(LIRE.FORMULE(CELLULE.ACTIVE());1;CHERCHE("]";LIRE.FORMULE(CELLULE.ACTIVE())))
=LIRE.FORMULE(CELLULE.ACTIVE())
=SUBSTITUE(B11;"=-";"=")
=NBCAR(B12)
=TROUVE("!";B12;1)
=STXT(B12;3;TROUVE("!";B12;1)-3)
=DROITE(B12;B13-B14)
=SELECTION.ATTEINDRE(""&B12&"")
=STXT(B12;3;TROUVE("]";B12;1)-3)
=SUBSTITUE(B18;"[";"")
=SUBSTITUE(B19;"";"")
=REPERTOIRE(B20)
=SI(ESTERREUR(B17);OUVRIR(B20);RETOUR())
=SELECTIONNER(""&B16&"")
=RETOUR()
Bonjour,Bonjour,
Quel type de tableur utilisez-vous pour faire fonctionner la macro (?) de la feuille Macro1 ?
VB:SELECTION =ERREUR(FAUX) =SELECTION.CELLULES(9;;1) =LIRE.FORMULE(CELLULE.ACTIVE()) =STXT(B5;3;CHERCHE("[";B5)-2) =INFORMATIONS("repertoire") =REPERTOIRE(B5) =STXT(LIRE.FORMULE(CELLULE.ACTIVE());3;CHERCHE("[";LIRE.FORMULE(CELLULE.ACTIVE()))-2) =STXT(LIRE.FORMULE(CELLULE.ACTIVE());1;CHERCHE("]";LIRE.FORMULE(CELLULE.ACTIVE()))) =LIRE.FORMULE(CELLULE.ACTIVE()) =SUBSTITUE(B11;"=-";"=") =NBCAR(B12) =TROUVE("!";B12;1) =STXT(B12;3;TROUVE("!";B12;1)-3) =DROITE(B12;B13-B14) =SELECTION.ATTEINDRE(""&B12&"") =STXT(B12;3;TROUVE("]";B12;1)-3) =SUBSTITUE(B18;"[";"") =SUBSTITUE(B19;"";"") =REPERTOIRE(B20) =SI(ESTERREUR(B17);OUVRIR(B20);RETOUR()) =SELECTIONNER(""&B16&"") =RETOUR()
Sub test()
Dim Fichier$
Fichier = ThisWorkbook.Sheets("Feuil1").Range("G5").FormulaLocal
Debug.Print Fichier
End Sub
Bonsoir Gégé,Bonjour, je nesuis pas sûr d'avoir tout compris.
Est-ce ça que vous voulez ?
Cordialement,VB:Sub test() Dim Fichier$ Fichier = ThisWorkbook.Sheets("Feuil1").Range("G5").FormulaLocal Debug.Print Fichier End Sub
Bonjour,Bonsoir Gégé,
Que fait "Fichier = ThisWorkbook.Sheets("Feuil1").Range("G5").FormulaLocal"
J'ai lancé la macro, mais il ne se passe rien !
Je radote : Mais que fait ma vieille macro ?
Je me positionne n'importe où en colonne G. (dans l'exemple en G5)
Je lance la macro.
La macro récupère seule l'information, ouvre le fichier correspondant (ex: Bill Evans Discography.xls)
Le curseur va se positionner en Feuil3' en $C$4574 de ce fichier.
Voilà c'est tout.
Je cherche depuis quelques jours une solution en vba alors que j'utilise ma vieille macro depuis 20 ans (et oui !, j'ai commencé avec Excel 1.5)
Merci l'Ami
Sub test()
Dim Fichier$, Fich, Plage$, strQuote$, 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) = strQuote & Replace(Left(Fich(1), InStr(1, Fich(1), "]", vbTextCompare) - 1), "[", "") & strQuote
Plage = strQuote & Plage & Fich(2) & strQuote
Set Destination = Workbooks.Open(Fich(1))
With Destination
.Range(Plage).Select
End With
End Sub
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
Bien sûr que ça existe, il faut déplacer le code de la macro dans l'événement Worksheet_Change de la Feuil1, utiliser la variable Target à la place de Range("G5") et paramétrer correctement l'intersection sur l'événement Change.Bonsoir,
1) Si Patrick est performant ce dont je ne doute pas, il aurait pu apporter une réponse et non discuter de la puissance d'un ordinateur et de sa capacité à lire des disques externes.
2) Le module que vous m'envoyez fonctionne, mais uniquement pour G5. J'en ai trouvé des similaires sur des sites divers, mais à chaque fois il faut modifier manuellement l'argument Range() sinon :
Regarde la pièce jointe 1156684
Donc nous sommes au point mort si je puis dire !
Je joins ce dossier zip qui comporte :
Music_find2.xls (avec les macros "test" & "SELECTION" activées) à ouvrir.
fichier_lié.xls.
Si les 2 fonctionnent, seule la macro à base des fonctions excel ne demande pas de modifs
Il doit bien exister une forme d'argument qui reconnait la position de la cellule.
ThisWorkbook.Sheets("Feuil1").Range(argument qui donne l'emplacement sur la feuille).FormulaLocal
Merci pour ton courage.
Dim maJolieSelection As Range
Set maJolieSelection = Selection
Fichier = maJolieSelection.FormulaLocal