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 :

Conditionner un format sur TexTbox


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    finance
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Par défaut Conditionner un format sur TexTbox
    Salut tous le monde, premier post,

    Je débute en VBA excel je voudrais savoir conditionner le format d'une Textbox dans un userform,

    L'utilisateur devra remplir plusieurs champs dont un choix dans un menu déroulant, si certain champs sont mal renseignés ils s'affichent en rouge sinon en vert,

    Je voudrais savoir comment paramétrer un TextBox de façon à ce que celui s'affiche en rouge si le format ne respecte pas celui ci : Caractères = 12 ; les 2 premiers sont des lettres ; les 10 suivants sont des chiffres,

    Je suppose qu'il faut que j'emploie un "If" ou un "If not" avec une formule "format" spécifié sur ma TextBox de la forme : If not Textbox.value.format(length : 2 .. ) mais je ne connais pas la forme de la formule,

    Pouvez vous m'aidez ?

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    tu travailles sous Excel, Access ou une autre application ?

    Sous Access il existe des Masques de saisie.

    Sinon il faudra effectivement faire un decoupage par bloc de caracteres.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Homme Profil pro
    finance
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Par défaut
    Salut J-P,

    Effectivement je n'ai pas précisé il s'agit de vba excel

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    voir du côté de l'opérateur Like comme documenté dans l'aide VBA interne …

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    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 et un salut à Marc-L
    En effet ultra-simple en utilisant l'opérateur Like si aucune des deux lettres n'est accentuée. Egalement ultra-simple si par "deux lettres" on entend "tout caractère hormis numérique"
    Si à la fois accent(s) admis et uniquement lettres pour les 2 1ers caractères : la chaîne à définir comme filtre de like est alors un peu complexe et à construire d'une manière non exposée dans l'aide VBA.
    Précise-nous donc ce point.

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Salut Jacques !

    Effectivement, cela demande un éclaircissement de la part du demandeur …

  7. #7
    Futur Membre du Club
    Homme Profil pro
    finance
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Par défaut
    Bonjour a tous merci de vos reponses,

    J'ai bien trouvé la doc interne,

    Pour repondre a ta question les 2 premiers caracteres doivent etre des lettres exluant tout accent ou caracteres speciaux.
    Le but etant de saisir des codes ISIN de forme "XS1627282652" ; "FR7556458746"

    Je touche le bout je bloque sur le joker a utiliser pour les lettres, en existe t il un ou alors faut il que japplique un if not numeric sur mes 2premiers caractere et ensuite le like sur les 10 suivants ?

    Merci d'avance

  8. #8
    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
    C'est alors on ne peut plus simple et bien exposé dans l'aide VBA :
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chaine = "AB1234567890"
    crit = "[A-Z][A-Z]##########"
    MsgBox chaine Like crit

  9. #9
    Futur Membre du Club
    Homme Profil pro
    finance
    Inscrit en
    Avril 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 5
    Par défaut
    J'ai trouvé au moment de ton post je te remercie en tout cas, je vais juste le trifouiller pour qu'il m'accepte les lettres en maj/min

  10. #10
    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
    Je vais juste le trifouiller pour qu'il m'accepte les lettres en maj/min
    ne "trifouille" pas le critère, mais son utilisation --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    crit = "[A-Z][A-Z]##########"
    MsgBox ucase(chaine) Like crit

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    si si il pourrait très bien gérer le min et majuscule dans "crit "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    chaine1 = "AB1234567890"
    chaine2 = "Ab1234567890"
    chaine3 = "a11234567890"
    crit = "[A-Z-a-z][A-Z-a-z]##########"
    MsgBox chaine1 Like crit
    MsgBox chaine2 Like crit
    MsgBox chaine3 Like crit
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    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
    A Patricktoulon :
    personne n'a dit le contraire.
    Il est toutefois moins lourd d'utiliser le Ucase dans l'utilisation du critère, plutôt que de compléter le critère et forcer à faire ainsi une vérification plus lente.
    Une autre solution (toujours sans modification du critère) : utiliser Option Compare Text

    A Patricktoulon :
    Je veux bien que l'on propose,. Encore faut-il tester ce que l'on propose :
    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chaine = "-b1234567890"
    crit = "[A-Z-a-z][A-Z-a-z]##########"
    MsgBox chaine Like crit
    Vu ? (et tu vois pourquoi, j'espère).
    Il y a pourtant une manière autre de le dire (et l'écrire) sans faille, mais uniquement à condition :
    1) de respecter la notation de l'opérateur Like (ce que tu ne fais pas)
    2) d'en connaître ce que n'en expose pas l'aide VBA.
    Amitiés.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    et bien que cela te tienne ,je n'avais pas compris qu'il y avait des exceptions sur les caractères particuliers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()Dim chaine(5) As String, i As Long
    chaine(1) = "aB1234567890"
    chaine(2) = "ab1234567890"
    chaine(3) = "5B1234567890"
    chaine(4) = "-B1234567890"
    chaine(5) = "A11234567890"
    crit = "[A-Z a-z][A-Z a-z]##########"
    For i = 1 To 5
    Debug.Print chaine(i) Like crit
    Next
    End Sub
    je pourrais ajouter aussi que dans les conribs il y a moulte méthodes pour formater un textbox directement pendant la saisie
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    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
    Tu devrais vraiment tester avant de proposer, patricktoulon
    Ta notation est encore fausse ("qu'à cela ne tienne ou non"), cette fois-ci en sens inverse.
    Bon ...
    La notation sans faille (et sans or ni and) existe bien. Je l'aurais montrée si (uniquement si) nécessaire.
    Le demandeur a eu sa solution. J'en reste donc là.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    tester? ...en voila une idée..... pourquoi faire?
    Nom : Capture.JPG
