Formule SI + fonction de format de cellule
Bonjour tout le monde,
je cherche à créer une formule SI dans Excel qui me permettrait de vérifier le format d'une cellule afin d'effectuer un calcul ou un autre. Je m'explique :
J'ai un fichier dans lequel j'ai des prix dans une colonne et un pourcentage de remise dans une autre colonne et un calcul de prix final remisé dans une dernière colonne => problème la remise n'est pas toujours en pourcentage et peut être parfois en euros/centimes.
J'aimerais donc que la formule vérifie le format de la remise afin de savoir si elle va faire une simple soustraction ou appliquer un pourcentage de remise pour calculer le prix final remisé.
Une telle formule est-elle possible à créer ?
J'ai essayé de trouver une parade afin de contourner ma difficulté qui a été de mettre =SI(REMISE>=1;PRIX AVANT REMISE - REMISE;"") car la particularité des pourcentages est qu'ils sont en décimales donc en principe inférieurs à 1 si inférieurs à 100%, mais le soucis est que certaines remises peuvent être inférieures à 1€ et se compter en 0,60€ par exemple.
Auriez-vous une solution alternative à me proposer ?
Merci par avance de votre aide.
PS : En cas de soucis de compréhension je pourrai joindre un fichier Excel d'exemple.
Bonjour,
Une formule pour détecter le format pourcentage, je ne pense pas que cela existe, il faut passer par une fonction personnalisée en VBA.
Dans le fichier joint le prix remisé est en colonne C et la formule à appliquer est:
=Prix_Remisé(A2;B2)Le fichier
la fonction personnalisée:
Function Prix_Remisé(Prix As Double, Remise As Range) As Double
Dim Format As String
Format = Remise.NumberFormat
If Format = "General" Or Format = "0,00" Then
Prix_Remisé = Prix - Remise
Else
Prix_Remisé = Prix - (Prix * Remise)
End If
End FunctionCdlt
Bonjour MathieuS16 et
Une formule ne peut pas vérifier le format d'une cellule en pourcentage, sinon VBA
Mais vous pouvez faire un test simple je pense, en vérifiant que la valeur de la cellule se trouve entre 0 et 1
à moins que vous ayez des remises de 1 euro
=SI(ET(REMISE>0; REMISE<=1);(PRIX AVANT REMISE - (PRIX AVANT REMISE*REMISE);"")A+
Edit : Salut Arturo83
Bonjour,
J'ai effectivement des remises de 1€ du coup la formule ne fonctionne pas en l'état. La fonction VBA est parfaite pour mon usage par contre !
Merci beaucoup pour votre aide, je clôture le topic !