Modifier format de cellules en fonction d'une liste déroulante

Bonjour,

Dans le cadre de la mise en place d'un tableau de facturation, je souhaiterais, à partir d'une liste déroulante de choix avec différentes monnaies ($, £, €, etc....), pouvoir déterminer le format des cellules concernées dans la monnaie affiché dans la cellule portant la liste déroulante.

Par exemple:

si (A4) = $ alors (G3:G24) et (K3:24) sont sous le format $ 231,54

si (A4) = € alors (G3:G24) et (K3:24) sont sous le format 231,54 €

si (A4) = £ alors (G3:G24) et (K3:24) sont sous le format 231,54 £

Merci pour votre aide

Christophe

Bonjour,

sans macro, utilise la formule TEXTE

=TEXTE(C4;"# ##0,00"&A4)

cela oblige néanmoins à créer une zone différente pour l'affichage

Merci Steelson,

Mais cette solution n'est pas vraiment ce que je cherche. Tu trouvera ci-joint un fichier Excel qui explique exactement ce dont j'ai besoin ...... rien de mieux que l'exemple et le concret.

17test.xlsx (14.18 Ko)

Bonjour,

Une proposition à étudier.

Pourquoi ne pas utiliser EUR, GBP et USD ?

Cdlt.

14christophe-pp.xlsm (22.61 Ko)

Bonjour Jean-Eric

proposition à compléter

  • d'abord pour les zones concernées D3, D22 etc.
  • ensuite pour les formats monétaires
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim depuis As Range
Dim jusque As Range
Dim monnaie As String
If Not Intersect(Target, Range("D3")) Is Nothing Or Not Intersect(Target, Range("D22")) Is Nothing Then
    Set depuis = Target.Offset(3, 3)
    Set jusque = Target.Offset(3, 3).End(xlDown)
    Select Case Target.Value
        Case "USD - US Dollar"
            monnaie = "[$$-409]#,##0.00"
        Case "EUR - Euro"
            monnaie = "#\ ##0.00 €"
        Case Else
            monnaie = "#\ ##0.00"
    End Select
    Range(depuis.Address & ":" & jusque.Address).NumberFormat = monnaie
    Range(depuis.Address & ":" & jusque.Address).Offset(0, 2).NumberFormat = monnaie
End If
End Sub
13test.xlsm (22.92 Ko)

Re,

Bonjour Steelson,

J'ai lu entre les lignes !...

Cdlt.

Hello,

Sur le fichier "Test' c'est super......... ça fonctionne génial, j'ai même rajoute la Livre Sterling... c'est exactement ce que je voulais.....

Reste que la cellule de base ou se situe la "Liste déroulante de choix" est en L5 et non pas en D3 je pensais bêtement juste modifier

If Not Intersect(Target, Range("D3")) en If Not Intersect(Target, Range("L5")) mais ça n'a pas l'air de suffire, que doit-je faire......

Merci

Non, pas L5

tu dois mettre les cellules qui contiennent la monnaie que tu choisis pour la liste qui se situe juste en dessous

Comme il n'y a que 2 tableaux, je n'ai mis que D3 et D22, mais si tu ajoutes d'autres tableaux, il faudra mettre les Dn

Hello,

Ce que je voulais dire, c'est que dans mon tableau final, qui est une feuille de facturation, je n'ai qu'un tableau (ce que j'ai déjà corrigé) et j'aurais souhaité mettre la cellule à choix multiple en L4.

Pour faire plus simple, ci-joint mon projet de tableau, ce sera plus simple

12test-v2.xlsm (19.98 Ko)

essaie comme ceci, j'ai juste modifié set depuis =

edit : code erroné effacé

Bonjour,

Désolé de répondre si tardivement ou si tôt...............mais avec le décalage horaire, je suis un peu en avance sur la France (je suis à Phnom Penh).

Pour info également, je suis vraiment débutant en ce qui concerne la VBA, mais ça me passionne en raison de la liberté qu'offre ces possibilités.

Alors ce matin, c'est avec un grand bonheur que j'ai appliqué la modification sur le fichier test et là, super tout fonctionne je peux mettre ma cellule de liste déroulante ou je veux et faire démarrer l'application où je veux et il suffit de "tirer" les cellules pour appliquer au suivante.

Par contre, lorsque j'installe l'application sur mon fichier "TEST Facture Commerciale English" cela ne fonctionne que pour les 5 premières ligne au départ de la case H17 et là j'ai beau tirer les cellules l'application ne suit pas.

J'avoue que je suis un peux désarçonné et je suis certain que c'est juste une subtilité qui m'échappe et me fait enrager par rapport à mon ignorance.

Alors encore une fois merci d'avance, surtout que je vais avoir d'autres besoins.

Je rejoint

le fichier concerné

Cdt

J'oubliais..........

Dans la colonne H, j'aurais besoins d'avoir un format à 3 chiffres après la virgule en raison des bases de coûts.

Alors que pour la colonne J il me faut 2 chiffres après la virgule pour la facturation et donc arrondi.

Si ce détail pose problème je m'adapterais et il vaut mieux rester à 2 chiffres après la virgule partout

Cdt

Bonjour,

désolé, j'avais une erreur j'ai été trop vite

J'oubliais..........

Dans la colonne H, j'aurais besoins d'avoir un format à 3 chiffres après la virgule en raison des bases de coûts.

Alors que pour la colonne J il me faut 2 chiffres après la virgule pour la facturation et donc arrondi.

pas de soucis, petite évolution dans ce cas, à tester

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim depuis As Range
Dim jusque As Range
Dim der As Integer
Dim monnaie As String
If Not Intersect(Target, Range("L5")) Is Nothing Then

    Select Case Target.Value
        Case "USD - US Dollar"
            monnaie = "[$$-409]#,##0.000"
        Case "EUR - Euro"
            monnaie = "#\ ##0.000 €"
        Case "GBP - British Pound"
            monnaie = "[$£-en-GB]#,##0.000"
        Case Else
            monnaie = "#\ ##0.000"
    End Select

    Set depuis = Range("H17")
    Set jusque = depuis.End(xlDown)
    Range(depuis.Address & ":" & jusque.Address).NumberFormat = monnaie

    Select Case Target.Value
        Case "USD - US Dollar"
            monnaie = "[$$-409]#,##0.00"
        Case "EUR - Euro"
            monnaie = "#\ ##0.00 €"
        Case "GBP - British Pound"
            monnaie = "[$£-en-GB]#,##0.00"
        Case Else
            monnaie = "#\ ##0.00"
    End Select

    Set depuis = Range("J17")
    Set jusque = depuis.End(xlDown)
    Range(depuis.Address & ":" & jusque.Address).NumberFormat = monnaie

End If
End Sub

Bonjour,

Super, ça marche..........

Merci beaucoup

Je regarde maintenant l'enregistrement en PDF

Rechercher des sujets similaires à "modifier format fonction liste deroulante"