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 :

Problème de formats dans un userform [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Problème de formats dans un userform
    Bonjour,

    (J'ai déjà eu ce problème, mais il s'agit d'un autre cas de figure.)

    Mon classeur comporte un userform de saisie de coordonnées bancaires.

    Je souhaite formater mes données sur un nombre de caractères donné.
    Ex : si saisie 12 en code banque, alors il s'affiche "00012"

    Pour cela, dans le code de mon userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub saisie_cd_banque_Exit(ByVal Cancel As MSForms.ReturnBoolean)
     
    With Me.saisie_cd_banque
            .Value = Format(.Value, "00###")
    End With
     
    End Sub
    Même type de code pour les 3 autres données.

    Si je saisis, mon code banque, l'affichage est respecté.
    Mais dès que je saisis le code guichet, le code banque revient à 2 caractères.


    Les 4 données du RIB ont leur controlsource placés sur une feuille "Données".

    J'ai aussi tenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Value = Format(Sheets("Données").Range("cd_banque").Value, "00###")

    J'ai remarqué d'autre part que si je supprimais la feuille "Banque" (lettre au client) initialement liée à la feuille "Données", l'affichage était bien respecté ? Et ce alors que j'avais supprimé dans un second temps toutes les références à la feuille "Données" ????

    Y a-t-il une explication ?

    Pour une meilleure illustration, je peux joindre un fichier (allégé)

    Par avance, je vous remercie.

    Marcel.

  2. #2
    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
    Bonsoir MarcelG, le forum,
    Il faudrait plus d'explications. Dans ton USF, les données apparaissent t'elles dans une listbox ou combobox, si oui, la propriété rowsource est'elle donnée par les propriétés du combo ou list ou entrée par code ?

    A +
    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...)

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Textbox
    Merci pour ta réponse.

    Mes données sont de simples Textbox

    Cordialement.

    Marcel.

  4. #4
    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
    est-ce un texbox pour le cde guichet, un pour le code banque, etc. ou un seul textbox qui reprend les données de ta feuille, car tu parlais de source. Des solutions existent pour les deux cas, soit écrire dans les textbox et reporter sur la feuille, soit reprendre les données de ta feuille à inserer dans les textbox.

    Précises encore et je pourrai certainement t'aider
    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...)

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Format Textbox
    Re bonsoir,

    Il s'agit de 4 textbox (banque, guichet, numéro et clé).
    Chaque textbox est lié (controlsource) à une cellule figurant dans la feuille "Données".
    Initialement, à cette feuille "Données", était liée une deuxième feuille (Lettre Client)

    Souhaites-tu que je te joignes un fichier simplifié ?

    Encore Merci.

    Marcel.

    PS : je vais quitter le travail, et je te dis à demain avec plaisir.

  6. #6
    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
    Afin de gagner du temps, ton fichier sera utile car si la source est une feuille, j'imagine que tu fais tes saisies dans cette feuille.

    En attendant, une solution parmi d'autres
    j'ai imaginé tes saisies en "a2", "b2", "c2" et "d2" de ta feuille "données"
    bien sur, mes noms de textbox sont a remplacer par les tiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Activate()
    cbanque = Mid("000", 1, 5 - Len(Range("a2"))) & Range("a2") 'si le code banque a 5 chiffres
    guichet = Mid("000", 1, 5 - Len(Range("b2"))) & Range("b2") 'si le code guicheta 5 chiffres
    compte = Mid("000", 1, 8 - Len(Range("c2"))) & Range("c2") 'si le numéro de compte a 8 chiffres
    'même procédure avec la clé au besoin
    cle = Range("d2")
    End Sub
     
    ' par contre, si tu interviens sur les textbox, adapter le code avec le bon évènement
    PS : j'ai oublié de préciser que si tes cellules sont mise au format texte, tout ce code est inutile
    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...)

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Pb de formats userform
    Bonjour casefayere, Bonjour le forum

    Casefayere,

    J'ai appliqué ton code à l'évènement Exit des 4 Texbox banque, guichet, compte et clé.
    Toujours le même problème,
    Par contre, dès que je supprime la feuille "Changt_Banque" de mon classeur, alors les problèmes d'affichage sont résolus.
    Pourquoi ?
    Sauf erreur de ma part, j'ai effacé toute cellule dans cette dernière feuille
    liée à la feuille "Données" qui comprend les controlsource de mon userform.

    Comme convenu, ci-joint mon fichier.

    Merci encore.

    Cordialement.

    Marcel.

  8. #8
    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
    Bonsoir,
    je pense que tu es mal parti avec tes codes,
    déjà quand tu cliques sur le bouton, tu effaces les données, ensuite tu exécutes ce code, pour moi illogique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub saisie_cd_banque_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim valbanque As String
    valbanque = Sheets("Données").Range("cd_banque")'donc rien à valbanque car plus de données, elles sont effacées
    saisie_cd_banque = Mid("00000", 1, 5 - Len(valbanque)) & valbanque'donc que des 0 à saisie_cd_banque
     
    End Sub
    rien qu'à ce stade,j'aimerais comprendre ce que tu cherches en sortant de ce textbox, quand j'aurai compris ça, je pourrais peut-être t'aider sur le reste car il est inutile que j'aille plus loin sans comprendre ta démarche

    Bonne soirée
    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...)

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Formats de Textbox
    Bonjour Casefayere, Bonjour le Forum

    Mon userform est à la disposition de mes collègues.

    Ce qui m'intéresse, c'est l'ergonomie de chaque Texbox après leur saisie, d'où la gestion de l'évènement Exit.

    Si l'utilisateur entre 50 comme code banque, alors le Textbox affiche "00050" lorsque l'utilisateur retourne cette valeur et que le focus se déplace sur le Textbox suivant (code guichet), et de même pour les autres données.

    Ici les ControlSource se trouvent dans la feuille "Données".

    Dans le fichier joint, tu verras que si tu supprimes la feuille "Changt_Banque" alors, après avoir chargé l'usf et saisi les données, tu obtiens des Textbox bien formatés. Et c'est là mon interrogation.

    J'énonce peut-être une erreur, mais le fait d'effacer les données avant la saisie n'altère pas l'ergonomie de l'usf, puisque ce sont les évènements Exit, donc après l'information des ControlSource, qui gèrent ce format. Mais, je me répète, je peux me tromper.

    En espérant avoir été plus clair.

    Merci.

    Marcel.

  10. #10
    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 MarcelG, le forum (mais c'est déjà fait)

    Peu importe tes explications mais je t'ai expliqué que ta démarche est impossible
    1- tu effaces les données
    2- tu voudrais que les textboxs récupèrent les données
    non c'est impossible sauf si tu passes par une variable qui va conserver ces données (avant de les avoir effacées)
    3 - tu insistes pour me dire que les cellules concernées sont des controlsources pour tes textboxs, franchement je ne comprends pas car ces données sont effacées avant :
    4- je préfère penser que :
    - à l'origine, tes textboxs prennent les valeurs de ta feuille "données"
    - ensuite, tu modifies ces informations et tu les valides, et là je pourrai t'aider.
    5- l'évenement "exit" est facile à gérer pourvu que je comprenne
    6- je pense que (comme tes textboxs n'ont qu'une valeur de modification), la feuille "données" est une destination après avoir été une source (dis-moi tout)

    Excuses-moi d'insister mais je n'ai pas trop de temps, alors, pour t'aider, je réitère qu'il faut que je comprenne ta démarche

    Mais je peux être aussi buté (ou un peu con, tout est possible dans un monde parfait) et ne rien comprendre, dans ce cas j'espère que quelqu'un, plus psychologue ou aguerri que moi pourra te répondre.

    En conclusion, je veux bien (et j'espère) t'aider pourvu que tes explications soient claires.

    Rien ne me sert d'avancer dans le programme (vu mon temps) si je ne saisis pas les premières lignes de code.

    Dans l'espoir que tu comprendras mon insistance,
    bon courage
    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...)

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

Discussions similaires

  1. [XL-2007] Problème de code dans un UserForm
    Par ip_flashor dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/04/2010, 09h57
  2. [PHP 5.2] Problème de format dans formulaire d'upload
    Par runcafre91 dans le forum Langage
    Réponses: 7
    Dernier message: 13/04/2010, 20h16
  3. Problème de format dans une cellule excel
    Par Nodoso dans le forum VB.NET
    Réponses: 6
    Dernier message: 13/12/2009, 18h26
  4. Problème de format dans une liste SharePoint
    Par tipierre76 dans le forum SharePoint
    Réponses: 1
    Dernier message: 05/06/2008, 20h21
  5. [VBA-E] Problème avec ShowModal dans un UserForm
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 09h19

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