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 :

[E-03] Trouver des minuscules


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut [E-03] Trouver des minuscules
    Bonjour à tous!

    Encore un fois, je me tourne vers vous, mais soyez heureux, vous me faites apprendre et avancer beaucoup!

    Voila ma question : Je convertis un fichier texte en fichier excel et je place chaque champ dans une colonne. Ensuite, toujours en VBA, il a plein de validations de faites.
    Mais une de ces validations doit être de vérifier si des caractères sont minuscules, car il ne doit pas en avoir.

    Vite comme ça, je proposerais une recherche dans tout mon classeur pour vérifier si j'ai un caractère entre le code 97 et 122 (http://www.asciitable.com/ASCII). C'est cette section qui correspond aux caractères minuscules. (65 à 90 pour les majuscules).

    Mais je me demandais s'il avait une façon plus simple du genre RechercheMinuscule ou quelque chose comme ça.

    Merci de vos idées!!!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Regarde l'aide en ligne associée aux fonctions UCase et LCase: c'est particulièrement adapté à ton cas et très simple d'utilisation.

    Pour tout le traitement de base des chaînes de caractères, tu as tout ce qu'il faut dans la bibliothèque de base de VBA. Va voir la rubrique "index/listes" -> "Résumé des mots clés de manipulation de chaînes" tu as tout ce qu'il faut pour 90% des cas. Les 10% restants, c'est l'opérateur Like et les expressions régulières.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour,

    S 'il ne doit pasy avoir de minuscule alors convertit te texte en majuscule
    FONCTION Ucase(string)

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut Drackra_Agfa,

    tu compares Chaine avec UCASE(Chaine).

    S'il y a une différence, alors il ya avit des minuscules.
    Cordialement.

    G@dz

  5. #5
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    ReBoujour et merci de la rapidité!

    Je ne m'attendais pas à avoir autant de réponses rapidement!

    Mais, je ne veux pas convertir en majuscule, je veux qu'il me le dise, alors Ucase ne fonctionne pas pour moi.

    Dans la liste que decondelite m'a donné (String Manipulation Keyword Summary) je ne trouve pas vraiment une fonction qui me donne si j'ai des minuscule.

    Je peux utiliser la technique à Godzestla mais je vais devoir utiliser un For each pour pouvoir essayer avec toutes les cellules de mon classeur (environ 20 colonnes et 2000 lignes, avec 5 feuilles)

    Ça peut être très long mais s'il n'a pas d'autre solution.

    Mais je vais regarder si un boucle de 97 à 122 (pour chaque code d'une minuscule) avec un find. Ce qui est pratique, c'est que je n'ai pas à faite toutes les cellules, je peux lui donner comme range ma feuille. Sauf que je dois tester si la boucle de 26 fois revient plus long que chaque cellule une fois...

  6. #6
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour

    avec une MFC (Mise en Forme Conditionnelle) : Menu Format
    se placer en A1
    selectionner toutes les cellules
    dans la MFC choisir la Formule est
    Mettre la formule : =A1<>Majuscule(A1)
    mettre un format (fond rouge)
    Valider

    Tout ce qui aura un fond rouge contiendra des minuscules

  7. #7
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour Wilfried,

    Cette façon m'a l'air efficace mais je ne comprends pas comment l'utiliser...
    Et, est-ce posssible de la transposer en code VBA?

    Merci beaucoup.

  8. #8
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    fonction personalisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function Minuscule(machaine as string) as boolean
          minuscule = true
          if ucase(machaine) = machaine then minuscule = true
    end function
    utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if minuscule(montexte) = true then msgbox "Il y a des minuscules"

  9. #9
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Merci, mais ce bout je le connais,

    Mais comment intégrer efficacement toutes les cellules de toutes les feuilles?

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonsoir,

    je n'interviens ici que sur un point :
    Eviter de lancer une boucle sur les cellules si elle n'est pas utile (une telle boucle est gourmande).
    On en a la possibilité : il suffit pour celà de lire, avant importation, le fichier texte dans son ensemble (on va dire dans une variable toto) et de comparer toto et Ucase(toto) ===>> résultat dans une variable booléenne titi.
    On ne lance la boucle dans Excel (donc après importation) que si titi = false.
    (ce n'était qu'en passant et indépendamment du reste).

  11. #11
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Merci! Ceci me permettra de faire exactement ce que je veux!

    Et je termine cette discussion en ouvrant une nouvelle, comment affecter tout un fichier dans une variable : http://www.developpez.net/forums/d64...e/#post3810924

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

Discussions similaires

  1. [Visual Object] Où trouver des infos ?
    Par itanea dans le forum Autres langages
    Réponses: 2
    Dernier message: 10/09/2004, 16h55
  2. Ou trouver des tut pour Dx9 en c#?
    Par sen dans le forum DirectX
    Réponses: 3
    Dernier message: 24/02/2004, 15h44
  3. Réponses: 6
    Dernier message: 13/09/2003, 13h42
  4. [Kylix] Trouver des composants pour Kylix 3
    Par busy999 dans le forum EDI
    Réponses: 2
    Dernier message: 17/02/2003, 15h01
  5. [SWT] Un bon coin ou trouver des infos pratik
    Par yolepro dans le forum SWT/JFace
    Réponses: 8
    Dernier message: 04/12/2002, 15h08

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