Macro format conditionnel des nombres sur excel [Résolu]

Signaler
Messages postés
20
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
12 septembre 2008
-
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
-
Bonjour a tous,

Je suis en train de creer un formulaire pour la societe pour laquelle je travaille et je souhaiterais creer une macro qui modifierait le format d'une cellule possedant un nombre.

En decode:  j ai la zone b29:d29 qui contient un menu deroulant proposant trois possibilites: pound, euro et dollar.
Je souhaiterais que la zone b30:d30 (ou sera saisi une valeur) se parametre par le biais d'une macro selon le choix emis. Par exemple, si on choisi "pound" en b29:d29  la cellule sera sous format comptable, avec deux chiffres apres la virgule et suivi du symbole £ et ainsi pour les deux autres choix.

J ai regarde par le biais du format conditionnel mais malheureusement on ne peut pas modifier le format des nombres.

merci beaucoup par avance

7 réponses

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonsoir Lilikel ,

J'ai regardé ton problème et je te propose une programmation sachant il y a
plusieurs solutions et que je ne connais pas ta feuille de saisie.

Pour faire fonctionner ce code, si j'ai compris ton explication,
il faut :
- inserer sur la feuille 1 depuis la boite à controles , le composant
"Combobox" que tu nommera "ComboboxMonnaies" sur les cellules b29:d29
Ici , j'utilise un combobox pour créer un menu déroulant
Si t'utilise la feuille 2 , mettre dans le code Feuil2.......etc
- fusionner les cellules b30:d30.Cette cellule deviendra la b30.
- Et copie ce code:

Private Sub Workbook_Open()

'--------METTRE CE CODE SUR THISWORKBOOK------------------

'Vide la liste du combobox
Feuil1.ComboBoxMonnaie.Clear
'Rend le combobox non modifiable
Feuil1.ComboBoxMonnaie.Style = fmStyleDropDownCombo
'Remplissage des 3 monnaies dans combobox
Feuil1.ComboBoxMonnaie.AddItem "Euro (€)"
Feuil1.ComboBoxMonnaie.AddItem "Dollar ($)"
Feuil1.ComboBoxMonnaie.AddItem "Pound (£)"


End Sub

---------------------------------------------------------------------------
Private Sub ComboBoxMonnaie_Click()

'--------METTRE CE CODE SUR FEUIL1------------------

If Feuil1.ComboBoxMonnaie.ListIndex = 0 Then
'formate en livre
Feuil1.Range("B30").NumberFormatLocal = "# ##0.00€"
ElseIf Feuil1.ComboBoxMonnaie.ListIndex = 1 Then
'formate en euro
Feuil1.Range("B30").NumberFormatLocal = "# ##0.00$"
ElseIf Feuil1.ComboBoxMonnaie.ListIndex = 2 Then
'formate en dollar
Feuil1.Range("B30").NumberFormatLocal = "# ##0.00£"
End If
'Enregistre le classeur
ActiveWorkbook.Save

End Sub

-----------------------------------------------------------------------------

Quand tu vas choisir l'unité monnétaire , tu vas modifier le symbole.
Attention , ce programme ne tiens pas compte du change.

Je ne sais si ça te conviens !
Merci de me donner des nouvelles ou de me demander de l'aide

A++
Messages postés
20
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
12 septembre 2008

Merci dedenet2.

Ce code n a pas marche avec ma feuille ( parce que comme tu l as dit je n ai pas fourni tous les details sur ma feuille, desolee ) mais m a permis d en creer un autre.

Vbe n appreciait pas la fin du code place sur this workbook.

Mais ton idee de combobox m a ete tres utile. J ai cree un combobox auquel j ai refere les elements que je voulais voir apparaitre dans ma liste et j ai indique la cellule b29 comme cellule liee a ce combobox.
Puis j ai assignee au combobox une macro qui correspond a ce que tu me proposais pour l evenement click.


ca donne

Sub ComboBoxMonnaie()
    If Range("b29") = "1" Then
              Range("B30").NumberFormatLocal = "# ##0.00£"
    ElseIf Range("b29") = "2" Then
              Range("B30").NumberFormatLocal = "# ##0.00€"
    ElseIf Range("b29") = "3" Then
              Range("B30").NumberFormatLocal = "# ##0.00$"
    End If
End Sub


 Et ca marche. Encore merci!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
thème topic : déplacé de VB6 vers VBA
Messages postés
20
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
12 septembre 2008

Etant tout a fait nouvelle tant en programmation que sur le site je ne comprends pas.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
tu avais mal classé ta question, j'ai corrigé

<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_LANGAGES-DERIVES_287.aspx Langages dérivés] / [infomsgt_VBA_244.aspx VBA] / macro format conditionnel des nombres sur excel</li>

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonjour Lilikel ,
Comme tu le dis et vue la complexité de mise en forme en général avec VBA Excel,Il est difficile de bien répondre aux problémes.
Les codes que j'envoie sont testés sur Excel 2000 et il est possible que
certaines instructions ne fonctionnent pas bien sur d'autres versions d'Excel.
Quoi qu'il en soit , j'essaie de proposer une quelque chose et même si cela ne
correspond pas exactement , peut vous aiguiller sur une autre solution.
Cordialement
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
re-bonjour
Je n'ai pas du tout ressenti de mal de ta part.
J'ai simplement expliqué comme je procedais.C'est peut être moi qui
c'est mal exprimé.
Si tu as un autre problème de programmation,n'hésite pas à m'en faire part.
Je t'aiderai si je peux le faire.
Bon travail.
A++