Microsoft 365 Liaisons externes par macro

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)

Me voilà avec un nouveau souci que je ne parviens pas à résoudre Grrr !!! :mad:
J'ai cherché sur le net et dans le Forum, sauf mauvaises recherches, je n'ai pas trouvé.

J'ai dans mon classeur beaucoup de formules qui sont des liaisons externes.
Mes formules fonctionnent bien.

Pour alléger mes fichiers, je préfère toujours coder mes formules et ne copier que les valeurs.
J'ai ce code :
VB:
Sub MaJ_Clients() 'Fichier Facturation
Application.EnableEvents = False
Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
'ActiveSheet.Unprotect Password:=""
    [A2] = "=IF(RC[1]<>0,TEXTBEFORE('C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!R1C1,"" "",1,1,1),"""")"
    [B2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC2"
    [C2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC3"
    [D2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC4"
    [E2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC5"
    [F2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC17"
    [G2] = "=IF(RC[-3]="""","""",IF('C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC10=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC25"
    [I2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC12"
    [J2] = "='C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC13"
    [L2] = "=IF(RC[-3]<>0,'C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!RC6-RC[-1],0)"
    Rows("2:2").Copy
    Rows("3:101").Select
    ActiveSheet.Paste
    Rows("2:101").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    end sub
Mon code ne fonctionne pas, je n'ai pas mes valeurs de liaisons.
Pourtant, j'ai bien vérifié et le code correspond bien à mes formules d'origine.

Je n'y comprends rien !
Auriez-vous une idée ?

Il m'est difficile et long de préparer un fichier test. Mais si c'est nécessaire, je le ferai.
Je vous remercie,
Amicalement,
lionel :)
 
Solution
Mon nouveau code avec les bons fichiers et la nouvelle formule en colonne L :
VB:
Sub MaJ_Clients() 'Fichier Facturation
Dim f$
Application.ScreenUpdating = False
Application.EnableEvents = False

f = "'C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!"
    [A2:A101] = "=IF(B2<>0,TEXTBEFORE(" & f & "A$1,"" "",1,1,1),"""")"
    [B2:E101] = "=" & f & "B2"
    [F2:F101] = "=" & f & "Q2"
    [G2:G101] = "=IF(D2="""","""",IF(" & f & "J2=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H2:H101] = "=" & f & "Y2"
    [I2:J101] = "=" & f & "L2"
    [L2:L101] = "=IF(M2=""fini"",0,IF(I2<>0," & f & "F2-K2,0))"
    [M2:M101] = "=IF(I2<>0," & f & "N2,"""")"
    [A2:M101]...

job75

XLDnaute Barbatruc
Mon nouveau code avec les bons fichiers et la nouvelle formule en colonne L :
VB:
Sub MaJ_Clients() 'Fichier Facturation
Dim f$
Application.ScreenUpdating = False
Application.EnableEvents = False

f = "'C:\Users\lionel\Desktop\Dossier isiTel\01 ImmobRdV NF\[isitelFacturation Charlotte.xlsm]Données'!"
    [A2:A101] = "=IF(B2<>0,TEXTBEFORE(" & f & "A$1,"" "",1,1,1),"""")"
    [B2:E101] = "=" & f & "B2"
    [F2:F101] = "=" & f & "Q2"
    [G2:G101] = "=IF(D2="""","""",IF(" & f & "J2=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H2:H101] = "=" & f & "Y2"
    [I2:J101] = "=" & f & "L2"
    [L2:L101] = "=IF(M2=""fini"",0,IF(I2<>0," & f & "F2-K2,0))"
    [M2:M101] = "=IF(I2<>0," & f & "N2,"""")"
    [A2:M101] = [A2:M101].Value 'supprime les formules

f = Replace(f, "Charlotte", "Imen")
    [A102:A201] = "=IF(B102<>0,TEXTBEFORE(" & f & "A$1,"" "",1,1,1),"""")"
    [B102:E201] = "=" & f & "B2"
    [F102:F201] = "=" & f & "Q2"
    [G102:G201] = "=IF(D102="""","""",IF(" & f & "J2=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H102:H201] = "=" & f & "Y2"
    [I102:J201] = "=" & f & "L2"
    [L102:L201] = "=IF(M102=""fini"",0,IF(I102<>0," & f & "F2-K102,0))"
    [M102:M201] = "=IF(I102<>0," & f & "N2,"""")"
    [A102:M201] = [A102:M201].Value 'supprime les formules

f = Replace(f, "Imen", "Sonda")
    [A202:A301] = "=IF(B202<>0,TEXTBEFORE(" & f & "A$1,"" "",1,1,1),"""")"
    [B202:E301] = "=" & f & "B2"
    [F202:F301] = "=" & f & "Q2"
    [G202:G301] = "=IF(D202="""","""",IF(" & f & "J102=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H202:H301] = "=" & f & "Y2"
    [I202:J301] = "=" & f & "L2"
    [L202:L301] = "=IF(M202=""fini"",0,IF(I202<>0," & f & "F2-K202,0))"
    [M202:M301] = "=IF(I202<>0," & f & "N2,"""")"
    [A202:M301] = [A202:M301].Value 'supprime les formules
  
f = Replace(f, "Sonda", "Stephanie")
    [A302:A401] = "=IF(B302<>0,TEXTBEFORE(" & f & "A$1,"" "",1,1,1),"""")"
    [B302:E401] = "=" & f & "B2"
    [F302:F401] = "=" & f & "Q2"
    [G302:G401] = "=IF(D302="""","""",IF(" & f & "J202=""Vendeur préparé au mandat sans garantie de signature"",""Prépa"",""NP""))"
    [H302:H401] = "=" & f & "Y2"
    [I302:J401] = "=" & f & "L2"
    [L302:L401] = "=IF(M302=""fini"",0,IF(I302<>0," & f & "F2-K302,0))"
    [M302:M401] = "=IF(I302<>0," & f & "N2,"""")"
    [A302:M401] = [A302:M401].Value 'supprime les formules
  
Application.EnableEvents = True
End Sub
Code:
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard,
Très belle prouesse sans fichier pour tester (mais peut-être aussi bonne explications (pour une fois)) lol 🤣
C'est nickel GENIAL et tellement mieux que mon code :)
Tu ne veux vraiment pas revoir mes fichiers de travail ? LOL (Je crois que, si toi tu en as encore, tu t'arracherais les cheveux et que tu me tordrais le cou) 🤣
Merci Gérard : code super et, qui plus est, je le comprends celui-là !
lionel :)
 

Discussions similaires