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

Vue hybride

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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    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
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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

  3. #3
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    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 confirmé Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    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 confirmé Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    Mai 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Gard (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    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
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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

  7. #7
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    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...
    ---------------

  8. #8
    Expert confirmé
    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

  9. #9
    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

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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 95
    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

  11. #11
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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).

  12. #12
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    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...
    ---------------

+ 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, 11h11
  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, 11h48
  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, 16h17
  4. point et virgule dans textbox
    Par greg06500 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/08/2007, 14h19
  5. point à la place de la virgule
    Par afrodje dans le forum VB.NET
    Réponses: 6
    Dernier message: 14/03/2007, 19h40

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