Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre analphabétique

15 réponses
Avatar
AndréBdR
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche à
droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me permettent
de trier l'ensemble de ces données, au choix, selon la Colonne 1, ou 2, ou
6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour moi,
à partir des éléments de la Colonne 3, qui sont du texte d'une douzaine de
mots au plus, genre « de Julien Duvivier, avec Sylvester Stallone et Désirée
Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que je
cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les accents
(« Désirée » serait tout à fait la même chose pour elle que « Desirée » et
les majuscules (pas de différence entre « Désirée » et « deSirée »).

Un grand merci d'avance.

10 réponses

1 2
Avatar
Jac
Bonjour André,

ton problème se résoud avec Données / Filtre automatique, puis dans la
colonne désirée Personnalisé... où tu iras dire que tu veux afficher
les lignes qui contiennent ce que tu as besoin.

Pour ce qui est des accents, solution 1 : tu les supprimes tous, mais
ça, je pense que tu ne vas pas aimer...

Solution 2, tu dupliques la colonne, supprimes les accents dans la
colonne dupliquée qui te servira à filtrer sans les accents. Puis tu
masques cette colonne fantôme. Avec l'enregistreur de macros, il ne
devrait pas te manque grand chose sauf :

Un bouton "Tout voir" qui supprime le filtre et la colonne fantôme.
Un bouton "Rechercher dans la colonne 3" qui met en place le filtre,
pose la question avec un inputbox et transforme la réponse en majuscule
afin de perdre les accents, filtre et masque la colonne fantôme.
Et comme les majuscules n'interviennent pas dans le filtre, le tour est
joué.

A la place de l'inputbox, tu pourrais rajouter quelques lignes au
dessus du tableau et te servir d'une cellule pour y (faire) écrire ton
élément de filtrage. La macro se servant de cette valeur pour alimenter
le filtre. Dans ce cas un seul bouton pourrait suffire : si la cellule
est vide il fait le "Tout voir" décrit au dessus, si non, il filtre
avec la valeur saisie. Et à l'ouverture tu effaces cette cellule et
lance la procédure "Tout voir".

On en reparle quand tu veux.

Jac

J'aurais besoin d'un petit coup de main pour écrire une macro pour un fichier
de 7 Colonnes où j'empile régulièrement des données, ligne par ligne, de la
ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche à
droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me permettent de
trier l'ensemble de ces données, au choix, selon la Colonne 1, ou 2, ou 6, ou
7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour moi,
à partir des éléments de la Colonne 3, qui sont du texte d'une douzaine de
mots au plus, genre « de Julien Duvivier, avec Sylvester Stallone et Désirée
Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que je
cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les accents («
Désirée » serait tout à fait la même chose pour elle que « Desirée » et les
majuscules (pas de différence entre « Désirée » et « deSirée »).

Un grand merci d'avance.


Avatar
isabelle
bonjour AndréBdR,

tu pourras, si tu le souhaite, ajouter d'autres voyelles dans les array()

Sub Macro1()
Accent = Array("é", "è")
SansAccent = Array("e", "e")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(Accent) To UBound(Accent)
x = LCase(Application.Substitute(x, Accent(i), SansAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1") ou de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then Rows(c.Row).Hidden = True
Next
End Sub

isabelle

AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche
à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.



Avatar
isabelle
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù", "û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u", "u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1") ou de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche
à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.



Avatar
AndréBdR
Merci Jac pour ta suggestion.
Mais je sens que je vais plutôt développer la seconde idée d'Isabelle

"Jac" a écrit dans le message de
news:
Bonjour André,

ton problème se résoud avec Données / Filtre automatique, puis dans la
colonne désirée Personnalisé... où tu iras dire que tu veux afficher les
lignes qui contiennent ce que tu as besoin.

Pour ce qui est des accents, solution 1 : tu les supprimes tous, mais ça,
je pense que tu ne vas pas aimer...

Solution 2, tu dupliques la colonne, supprimes les accents dans la colonne
dupliquée qui te servira à filtrer sans les accents. Puis tu masques cette
colonne fantôme. Avec l'enregistreur de macros, il ne devrait pas te
manque grand chose sauf :

Un bouton "Tout voir" qui supprime le filtre et la colonne fantôme.
Un bouton "Rechercher dans la colonne 3" qui met en place le filtre, pose
la question avec un inputbox et transforme la réponse en majuscule afin de
perdre les accents, filtre et masque la colonne fantôme.
Et comme les majuscules n'interviennent pas dans le filtre, le tour est
joué.

A la place de l'inputbox, tu pourrais rajouter quelques lignes au dessus
du tableau et te servir d'une cellule pour y (faire) écrire ton élément de
filtrage. La macro se servant de cette valeur pour alimenter le filtre.
Dans ce cas un seul bouton pourrait suffire : si la cellule est vide il
fait le "Tout voir" décrit au dessus, si non, il filtre avec la valeur
saisie. Et à l'ouverture tu effaces cette cellule et lance la procédure
"Tout voir".

On en reparle quand tu veux.

Jac

J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche à
droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la Colonne
1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.






Avatar
AndréBdR
Ta démarche me plaît beaucoup.
Je commence à la développer en entrant par un InputBox, que j'appelle Toto,
et que je récupère dans ta ligne "If Len(Application .Substitute( etc...))"
en y remplaçant "desire" par Toto.
Si je frappe dans l'InputBox "desire", ça marche au quart de poil car la
macro transpose tous les "é" en "e".
Par contre, si j'entre "désirée", la macro transforme ce mot en "desire", et
ne le trouve donc plus dans la Colonne 3 si j'ai pris soin de le saisir dans
mon fichier sous la forme de "désirée".
Je cherche ... mais tu trouveras sans doute avant moi.
Après cela, il faudra s'attaquer au problème des majuscules...

"isabelle" a écrit dans le message de
news:
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u",
"u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1") ou
de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then
Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche à
droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la Colonne
1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.





Avatar
isabelle
bonjour André,

voici le lien pour un fichier exemple,
il faut taper le mot « desire » (sans majuscule) dans l'InputBox
dit moi ci ça va,

http://cjoint.com/?kjoTuLOSpa

isabelle

AndréBdR a écrit :
Ta démarche me plaît beaucoup.
Je commence à la développer en entrant par un InputBox, que j'appelle
Toto, et que je récupère dans ta ligne "If Len(Application .Substitute(
etc...))" en y remplaçant "desire" par Toto.
Si je frappe dans l'InputBox "desire", ça marche au quart de poil car la
macro transpose tous les "é" en "e".
Par contre, si j'entre "désirée", la macro transforme ce mot en
"desire", et ne le trouve donc plus dans la Colonne 3 si j'ai pris soin
de le saisir dans mon fichier sous la forme de "désirée".
Je cherche ... mais tu trouveras sans doute avant moi.
Après cela, il faudra s'attaquer au problème des majuscules...

"isabelle" a écrit dans le message de
news:
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u",
"u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1")
ou de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then
Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne
par ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de
gauche à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué
pour moi, à partir des éléments de la Colonne 3, qui sont du texte
d'une douzaine de mots au plus, genre « de Julien Duvivier, avec
Sylvester Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce
que je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N,
et masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.








