Rechercher : dans
Par :

Comment supprimer des mots en minuscule dans

Dernière réponse le 15 sep 2008 à 15:32:41 janloup, le 13 sep 2008 à 00:33:02 
 Signaler ce message aux modérateurs

Bonjour,

dans une colonne j'ai un grand nombre de cellules comme ceci :

CASSES l'anesthèsiste
CANNELLE(S)
CANTALOUPS gigiboon
CAPRE(S)
CAPRON (S) gilsanth
CAPUCINES falbala73
CARDAMOMES
CARDE (S) tazounette kakou68
CARDON(S)
CARMINE
CAROTTE(S)
CAROUBE bestof

j'aimerais avec la commande la plus simple possible supprimer les mots en minuscule

par avance merci de votre aide

Configuration: Windows Vista
Firefox 3.0.1

Meilleures réponses pour « comment supprimer des mots en minuscule dans » dans :
[Windows] Impossible de supprimer un fichier ou un dossier VoirSi Windows n'arrive pas à supprimer un fichier ou un dossier, la cause peut être l'une des suivantes : Le fichier ou le dossier à supprimer est utilisé par un processus du système Le dossier à supprimer contient des fichiers ou dossiers cachés ...
[Logiciels] Désinstaller/Supprimer Windows Messenger VoirNote Suppression Suppression de Windows Messenger en ligne de commande Suppression de Windows Messenger par le panneau de configuration Note Windows Messenger est une version "allégée" de son grand frère, MSN Messenger. Elle peut...
Télécharger Logiciel à supprimer VoirLogiciel à supprimer - illégale (En violation de la GPL) De plus, le site de l'éditeur est listé chez MalwareDomains.
Télécharger Support IPX pour Vista VoirLe protocole IPX/SPX sert à de nombreux anciens jeux pour pouvoir jouer en réseau (Red Alert, Command & Conquer, etc.). Malheureusement, Microsoft a retiré le support du protocole IPX/SPX dans Vista (32bit). Néanmoins, il est possible de...
Mots de passe VoirLes mots de passe Lors de la connexion à un système informatique, celui-ci demande la plupart du temps un identifiant (en anglais login ou username) et un mot de passe (en anglais password) pour y accéder. Ce couple identifiant/mot de passe forme...
Supplier Relationship Management (SRM) VoirSupplier Relationship Management Le terme « Supplier Relationship Management » (noté SRM), traduisez « gestion de la relation fournisseur » désigne l'utilisation de technologies par une entreprise afin d'améliorer le mécanisme d'approvisionnement...

1

janloup, le 13 sep 2008 à 08:43:52

J'ai trouvé sur un forum cette ligne de commande :

le texte en A1,

en B1 :

=SUBSTITUE(A1;{"a";"b";"c";"d";"e";"f";"g";"h";"i" ;"j";"k";"l";"m";"n";"o";"p";"q";"r";"s";"t";"u";" v";"w";"x";"y";"z"};"")


mais ça ne supprime que le "a" ..


ou est l'erreur ?

j'ai trouvé aussi :

une proposition par VBA (Pour un texte en A1) à étendre à toutes les cellules concernées:

Sub test()
Dim Tex As String, LetCherch1 As String, LetCherch2 As String
Tex = Range("A1")
For i = Len(Tex) To 1 Step -1
LetCherch1 = Mid(Tex, i, 1)
LetCherch2 = Mid(UCase(Tex), i, 1)
If LetCherch1 <> LetCherch2 Then Tex = Replace(Tex, LetCherch1, "")
Next
Range("A1") = Trim(Tex)
End Sub


je n'ai pas réussi a utiliser

merci pour votre aide

janloup

Répondre à janloup

2

Sloubi76, le 13 sep 2008 à 09:32:59

Janloup,

Si le texte est en A1, mettre en B1 =minuscule(A1)

@ + Il faut blanchir les champignons!!!

Répondre à Sloubi76

3

Ivan-hoe, le 13 sep 2008 à 09:56:34

Bonjour Janloup,
Solution simple :
si on peut considérer que le nom (en majuscules) et le pseudo (en minuscules) sont séparés par le premier espace, alors on peut ne garder que la partie gauche du texte, avant l'espace.
formule en B1 (à étirer ensuite) :
=SI(ESTERREUR(CHERCHE(" ";A1));A1;GAUCHE(A1;CHERCHE(" ";A1)-1))
Inconvénient : ça pose problème pour CAPRON (S) et CARDE (S) à cause de l'espace avant le (S).

Autre solution, en utilisant une fonction personnalisée (à partir du code que tu fournis) :
copie le code ci-dessous dans un module VBA. Ensuite, dans Excel, tape la formule dans B1 : =SUPPRMINUS(A1)
Inconvénient : le code de la fonction devra être complété pour les cas particuliers que tu pourras rencontrer. Ici, ça prend en compte les minuscules, les chiffres et les apostrophes uniquement.

Function SUPPRMINUS(Tex As String) As String
    Dim LetCherch1 As String, LetCherch2 As String
    Dim i As Integer
    For i = Len(Tex) To 1 Step -1
        LetCherch1 = Mid(Tex, i, 1)
        LetCherch2 = Mid(UCase(Tex), i, 1)
        If LetCherch1 <> LetCherch2 _
        Or IsNumeric(LetCherch1) _
        Then Tex = Replace(Tex, LetCherch1, "")
    Next i
    Tex = Replace(Tex, "'", "")
    SUPPRMINUS = Trim(Tex)
