Supprimer liaisons externes excel

Vanessa18 -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
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

A voir également:

3 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Avec la piste donnée par Michel.. :-)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
sans boucle ni copypaste....

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

Ben oui, pourquoi faire simple quand on peut faire compliqué !!! ;))
A +
m@rina
0
m@rina Messages postés 23923 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
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