[VBA] - Format de cellule à 3 conditions

14test-format.xlsm (18.14 Ko)

Bonsoir,

J'ai une nouvelle petite question, pour laquelle je ne trouve pas de solution pour le moment.

Je veux appliquer un format particulier sur mes données numériques.

En l'occurrence en écrivant ceci :

"[<=0.01]""< 0,01 ha"";[>0.01]###0.00"" ha"""

- Si le nombre est supérieur à 0,01 alors écrire le nombre, avec 2 décimales, suivi de "ha"

- Si le nombre est inférieur à 0,01 alors écrire "< 0,01 ha"

- Mais si le nombre est égal à 0, comment est-ce que je peux demander à ce qu'il apparaissant "0 ha" (et non "< 0,01 ha")

J'ai fais quelques modifications, sans succès pour le moment.

Je joins un document test, avec le résultat actuel et une case rouge pour signaler la situation où n'apparaît le résultat que j'aimerais.

Je vous remercie de votre attention !

Bonne soirée

Salut,

Un ficher modèle n'aurait pas été un luxe !

J'ai tenté de modifier ton instruction en ajoutant un format pour les nombres nuls, mais la ligne ci-dessous ne fonctionne pas

        'Range("B" & i).NumberFormat = "[<=0.01]""< 0,01 ha"";[>0.01]###0.00"" ha""; ""0 ha"""

Je te propose donc de contourner le problème ainsi :

        If Range("A" & i) = 0 Then
            Range("B" & i) = "0 ha"
        Else
            Range("B" & i).NumberFormat = "[<=0.01]""< 0,01 ha"";[>0.01]###0.00"" ha"""
        End If

Vois l'exemple dans le fichier ci-joint.

Cordialement.

2essai.xlsm (23.08 Ko)

Bonjour,

Je ne comprend pas pour le fichier modèle. J'ai joins un fichier avec la macro en question et l'endroit où ça me pose problème.

Votre solution fonctionne, en revanche elle transformait les 0 en texte je crois.

Du coup j'ai modifié ainsi , de manière à toujours conserver la valeur du 0 :

With ActiveSheet
    For i = 1 To 4
        .Range("B" & i) = Range("A" & i)
        If .Range("A" & i) > 0 Then
            .Range("B" & i).NumberFormat = "[<=0.01]""< 0,01 ha"";[>0.01]###0.00"" ha"""
        Else
            .Range("B" & i).NumberFormat = "0"" ha"""
        End If
    Next i
End With
End Sub

Merci pour votre aide, il faudra donc que je passe par ce code pour avoir le rendu que je veux.

Bonne fin de journée !

Rechercher des sujets similaires à "vba format conditions"