Avatar
AndréBdR
C'est sympa d'avoir créé cet exemple qui fonctionne fort bien.
Merci.
Mais j'ai dû mal m'exprimer.
Si je frappe "désirée" ou "Désirée" dans l'InputBox, c'est parceque je
cherche en Colonne 3 tout ce qui y ressemble et qui aurait pu y être mal
saisi, aux erreurs d'accents et de majuscules près, genre "desirée",
"Désiree", et pourquoi pas "DESIREE".
J'espère que cela ne te posera pas de trop gros problèmes.


"isabelle" a écrit dans le message de
news:
bonjour André,

voici le lien pour un fichier exemple,
il faut taper le mot « desire » (sans majuscule) dans l'InputBox
dit moi ci ça va,

http://cjoint.com/?kjoTuLOSpa

isabelle

AndréBdR a écrit :
Ta démarche me plaît beaucoup.
Je commence à la développer en entrant par un InputBox, que j'appelle
Toto, et que je récupère dans ta ligne "If Len(Application .Substitute(
etc...))" en y remplaçant "desire" par Toto.
Si je frappe dans l'InputBox "desire", ça marche au quart de poil car la
macro transpose tous les "é" en "e".
Par contre, si j'entre "désirée", la macro transforme ce mot en "desire",
et ne le trouve donc plus dans la Colonne 3 si j'ai pris soin de le
saisir dans mon fichier sous la forme de "désirée".
Je cherche ... mais tu trouveras sans doute avant moi.
Après cela, il faudra s'attaquer au problème des majuscules...

