IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Un point à la place de la virgule dans textbox monétaire [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut Un point à la place de la virgule dans textbox monétaire
    bonjour,
    je voudrais juste savoir si il est possible de remplacer la virgule par le point du clavier numérique.
    J'ai essayer plusieurs chose trouver à droit et à gauche mais sa ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'procédure permettant le formatage automatique en euros
    Private Sub tfacturation_AfterUpdate()
    With Tfacturation
    If IsNumeric(.Value) Then
    .Value = Format(.Value, "# ##0.00 €")
    .ForeColor = IIf(.Value < 0, vbRed, vbBlack)
    Else
    MsgBox "Erreur de saisie", 64, "la saisie doit être numérique"
    End If
    End With

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Ce n'est pas la donnée, qu'il faut formater, mais la cellule qui la reçoit.
    Voilà
    Et ta question (VBA) relève de la section VBA et non de la section Excel
    Voilà également
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Salut.

    Après saisie, tu peux utiliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub tFacturation_AfterUpdate()
      tFacturation = Replace(tFacturation.Value, ",", ".")
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut
    Re
    merci pour vos réponses.
    C'est par souci de commodité que je souhaiterais avoir possibilité de taper le point du clavier numérique de mon ordit portable à la place de virgule .
    Et pour le placement de ma question, je ferais attention la prochaine fois.

  5. #5
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    Après saisie, tu peux utiliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub tFacturation_AfterUpdate()
      tFacturation = Replace(tFacturation.Value, ",", ".")
    End Sub
    merci pour la réponse mais désolé je ne comprend pas.
    C'est lors de la frappe que je souhaite mettre le point au lieu de la virgule.
    Pouvez-vous m'éclairer la dessus par rapport à mon code actuel.
    Merci d'avance

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Pour substituer un "." à la "," en cours de frappe --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If KeyAscii = Asc(",") Then KeyAscii = Asc(".")
    End Sub
    Et si c'est le contraire, que tu veux faire (frapper le "." et obtenir une ",") --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
    End Sub
    je ne traite dans ces exemples que la substitution. A toi de mettre tes autres conditions
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Tu donnais le code sur AfterUpdate, donc j'en ai conclus que tu voulais transformer après saisie.

    Pour la transformation durant saisie, tu pourrais utiliser le code suivant. J'ai trouvé la valeur 188 par test, car je pense qu'il n'existe pas de constante vbKey pour la virgule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub tFacturation_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      Select Case KeyCode
        Case 188
          tFacturation.Text = Replace(tFacturation.Text, ",", ".")
      End Select
    End Sub

    EDIT:
    solution de Jacques plus simple... Je cherchais midi à quatorze heures...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    À toutes fins utiles (le contexte n'est pas obligatoirement le même), j'ai ce code dans un formulaire :

    Private Sub Tb_val_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Tb_val = nom de la TextBox
    If InStr("1234567890.", Chr(KeyAscii)) = 0 Or InStr(Tb_val.Value, ".") <> 0 And _
    Chr(KeyAscii) = "." Then
    MsgBox "Vous avez tapé " & "'" & Chr(KeyAscii) & "'" & " : les caractères valables sont les" _
    & " chiffres et si décimale(s), un seul point !"
    KeyAscii = 0
    End If

    End Sub

    Private Sub Tb_val_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    If Tb_val.Value <> "" Then
    valt = Tb_val.Value
    tnum = Replace(tnum, ",", ".")
    End If
    End sub

  9. #9
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut
    re,
    désolé pour l'absence de balises,
    voila j'ai essayer d'adapter avec ce que vous m'avez indiqué, de différentes façon, mais sa ne fonctionne pas.
    Ci-dessous le dernier code essayé mais la sa m'indique une erreur de compilation et de syntaxe.
    Je suis pas informaticien. Je regarde ,j'essaye de comprendre, j'adapte mais des fois sa veux rien savoir.
    Encore merci pour votre attention


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    'procédure permettant le formatage automatique en euros
    Private Sub tFacturation_AfterUpdate()
    With Tfacturation
    If IsNumeric(.Value) Then
    .Value = Format(.Value, "# ##0.00 €")
    .ForeColor = IIf(.Value < 0, vbRed, vbBlack)
    Else
    MsgBox "Erreur de saisie", 64, "la saisie doit être numérique"
    End If
    End With
    'procédure permettant d'autoriser que des chiffres et un point
    If InStr("1234567890.", Chr(KeyAscii)) = 0 Or InStr(Tfacturation_val.Value, ".") <> 0 And
    Chr(KeyAscii) = "." Then
    KeyAscii = 0
    End If
    End Sub

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Ouais...
    Les rudiments (au moins ceux-là) sont à apprendre avant de commencer à développer et il est évident que tu ne les as pas encore acquis.
    Le contrôle de saisie en cours de saisie est une chose
    La vérification de cohérence en fin de saisie en est une autre.
    La valeur de Keyascii est inconnue dans l'évènement AfterUpdate. On ne peut tout mélanger ainsi.
    Ne mets s'il te plait pas la charrue avant les boeufs. Commence par l'acquisition des rudiments, si tu veux développer. Dans le cas contraire, tu seras TOUJOURS dépendant, y compris pour les choses les plus simples, de la bienveillance de Pierre, Paul ou Jacques (qui se lasseront vite, crois-moi).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  11. #11
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut
    ok merci quand même

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par unparia Voir le message
    Pour substituer un "." à la "," en cours de frappe --->>[...]
    Parfois, je me demande à quoi cela sert qu'une solution, valide qui plus est, soit postée, puisqu'il est manifeste qu'elle n'est pas testée par le demandeur...

    Orcinus, teste la solution qui t'a été proposée par unparia, elle est fonctionnelle et te voilà tiré d'affaire.

    Après, même si tu es non-informaticien, tu peux te documenter dessus (et sur les solutions proposées pour tes autres questions) pour devenir moins dépendant du forum par la suite... (Mais au moins, teste les solutions proposées... )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  14. #14
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    Points : 59
    Points
    59
    Par défaut
    merci
    je vais regarder avec beaucoup d'attention

  15. #15
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    C'est par souci de commodité que je souhaiterais avoir possibilité de taper le point du clavier numérique de mon ordit portable à la place de virgule .
    Je me demande si ce n'est pas tout simplement le changement du séparateur décimal que tu veux (?)
    C'est dans le panneau de config / Région et langues / Formats / Paramètres supplémentaires...
    Choisir le . en symbole décimal
    eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Format textbox Point à la place de la virgule
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2013, 10h11
  2. [XL-2003] Remplacer un point par une virgule dans Textbox
    Par tibs1502 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2013, 10h48
  3. [Débutant] [VS2003] Point à la place d'une virgule dans une String
    Par ahmedige dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/07/2011, 15h17
  4. point et virgule dans textbox
    Par greg06500 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/08/2007, 13h19
  5. point à la place de la virgule
    Par afrodje dans le forum VB.NET
    Réponses: 6
    Dernier message: 14/03/2007, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo