Coller formules sans liaisons - VBA

Bonjour,

J'ai un fichier (fichier1) avec des formules et un autre (nomfich) où je dois les coller voici le code:

    Windows("fichier1").Activate
    Sheets("base").Select
    Rows("3:3").Select
    Selection.Copy

    Windows(nomfich).Activate
    Sheets("base").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

Le problème est que j'obtiens des formules avec liaisons donc non valables dans nomfich.

J'ai essayé la procédure suivante pour les supprimer mais elle ne me laisse que les valeurs et pas les formules:

Option Explicit
Option Base 1

Sub supprimerliaisons()

Dim liaisons As Variant
Dim lien As Byte

liaisons = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

If IsEmpty(liaisons) = True Then Exit Sub
    For lien = 1 To UBound(liaisons)
    ActiveWorkbook.BreakLink _
        Name:=liaisons(lien), _
        Type:=xlLinkTypeExcelLinks
    Next lien

End Sub

L'autre solution serait un rechercher et remplacer mais il faudrait retoucher le code si on change le fichier formules ce que je ne veux pas.

Avez vous des solutions SVP? Merci du temps accordé.

Bonjour

Comme ceci:

ThisWorkbook.Sheets("Base").Rows("3:3").Copy Workbooks(nomfichier).Sheets("Base").Range("A3")

Si ok et terminé, merci lors de votre réponse de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Cordialement

Bonjour Dan,

Tout d'abord merci pour ta réponse.

J'ai essayé le code il copie bien mais j'ai toujours la liaison.


Une autre petite question au passage j'ai été étonné que le code marche pour copier car pour moi il fallait mettre:

Workbooks(nomfich).Sheets("base").Range("A3").Paste

Juste pour ma culture générale car je ne savais pas qu'on n'était pas obligé de préciser la méthode systématiquement (je suis débutant sur VBA)

Merci d'avance.

Re

Je peux voir un bout de votre fichier ou alors les formules en question qui sont copiées

Juste pour ma culture générale car je ne savais pas qu'on n'était pas obligé de préciser la méthode systématiquement

Si vous copier des valeurs ou formules, vous pouvez procéder comme je l'ai fait.

Si vous copier et coller juste des valeurs sans formules, vous devez alors faire comme ceci :

ThisWorkbook.Sheets("Base").Rows("3:3").Copy
Workbooks(nomfichier).Sheets("Base").Range("A3").PasteSpecial Paste:=xlvalues

Si vous voulez les formules, vous pouvez rajouter cette ligne au code précédent

Workbooks(nomfichier).Sheets("Base").Range("A3").PasteSpecial Paste:=xlPasteFormulas

Crdlt

Bonjour Dan,

Merci infiniment de ton aide

Désolé je ne peux pas mettre mon fichier car les infos ne peuvent pas être rendues publiques.

Par contre voici la formule résultat lorsqu'elle est copiée (j'ai remplacé les noms de fichier):

=SI(OU(V3="cas1";V3="cas2");SI([fichier1.xlsx]base!BM3="Oui";[fichier1.xlsx]CORRESPONDANCES!$L$32;[fichier1.xlsx]CORRESPONDANCES!$L$29);RECHERCHEV([fichier1.xlsx]base!$V:$V;[fichier1.xlsx]CORRESPONDANCES!$D$3:$L$84;9;FAUX))
Rechercher des sujets similaires à "coller formules liaisons vba"