Macro format conditionnel des nombres sur excel

Résolu
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008 - 13 août 2008 à 11:39
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 - 18 août 2008 à 12:43
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

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
17 août 2008 à 23:01
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++
3
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008
18 août 2008 à 11:06
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!
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 août 2008 à 14:01
thème topic : déplacé de VB6 vers VBA
0
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008
13 août 2008 à 14:43
Etant tout a fait nouvelle tant en programmation que sur le site je ne comprends pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 août 2008 à 15:03
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  
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
18 août 2008 à 12:18
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
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
18 août 2008 à 12:43
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++
0
Rejoignez-nous