Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction VBA qui faire aussi le format

3 réponses
Avatar
phil257
Salut =E0 tous,
voil=E0 j'ai fait une fonction VBA toute simple qui calcule le prix TTC
en fonction du prix HT et du taux de TVA.
Le calcul ne pose pas de probl=E8me mais je voudrais que la fonction me
renvoit le r=E9sultat avec la mise en forme en euros ! (comme la
fonction financi=E8re VPM, qui m=EAme si elle est saisie dans une cellule
au format standard donne le r=E9sultat et passe automatiquement la
cellule au format mon=E9taire)

voila ce que j'ai mis mais =E7a marche pas !

Function ttc(prix_ht As Single, taux_tva As Single) As Currency
ttc =3D prix_ht + prix_ht * taux_tva
Selection.NumberFormat =3D "#,##0.00 $"
End Function

Quand je suis dans ma feuille excel et que je met =3Dttc(10;19,6%)
j'obtient bien 11,96 mais j'ai pas le format mon=E9taire !

Merci d'avance pour vos r=E9ponses

@+Phil

3 réponses

Avatar
Fredo P.
Avec ces lignes dans le code de feuille, ça fonctionne mais il faudrait sans
doute limiter la routine aux cellules concernées si possible.
Private Sub Worksheet_Change(ByVal Target As Range)
Target.NumberFormatLocal = "# ##0,00 ?"
End Sub

a écrit dans le message de
news:
Salut à tous,
voilà j'ai fait une fonction VBA toute simple qui calcule le prix TTC
en fonction du prix HT et du taux de TVA.
Le calcul ne pose pas de problème mais je voudrais que la fonction me
renvoit le résultat avec la mise en forme en euros ! (comme la
fonction financière VPM, qui même si elle est saisie dans une cellule
au format standard donne le résultat et passe automatiquement la
cellule au format monétaire)

voila ce que j'ai mis mais ça marche pas !

Function ttc(prix_ht As Single, taux_tva As Single) As Currency
ttc = prix_ht + prix_ht * taux_tva
Selection.NumberFormat = "#,##0.00 $"
End Function

Quand je suis dans ma feuille excel et que je met =ttc(10;19,6%)
j'obtient bien 11,96 mais j'ai pas le format monétaire !

Merci d'avance pour vos réponses

@+Phil
Avatar
Raoul VOLFONI
Bonsoir,

Il me semble qu'il n'est pas possible d'agir sur la mise en forme à partir
d'une fonction.
Il te faut mettre la cellule au format, ou un format conditionnel dans
excel.

Ou alors, il te faut faire une sub.

--
Cordialement,
Raoul VOLFONI

a écrit dans le message de news:

Salut à tous,
voilà j'ai fait une fonction VBA toute simple qui calcule le prix TTC
en fonction du prix HT et du taux de TVA.
Le calcul ne pose pas de problème mais je voudrais que la fonction me
renvoit le résultat avec la mise en forme en euros ! (comme la
fonction financière VPM, qui même si elle est saisie dans une cellule
au format standard donne le résultat et passe automatiquement la
cellule au format monétaire)

voila ce que j'ai mis mais ça marche pas !

Function ttc(prix_ht As Single, taux_tva As Single) As Currency
ttc = prix_ht + prix_ht * taux_tva
Selection.NumberFormat = "#,##0.00 $"
End Function

Quand je suis dans ma feuille excel et que je met =ttc(10;19,6%)
j'obtient bien 11,96 mais j'ai pas le format monétaire !

Merci d'avance pour vos réponses

@+Phil
Avatar
bret 05
Merci pour vos deux réponses

Ok Fredo P. j'avais pensé aussi au code vba évènementiel de la feuille mais
ça me satisfait moyen.

Raoul VOLFONI (tonton flingueur ?) je pensais aussi que la mise en forme
n'était pas possible dans une fonction mais pourtant la fonction VPM
intégrée à excel le fait très bien elle.

Si quelqu'un a une idée je prends.

ps: ne tenez pas compte du nom de l'expéditeur bretN° c'est parce que je
suis au boulot !

@+Phil


a écrit dans le message de news:

Salut à tous,
voilà j'ai fait une fonction VBA toute simple qui calcule le prix TTC
en fonction du prix HT et du taux de TVA.
Le calcul ne pose pas de problème mais je voudrais que la fonction me
renvoit le résultat avec la mise en forme en euros ! (comme la
fonction financière VPM, qui même si elle est saisie dans une cellule
au format standard donne le résultat et passe automatiquement la
cellule au format monétaire)

voila ce que j'ai mis mais ça marche pas !

Function ttc(prix_ht As Single, taux_tva As Single) As Currency
ttc = prix_ht + prix_ht * taux_tva
Selection.NumberFormat = "#,##0.00 $"
End Function

Quand je suis dans ma feuille excel et que je met =ttc(10;19,6%)
j'obtient bien 11,96 mais j'ai pas le format monétaire !

Merci d'avance pour vos réponses

@+Phil