Affichages : 1072
Taille : 100,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    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
    Je ne sais pas comment tu testes (ou écris en réalité) ...
    Ceci
    chaine = "Ab1234567890"
    crit = crit = "[A-Z a-z][A-Z a-z]##########"
    MsgBox chaine Like crit
    m'affiche Faux au lieu de vrai.

    EDIT excuse-moi (faute de frappe). Ta proposition fonctionne

    EDIT 2 : Ben finalement non --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ch = "A 1234567890"
    crit = "[A-Z a-z][A-Z a-z]##########"
    MsgBox ch Like crit

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    teste avec ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    crit = "[A-Za-z][A-Za-z]##########"
    en fait c'est comme pour le regex selon comment ton pattern est ecrit
    ca revient a ecrire ca tou simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    crit = "[A-z][A-z]##########"
    on inclus les 26 lettres maj/min soit 52 lettres
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    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
    Il était temps (3 tâtonnements) ...
    Et il est tellement plus simple de ne rien modifier du critère et d'utiliser Ucase ou Option Compare Text, non ?

    Quant à
    ca revient a ecrire ca tou simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    crit = "[A-z][A-z]##########"
    Je m'inscris en FAUX ! C'est inexact !

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    j'ai pourtant testé avec
    min et maj
    l'inverse
    une lettre un espace
    une lettre et un caractère spécial
    des lettre dans la série des chiffres
    etc...
    et mes résultats sont corrects
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    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
    et mes résultats sont corrects
    jusqu'à ce qu'ils ne le soient plus, un jour ou l'autre, face à ce qui n'a pas été prévu ...
    Mais une autre fois : le demandeur a exposé une difficulté. Il a eu une solution.
    J'arrête donc personnellement là mon intervention dans la présente discussion.
    Voilà.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/09/2007, 14h00
  2. formation sur OAS / DESIGNER À MONTRÉAL
    Par yac dans le forum Designer
    Réponses: 2
    Dernier message: 09/07/2007, 12h09
  3. format de textbox
    Par zulul dans le forum IHM
    Réponses: 1
    Dernier message: 27/11/2005, 19h32
  4. formation sur Oracle
    Par bensaid dans le forum Oracle
    Réponses: 1
    Dernier message: 21/11/2005, 10h28
  5. [VB.NET] focus déficiant sur TextBox
    Par joefou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/10/2005, 14h56

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