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 :

Comment passer le clavier en majuscule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut Comment passer le clavier en majuscule
    Bonjour,

    Je voudrait qu'au lancement de mon UserForm le clavier se mette en majuscule et quand je sort redeviens en minuscule

    il y a bien la fonction Ucase mais ça répond pas forcement à mon attente.

    Merci de votre aide.

  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
    Cela ne se fait qu'en passant par une fonction de l'Api de Windows, ce qui est quelque peu démesuré.
    Il est vraisemblable qu'une explication précise détaillée des tenants et aboutissants (de tes besoins) conduira à une solution moins "lourde".
    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
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    J'ai un UserForm avec plein de TextBox à remplir.

    C'est TextBox me permette de crée des dossiers, remplir des fichiers et certaines de ces valeurs sont stocker dans des variables pour utilisation plus loin dans le code.

    Et comme toutes les information que je doit remplir doivent être en majuscule, c'est pour ça que je voulais savoir si c'était possible. Si vous me dite qu'il y a plus simple je suis complétement preneur.

    Merci

  4. #4
    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
    Je m'en doutais un peu
    regarde ce que fait ceci (exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
      KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Sub
    Que je préfère personnellement à cette autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Change()
     TextBox1.Text = UCase(TextBox1.Text)
    End Sub
    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.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Y as-t-il un moyen de le généraliser d'un coup à tous les TextBox?

    Je n'ai pas que tu texte dans les TextBox j'ai aussi des valeurs numérique

  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
    Je n'ai pas que tu texte dans les TextBox j'ai aussi des valeurs numérique
    Oui ? -->> il se trouve que les chiffres sont les mêmes en minuscule et en majuscule
    Pour le reste (appliquer une procédure évènementielle à plusieurs textboxes) -->> il te faut alors passer par un module de classe. Cela s'apprend et tu as pour apprendre cela un didacticiel sur ce forum.
    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
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Nico451 Voir le message
    Je n'ai pas que tu texte dans les TextBox j'ai aussi des valeurs numérique
    Dans un TextBox (comme son nom l'indique) il y a du texte, il n'y a pas de valeur numérique, mais un texte que la représente.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Peut tu m'indiquer où je pourrais trouver ce didacticiel. Merci

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Bonjour Nico451

    Si j'ai bien compris la question cela devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Activate()
        SendKeys "{NUMLOCK}", False
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
            SendKeys "{NUMLOCK}", True
    End Sub
    A condition que le pavé numérique soit déverrouillé

  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
    Peut tu m'indiquer où je pourrais trouver ce didacticiel. Merci
    tu veux de la lecture ? -->>
    En voilà

    https://tissotemmanuel.developpez.co...les-de-classe/
    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
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    modus57 : C'est pas le pavé numérique c'est le capLock que je veux activer pour que mon texte soit en Majuscule

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 779
    Points : 178
    Points
    178
    Par défaut
    Peut-être en remplacement tout simplement "Numlock" par "CapLock"

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Merci, c'est ce que j'ai fait.

    Mais maintenant j'ai des problèmes supplémentaires :

    1) Quand je valide un textbox je fait apparaître un Frame avec des textbox. Le souci est que quand je veux valider la première textbox, je ne peux pas passer à la suivante.

    2) J'ai un souci aléatoire. Je m'explique. Avec cette fonction je suis en majuscule et le contrôle sur le clavier le caplock n'est pas activé. Quand j'appuie sur caplock je suis en minuscule.

    3) Je boss avec un ordi portable, mais j'utilise de temps en temps un clavier externe avec un pavé numérique. Le souci, est que quand je lance mon UserForm le pavé numérique ce désactive.

    4) Comme je suis en court de programmation, de temps à autre mon programme plante. Donc le Caplock est toujours actif, mais quand j'ecrit dasn mon UserForm je suis en minuscule.

    Je pense que le problème est que l'ordi garde en mémoire les paramètres, et comme je relance il fait l'inverse. Il faudrait que tous les paramètres redevienne normal dans tous les cas (beug, sortie avant d'avoir fini, etc...)

    Merci de votre aide.

  14. #14
    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
    Cette manoeuvre de transformation de l'état du clavier est et sera toujours plutôt scabreuse.
    Je comprends que les modules de classe peuvent te paraître compliqués.
    Tu peux l'éviter si le nombre de tes textboxes concernées est relativement faible.
    Combien en as-tu, concernées par cette mise en majuscule ?
    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.

  15. #15
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    unparia : Pour le moment 8 textBox pour les majuscules sur les 19 que j'ai.

    Sur les 19, j'ai 2 textbox pour la date, le reste c'est des valeurs numérique

  16. #16
    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
    Sur les 19, j'ai 2 textbox pour la date, le reste c'est des valeurs numérique
    Ni les dates, ni les nombres ne sont dotés de caractères subissant la casse...
    tu n'as donc QUE 8 textboxes concernées par l'imposition de saisie en lettres majuscules ?
    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.

  17. #17
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    unparia : Oui pour le moment que 8 TextBox. Sur les 8 j'ai 4 TextBox oui j'ai des lettres qui doivent être en majuscule avec des chiffres et des -. C'est des références pour ces 4 TextBox.

  18. #18
    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
    Bon ...
    Je ne comprends rien à tes nombres de textboxes concernées.
    Peu importe:
    mets ceci dans l'évènement keypress de chacune de celles concernées par l'imposition en majuscules :
    et crée cette procédure toto --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub toto(ByRef KA As MSForms.ReturnInteger)
      KA = Asc(UCase(Chr(KA)))
    End Sub
    cela suffira.
    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.

  19. #19
    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 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Citation Envoyé par unparia Voir le message
    Oui ? -->> il se trouve que les chiffres sont les mêmes en minuscule et en majuscule [...]
    Citation Envoyé par unparia Voir le message
    Ni les dates, ni les nombres ne sont dotés de caractères subissant la casse...[...]
    Mon grain de sel...

    Sans pavé numérique, SHIFT ou CAPSLOCK sont nécessaires pour la saisie d'un chiffre

    Cela dit, je ne valide pas la modification du clavier, que ce soit par API ou autre
    "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...
    ---------------

  20. #20
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Décembre 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Bonsoir Pierre : D'accord pour ne pas modifier le clavier par API ou autre. Mais y as-t-il une solution acceptable?

    unparia : Je vais essayer

Discussions similaires

  1. Comment passer un clavier en qwertz sans bureau
    Par lodan dans le forum Windows 7
    Réponses: 10
    Dernier message: 23/02/2016, 14h04
  2. Comment passer de minuscule à majuscule?
    Par moilou2 dans le forum Excel
    Réponses: 8
    Dernier message: 08/09/2008, 15h44
  3. PC portable : passer le clavier en majuscule
    Par DURVILLE dans le forum Langage
    Réponses: 1
    Dernier message: 21/04/2008, 13h45
  4. Comment passer une colonne en majuscule
    Par Wiz-W dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/07/2007, 11h39
  5. comment passer de access à MySQL
    Par isa_21 dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/10/2004, 08h51

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