Supprimer liaisons externes excel

Vanessa18 -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour à tous,

Voilà je débute en VBA et j'aimerais remplacer les formules des cellules par leur valeur dans toutes les feuilles de mon classeur.

J'ai déjà essayé ceci pour une feuille de calcul:

Dim Cellule As Range

For Each Cellule In Worksheets("Feuil1").Range("A1:BJ500")
If Cellule.HasFormula=true Then
Cellule.Formula = Cellule.Value
End If
Next Cellule

J'ai le message d'erreur "Erreur définie par l'application ou par l'objet." et quand je clique sur débogage, il me surligne la ligne "Cellule.Formula = Cellule.Value". Je n'arrive pas à voir où se situe mon erreur.

Quelqu'un aurait-il une solution ou une piste?

Merci d'avance

3 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    dans toutes les feuilles de mon classeur.
    Sub CH()  
    Dim i As Integer  
        For i = 1 To Worksheets.Count  
            Sheets(i).UsedRange = Sheets(i).UsedRange.Value  
        Next i  
    End Sub
    A+

    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    1
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Avec la piste donnée par Michel.. :-)
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    sans boucle ni copypaste....

    Sub sanscopypaste()
    Range("A1:BJ500") = Range("A1:BJ500").Value
    End Sub
    
    1
    1. m@rina Messages postés 27598 Date d'inscription   Statut Modérateur Dernière intervention   11 563
       
      Hello Michel !

      Ben oui, pourquoi faire simple quand on peut faire compliqué !!! ;))
      A +
      m@rina
      0
  3. m@rina Messages postés 27598 Date d'inscription   Statut Modérateur Dernière intervention   11 563
     
    Bonsoir,

    Bizarre, car ton code paraît bon.
    Il faudrait voir ton classeur...

    Sinon, tu peux peut être essayer un collage spécial :

    Sub collage_val()
    For Each cellule In Worksheets("Feuil1").Range("A1:BJ500").SpecialCells(xlCellTypeFormulas, 23).Cells
    cellule.Copy
    cellule.PasteSpecial Paste:=xlPasteValues, Transpose:=False
    Next
    End Sub


    m@rina
    0