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 :

Format de cellules - remplissage par textbox [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é
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 121
    Par défaut Format de cellules - remplissage par textbox
    Bonjour à tous,
    Je développe un formulaire de saisie de données sur Excel.
    J'alimente une feuille Excel à partir de données saisies dans des textbox.
    Et je rencontre un problème de format de cellule.
    Mon code d'alimentation de la feuille est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H" & nbl1) = UserForm1.TextBox8.Value
    La colonne H est en format monétaire, 2 chiffres après la virgule.
    Lorsque je saisie une valeur entière, 500 par exemple, pas de soucis, la feuille s'alimente et la cellule contient 500,00€
    Par contre lorsque je saisie une valeur décimale, 500,50 par exemple, problème, la feuille s'alimente mais la cellule affiche 500,50 aligné à gauche en précisant "nombre formé sous forme de texte".
    J'ai essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H" & nbl1) = Format(UserForm1.TextBox8.Value, "# ##0,00€")
    mais sans succès.
    Merci pour vos idées !
    Bonne journée

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Oui, c'est normal, le TextBox renvoi une donnée de type String.
    Si ta cellule est formatée en numérique, ça le fait pas.
    De même la fonction Format renvoi un String.
    Essai plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H" & nbl1) = CCur(UserForm1.TextBox8.Value)
    Là tu convertis en Currency, qui est un numéric!
    Cordialement,

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    une solution,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub nomdetatextbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)'penses à remettre le nom de ton textbox
    separateur
    If Chr(KeyAscii) = "." Or Chr(KeyAscii) = "," Then KeyAscii = Asc(sepdec)
    End Sub
    et dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub separateur()
    sepdec = Application.International(xlDecimalSeparator)
    End Sub
    Edit : pas vu ta réponse, Philippe
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 121
    Par défaut
    Merci Philippe, ça fonctionne parfaitement.
    Casefayere, merci également même si je n'ai pas testé ta solution.
    Par ailleurs, je contrôle la saisie de ma textbox par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If KeyAscii = 46 Then KeyAscii = 44
    If InStr("1234567890,.-", Chr(KeyAscii)) = 0 Or TextBox8.SelStart > 0 And Chr(KeyAscii) = "-" _
    Or InStr(TextBox8.Value, ",") <> 0 And Chr(KeyAscii) = "," _
    Or TextBox8.SelStart = 0 And Chr(KeyAscii) = "," Then KeyAscii = 0: Beep
    Bonne journée !

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

Discussions similaires

  1. Comment remplir les cellules excel par le contenu des textbox
    Par USER_QUOT dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/05/2015, 16h10
  2. Réponses: 7
    Dernier message: 28/05/2015, 18h10
  3. Remplir une textbox avec le contenu d'une cellule choisie par un click
    Par Cadet69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/01/2015, 15h29
  4. [XL-2002] Format de cellule modifier par l'envoie d'une variable via un comboBox
    Par drics dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/10/2010, 08h37
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

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