"isabelle" a écrit dans le message de
news:
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u",
"u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1") ou
de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then
Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche
à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.










Avatar
Jac
... j'ai repris l'exemple d'Isabelle et je l'ai adapté avec les idées
déjà évoquées. Il ne reste plus qu'à changer la couleur du mot
recherché comme ça se voit à l'occasion dans les trucs super
sophistiqués...

http://cjoint.com/?kjsnvnHJuc

C'est sympa d'avoir créé cet exemple qui fonctionne fort bien.
Merci.
Mais j'ai dû mal m'exprimer.
Si je frappe "désirée" ou "Désirée" dans l'InputBox, c'est parceque je
cherche en Colonne 3 tout ce qui y ressemble et qui aurait pu y être mal
saisi, aux erreurs d'accents et de majuscules près, genre "desirée",
"Désiree", et pourquoi pas "DESIREE".
J'espère que cela ne te posera pas de trop gros problèmes.


"isabelle" a écrit dans le message de
news:
bonjour André,

voici le lien pour un fichier exemple,
il faut taper le mot « desire » (sans majuscule) dans l'InputBox
dit moi ci ça va,

http://cjoint.com/?kjoTuLOSpa

isabelle

AndréBdR a écrit :
Ta démarche me plaît beaucoup.
Je commence à la développer en entrant par un InputBox, que j'appelle
Toto, et que je récupère dans ta ligne "If Len(Application .Substitute(
etc...))" en y remplaçant "desire" par Toto.
Si je frappe dans l'InputBox "desire", ça marche au quart de poil car la
macro transpose tous les "é" en "e".
Par contre, si j'entre "désirée", la macro transforme ce mot en "desire",
et ne le trouve donc plus dans la Colonne 3 si j'ai pris soin de le saisir
dans mon fichier sous la forme de "désirée".
Je cherche ... mais tu trouveras sans doute avant moi.
Après cela, il faudra s'attaquer au problème des majuscules...

"isabelle" a écrit dans le message de
news:
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u",
"u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1") ou
de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then
Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne par
ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de gauche
à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué pour
moi, à partir des éléments de la Colonne 3, qui sont du texte d'une
douzaine de mots au plus, genre « de Julien Duvivier, avec Sylvester
Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce que
je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N, et
masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que «
Desirée » et les majuscules (pas de différence entre « Désirée » et «
deSirée »).

Un grand merci d'avance.












Avatar
AndréBdR
Chapeau Jac!
C'est parfait (même que je conserverai la couleur du mot recherché).
Un grand merci à toi et à Isabelle.

"Jac" a écrit dans le message de
news:
... j'ai repris l'exemple d'Isabelle et je l'ai adapté avec les idées déjà
évoquées. Il ne reste plus qu'à changer la couleur du mot recherché comme
ça se voit à l'occasion dans les trucs super sophistiqués...

http://cjoint.com/?kjsnvnHJuc

C'est sympa d'avoir créé cet exemple qui fonctionne fort bien.
Merci.
Mais j'ai dû mal m'exprimer.
Si je frappe "désirée" ou "Désirée" dans l'InputBox, c'est parceque je
cherche en Colonne 3 tout ce qui y ressemble et qui aurait pu y être mal
saisi, aux erreurs d'accents et de majuscules près, genre "desirée",
"Désiree", et pourquoi pas "DESIREE".
J'espère que cela ne te posera pas de trop gros problèmes.


"isabelle" a écrit dans le message de
news:
bonjour André,

voici le lien pour un fichier exemple,
il faut taper le mot « desire » (sans majuscule) dans l'InputBox
dit moi ci ça va,

