Le résultat d'une cellule utilise la fonction arrondi

Bonjour à tous,

Mes premiers pas sur un forum.... J'espère que je serais suffisamment claire dans ma demande...

Les étudiants ont un fichier dans lequel deux données sont aléatoires:

Les ventes en volume annuelles de café en F5 et percolateur H5. Ils doivent calculer les ventes mensuelles en fonction de coefficients saisonniers. Ces ventes mensuelles doivent être un multiple de kilo pour le café et un entier pour les percolateurs (on ne peut pas vendre 0,25 percolateur)

Ils doivent utiliser la fonction =arrondi.sup(....)

Or certains résultats de vente mensuelles sont déjà "arrondis correctement" sans utiliser la fonction arrondi.

Je souhaite donc savoir si la fonction arrondi a été utilisée dans le calcul.

J'ai tenté ce module:

Sub macrotestformule()

If Range("B9").Value Like "=ARR*" Then

Range("P9") = 5

Else

Range("P9") = 1

End If

End Sub

qui met en P9 la valeur 1 même si la formule arrondi est utilisée alors que je souhaite obtenir 5

En fichier joint un exemple.

Merci par avance de votre aide.

17exemple.xlsm (15.02 Ko)

Bonjour SG IUT et bienvenue sur ce Forum!

C'est donc partie pour un petit cours de VBA ;D Le sujet étant :

"Comment tester le contenue d'une cellule ?" (Vous avez quatre heures.)

Pour savoir la valeur que retourne le contenue d'une cellule, vous pouvez utiliser un MsgBox [...]

Msgbox Range("B9").Value

[...] et lancer la macro :

capture

Le résultat retourné n'est donc pas celui souhaité, car vous ne désirez pas savoir le résultat de la formule, mais savoir la formule qui a été utilisé.

On va donc changer notre code par [...]

Msgbox Range("B9").FormulaLocal

[...] et relancer la macro pour obtenir :

capture2

On obtient donc la formule utilisé dans la cellule!

On peut donc modifié votre code par :

Sub macrotestformule()
If Range("B9").FormulaLocal Like "=ARR*" Then
Range("P9") = 5
Else
Range("P9") = 1
End If
End Sub

Voilà! Le 5 s'affiche bien en cellule P9 pour dire qu'en B9, la formule ARR a été utilisée!

NB : Personnellement j'utiliserais une Boucle pour tester toute les cellules une par une pour être sur quelles aient toutes la formule ARR ;D

Restant à dispo!

Bonjour Juice,

Merci pour ce cours sur le contenu d'une cellule. Le code marche très bien et en plus je comprends ce que fait la macro !!

Très pédagogique.

Merci beaucoup.

Bonjour SGIUT, Juice,

je propose ces 2 façons d'écrire la sub en une seule instruction :

Sub macrotestformule()
  [P9] = IIf([B9].FormulaLocal Like "=ARR*", 5, 1)
End Sub
Sub macrotestformule()
  [P9] = 1 - 4 * ([B9].FormulaLocal Like "=ARR*")
End Sub

dhany

Bonjour,

Avec un peu de retard, semble-t'il !?.

Il y a 4 formules pour arrondir un résultat (Arrondi, Arrondi.inf, Arrondi.sup et arrondi.au.multiple).

Cdlt.

5exemple.xlsm (22.29 Ko)
Public Sub Result()
Dim j As Long, Counter As Double
    For j = 2 To 13
        If Cells(9, j).FormulaLocal Like "=ARRONDI.SUP*" Then
            Counter = Counter + 1
        End If
    Next j
    Cells(9, 16).Value = IIf(Counter = 12, 5, 1)
End Sub
Rechercher des sujets similaires à "resultat utilise fonction arrondi"