End Function

Répondre à Ivan-hoe

4

janloup, le 13 sep 2008 à 10:19:45

Merci de la rapidité de ta réponse

je suis au boulot mais je vais essayer sur mes fichiers des cet aprem


pour les (S) précédés d'un espace ce n'est pas un problème

en faisant édition/remplacer je vire cet espace

je te confirmerais si çà marche

à bientôt

jan loup

Répondre à janloup

5

michel_m, le 13 sep 2008 à 10:31:52

Bonjour tout le monde,

Une autre fonction (avec ou sans espaces entre les maj et min)

Function extraire_maj(texto As Range)
Dim reg As Object
Dim extraction As Object
    Set reg = CreateObject("vbscript.regexp")
    reg.Global = True
    reg.Pattern = "(\w[A-Z()]{1,})"
    
    Set extraction = reg.Execute(texto)
    For Each maj In extraction
        extraire_maj = maj.Value
    Next maj
End Function

Michel

Répondre à michel_m

6

Ivan-hoe, le 13 sep 2008 à 19:29:40

Bonjour michel,
dans un but pédagogique, pourrais-tu expliquer chaque ligne de ton code ?
ça m'intéresserait de comprendre.
Salutations.
I.

Répondre à Ivan-hoe

7

michel_m, le 14 sep 2008 à 10:40:10

Bonjour Ivan-Hoe

Pas facile ta question!

La méthode que j'ai utilisé est celles des "expressions régulières, ou expressions rationnelles" (regexp) utilisée surtout sur les sites Web pour manipuler, extraire, vérifier des saisies de l'internaute. Les langages utilisés sont majoritairement Java, C, PhP; L'utilisation en VBA – tirée du Vbscript- reste marginale.
En PJ tu pourras trouver un exemple de vérification d'une syntaxe d'adresse mail: pas d'espace, arobase présent, au moins 1 point dans la 2° partie ; d'autres démos sont aussi jointes.

Deux documents à potasser où j'ai fait connaissance avec cette drôle de bête:
http://cafeine.developpez.com/access/tutoriel/regexp/
http://msdn.microsoft.com/en-us/library/1400241x.aspx

Il y en a d'autres…

Sur le code proposé :

-----
Dim reg As Object
Dim extraction As Object
Set reg = CreateObject("vbscript.regexp")

Déclaration des objets nécessaires et instantation de l'objet en expression régulière (regexp)
Il y a d'autres manières (voir PJ) mais celle-ci évite d'avoir à aller cocher la bibliothèque vbscript regular expression 5.5 dans les outils-ref de VBE chaque fois que tu changes d'ordi…
----

reg.Global = True
indique que l'on veut travailler sur toute la donnée de travail. Par défaut elle est à "false" (1 seule occurrence)
---

reg.Pattern = "(\w[A-Z()]{1,})"

C'est LA que tout se joue et c'est loin d'être évident (pour moi, ce qui explique mon retard à répondre!). On définit le modèle –ou motif- ("pattern") que devra suivre la donnée (ici "texto"). Dans notre cas:
"w" minuscule indique que l'on recherche des caractères alphanumériques de type texte
[A-Z ()] indique que l'on cherche l'alphabet littéraire en majuscule et les parenthèses
{1, } indique que la donnée doit comporter au moins 1 occurrence

nota: la syntaxe est très délicate. Par ex. "W "majuscule indique que l'on veut le complément de l'ensemble défini entre les crochets… Toutefois, cela peut être pratique pour extraire des caractères autres que les chiffres en utilisant la lettre "d": \d demande des chiffres \D demande tout sauf des chiffres (cf PJ)
---

Set extraction = reg.Execute(texto)
On instantie l'objet extraction ( être en objet va permettre de boucler dans extraction) en exécutant suivant le "pattern" modélisé sur la donnée de travail (texto)
---
For Each maj In extraction
extraire_maj = maj.Value
Next maj


On boucle pour transfèrer de l'objet au string extraire_maj, résultat de la fonction. J'aurais eu tendance à écrire extraire_maj= extraire_maj + maj.value mais ca marche sans (au départ j'avais oublié!!!)…

Voilà, voilà…. Mais je n'utilise rarement ces regexp et mes connaissance et compréhensions sont très faibles là-dessus. D'ailleurs, il y a 1 truc foireux: écris par exemple ffffXXX(E) et lance la procédure: moi, j'ai fXXX(E)… j'ai pas trouvé l'erreur

Dans la PJ:

Vérification d'une adresse mail ( réalisée avec plusieurs contributeurs sur un autre forum)
Extraction de chiffes et de lettres
Extraction de mots d'au moins N lettres sans doublons dans une phrase

Amuses toi bien quand m^me ! en espèrant avoir répondu à ta demande
Cordialement
http://cjoint.com/?jokI1MkbUS

Pas de nouvelles de Janloup? Michel

Répondre à michel_m

8

 Ivan-hoe, le 15 sep 2008 à 15:32:41

Merci d'avoir pris le temps d'expliquer, c'est sympa.
I.

Répondre à Ivan-hoe
Collection CommentÇaMarche.net