http://cjoint.com/?kjoTuLOSpa

isabelle

AndréBdR a écrit :
Ta démarche me plaît beaucoup.
Je commence à la développer en entrant par un InputBox, que j'appelle
Toto, et que je récupère dans ta ligne "If Len(Application
.Substitute( etc...))" en y remplaçant "desire" par Toto.
Si je frappe dans l'InputBox "desire", ça marche au quart de poil car
la macro transpose tous les "é" en "e".
Par contre, si j'entre "désirée", la macro transforme ce mot en
"desire", et ne le trouve donc plus dans la Colonne 3 si j'ai pris soin
de le saisir dans mon fichier sous la forme de "désirée".
Je cherche ... mais tu trouveras sans doute avant moi.
Après cela, il faudra s'attaquer au problème des majuscules...

"isabelle" a écrit dans le message de
news:
bonjour AndréBdR,

Sub Macro1()
AAccent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û")
SAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "u",
"u")
For Each c In Range("C6:C" & Range("C65536").End(xlUp).Row)
x = c
For i = LBound(AAccent) To UBound(SAccent)
x = LCase(Application.Substitute(x, AAccent(i), SAccent(i)))
Next
'sur la ligne suivante tu peut remplacer "desire" par le Range("A1")
ou de ton choix
If Len(Application.Substitute(x, "desire", "")) = Len(c) Then
Rows(c.Row).Hidden = True
Next
End Sub

isabelle


AndréBdR a écrit :
J'aurais besoin d'un petit coup de main pour écrire une macro pour un
fichier de 7 Colonnes où j'empile régulièrement des données, ligne
par ligne, de la ligne 6 à la ligne N.

Chaque donnée comporte 7 éléments que j'inscris soigneusement de
gauche à droite, de la Colonne 1 à la Colonne 7.

Pour l'instant, j'ai quatre macros (avec quatre boutons) qui me
permettent de trier l'ensemble de ces données, au choix, selon la
Colonne 1, ou 2, ou 6, ou 7.

Bon, ça je sais faire.

Je voudrais maintenant faire quelque chose d'un peu plus compliqué
pour moi, à partir des éléments de la Colonne 3, qui sont du texte
d'une douzaine de mots au plus, genre « de Julien Duvivier, avec
Sylvester Stallone et Désirée Clary » :

· Une macro, lancée par un bouton, m'inviterait à préciser ce
que je cherche

· Je répondrais par exemple « Désirée » (un mot seulement)

· La macro balayerait la colonne 3 de la ligne 6 à la ligne N,
et masquerait au fur et à mesure toutes les lignes de 6 à N qui ne
comporteraient pas en Colonne 3 le mot « Désirée »

· Mais elle le ferait de telle sorte qu'elle négligerait les
accents (« Désirée » serait tout à fait la même chose pour elle que
« Desirée » et les majuscules (pas de différence entre « Désirée » et
« deSirée »).

Un grand merci d'avance.
















Avatar
Jac
... tu dis parfait !!! Mais si tu essaye un mot avec plus ou moins de
majuscules, ça plante. J'ai rectifié le tir dans :

http://cjoint.com/?kkc2b0ZMQv

Chapeau Jac!
C'est parfait (même que je conserverai la couleur du mot recherché).
Un grand merci à toi et à Isabelle.

"Jac" a écrit dans le message de
news:
... j'ai repris l'exemple d'Isabelle et je l'ai adapté avec les idées déjà
évoquées. Il ne reste plus qu'à changer la couleur du mot recherché comme
ça se voit à l'occasion dans les trucs super sophistiqués...

http://cjoint.com/?kjsnvnHJuc

C'est sympa d'avoir créé cet exemple qui fonctionne fort bien.
Merci.
Mais j'ai dû mal m'exprimer.
Si je frappe "désirée" ou "Désirée" dans l'InputBox, c'est parceque je
cherche en Colonne 3 tout ce qui y ressemble et qui aurait pu y être mal
saisi, aux erreurs d'accents et de majuscules près, genre "desirée",
"Désiree", et pourquoi pas "DESIREE".
J'espère que cela ne te posera pas de trop gros problèmes.







1 2