Formule dans cellule

KTM

XLDnaute Impliqué
Salut chers tous
Cela fait des heures que je teste cette macro mais elle bute au niveau de ( cel.Formula = "=" & cel )
Je ne comprends pas. Quelqu'un pourrait il me corriger ? Merci

Sub Reinitialiser_Base()

Application.ScreenUpdating = False
With Sheets("Base")
.Range("E7:E37").Value = .Range("K7:K37").Value
.Range("N7:W37") = ""
.Range("J7:J37").Value = 0
For Each cel In .Range("E7:E37,M7:M37,J7:J37")
cel.Formula = "=" & cel
Next cel
End With
Application.ScreenUpdating = True

End Sub
 

job75

XLDnaute Barbatruc
Ceci est encore plus fort car on traite aussi les valeurs logiques et les valeurs d'erreur :
Code:
For Each cel In .Range("E7:E37,M7:M37,J7:J37")
    If IsNumeric(CStr(cel)) Then
        cel.FormulaLocal = "=" & cel
    ElseIf CStr(cel) = "" Or Application.IsText(cel) Then
        cel.Formula = "=""" & cel & """"
    ElseIf Application.IsLogical(cel) Or IsError(cel) Then
        cel.FormulaLocal = "=" & cel.Text
    End If
Next cel
 

job75

XLDnaute Barbatruc
Ce qu'il faut bien comprendre :

- IsNumeric(cel) renvoie True si cel est vide c'est pour cela que j'utilise CStr

- CStr évite aussi un bug si cel est une valeur d'erreur

- FormulaLocal conserve les propriétés de l'ordinateur : séparateur décimal, langue.
 

Discussions similaires

Réponses
2
Affichages
285

Statistiques des forums

Discussions
314 082
Messages
2 105 533
Membres
109 384
dernier inscrit
vinzwanted