Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Bonjour KTM, le forum,
Code:
For Each cel In .Range("E7:E37,M7:M37,J7:J37")
If IsNumeric(CStr(cel)) Then cel.FormulaLocal = "=" & cel Else cel.Formula = "=""" & cel & """"
Next cel
Bonne journée.
 

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…