Différence entre 2 méthodes

Sigrec

XLDnaute Nouveau
Bonjour,
Dans un fichier (Excel 2003) je recherche des enregistrements contenant un mot-clé dans une colonne, en utilisant 2 méthodes:
1-Filtre automatique sur la colonne voulue, avec "contenant" le mot cherché.
2-Fonction recherche générale sur le même mot.
Problème: je trouve plus d'enregistrements avec la 2 qu'avec la 1, et je ne vois pas pourquoi. Quelqu'un a-t-il constaté ce phénomène, ou en connaît-il la raison?
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Re,

J'ai remarqué que la limite de 256 caractères n'affectait pas de la même manière toutes les méthodes de recherche : filtre, édition/rechercher, nb.si... Assez bizarre en effet et difficilement contournable.

Mais comme vient de me le dire JNP, excel reste un tableau, il ne s'agit normalement pas de raconter sa vie dans une cellule, c'est bien vrai.

Et une des manières de s'en sortir si on ne peut limiter est de mettre avant ce butoir de 256 caractères les mots principaux, clé, dont on aura besoin. Ce que j'ai demandé aux personnes qui me rentrent le contenu de leurs boîtes archives (une ligne = une boîte = 1 contenu... qui dépasse parfois 256 caractères, car ca va très très vite pour peu qu'on aille à la ligne).
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Moi aussi, l'autre jour, je te dis pas ma consternation : 7000 boîtes (donc cellules) et plus de 1500 trop "longues"... J'ai donc procédé ainsi :

- fait un fichier annexe (ou une feuille ca marche)
- mis dans la cellule A2 : =nbcar(cellule) recopié vers le bas
- mis dans la cellule B2 un test : =+SI(B2>250;"+250";"")
- filtré sur cette colonne pour avoir mes 1500 cellules en question
- regardé ce qu'il en était dans le fichier
- et ainsi isolé les cellules où il fallait VRAIMENT faire qqchse, ca en a éliminé qqunes

Ca vaut peut être le coup dans ton cas, car ca fait moins que moi en pourcentage ;-)

Et puis c'est une bonne expérience pour la suite, tu testeras chaque fois maintenant, j'en suis sûre.

Bon courage en tout cas.
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Re,

Petite question : quel est le but de ta recherche ? trouver un morceau de musique adéquat répondant à une situation ?

Dans ce cas, peut être pourrais tu codifier ? style 1 pour tel type, 2 pour tel type... mais bon tu vas peut être avoir un nombre impressionnant de types. Et donc dans les colonnes adjacentes, une colonne pour type 1 (cochée ou non), une autre pour type 2... etc... tu pourrais ainsi faire un tri ensuite.
 

Sigrec

XLDnaute Nouveau
Re : Différence entre 2 méthodes

C'est aussi avec la fonction nbcar que j'ai trouvé et isolé mes 147 cellules à modifier; mais ça reste fastidieux.
Le but est de trouver des musiques pour accompagner des images de diaporamas, qui s'accordent avec le contenu. Lequel est trop variable pour rentrer dans un nombre de critères restreint. Le filtrage sur différents mots, de sens approchés, me convient en général. Les remarques proviennent d'écoutes plus ou moins anciennes, et d'impressions du moment.
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Bonjour,

Ouahou, je vais avoir du mal à adapter ca à mon fichier archives puisque c'est Hervé qui m'avait fait l'usf de recherche...

Mais ca m'arrangerait bigrement, je garde au chaud.

Ce qui veut dire, pour résumer, que le filtre ELABORE (et non personnalisé) peut aller chercher plus loin que 255 caractères ?

Cela marche aussi sans la macro, j'imagine ?

Merci pour moi en tout cas... Va falloir que je mette ca dans mon fichier ce serait royal !!!
 

Sigrec

XLDnaute Nouveau
Re : Différence entre 2 méthodes

Bonsoir,
Merci à Boisgontier pour sa solution nettement plus séduisante que la reprise manuelle de 147 enregistrements! Si j'ai bien compris le filtre élaboré détecte le mots recherché, la macro affiche les occurrences. Ce qui signifierait que le filtre élaboré (comme son nom l'indique...) détecte plus loin que le filtre automatique. Mais comment créer cette macro figurant dans la zone texte dans mon fichier original? Oui je sais, c'est Excel pour LE nul...
Pour Brigitte: je ne crois pas que la recherche fonctionne sans la macro. Et que sgnifie usf?
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Bonsoir,

Pour répondre à tes deux questions :

1. le filtre élaboré doit marché même sans la macro (données/filtre/filtre élaboré...)
2. un usf : un userform (ou formulaire), qui peut servir à la saisie ou à la recherche...

Pour la question 1 :

Nettement moins séduisant et pratique sans macro. Moi je n'ai pas réussi avec la macro mise dans le fichier de JB (private sub...),

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" Then
    If Target <> "" Then
       [A10:G1000].AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=[A1:A2]
    Else
       On Error Resume Next
       ActiveSheet.ShowAllData
    End If
  End If
End Sub

Comme d'habitude... :-( alors j'ai utilisé une macro que j'avais faite avec l'enregistreur de macros (plus simple pour mon petit cerveau) :


Sub FILTRE1()

' pour chercher un mot (nom) dans cellules même si >256 caractères utiliser ce filtre élaboré
Sheets("ARCHIVES - Historique").Range("G1:G10000").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("AB1:AB2"), Unique:=False
ActiveWindow.ScrollRow = 1
End Sub

Et également pour saisir le mot, une petite boîte qui s'ouvre et te permet de mettre le message que tu souhaites, mon exemple ci-dessous :

Sub saisie_Mot()
Sheets("ARCHIVES - Historique").Range("AC2").Value = InputBox("Saisissez un mot clé, un NOM, évitez les mots composés," _
& vbCrLf & "le pluriel...", "Votre mot")
If Sheets("ARCHIVES - Historique").Range("AC2") <> "" Then Call FILTRE1
End Sub

Ces deux macros sont à copier et adapter bien sûr, dans un module :

Dans ton fichier, tu fais ALT/F11, ca ouvre VBA. Tu regardes à gauche, ton fichier doit apparaître dans la liste... Tu le vois, tu fais insertion/module et tu copies les deux macros ci-dessous dans le module créé.

En ayant pris soin de mettre le critère élaboré dans une cellule que tu définis dans la macro : moi j'ai mis AB1:AB2 dans la première et aussi l'endroit où sera saisi le mot : moi j'ai mis AC2. Je te laisse adapter à ton cas. Idem pour le texte bleu. Adapte aussi la plage G1:G10000 et bien sûr le nom de la feuille et du fichier...

Ensuite, il te faudra mettre, pour plus d'efficacité, un bouton dans ta feuille dans l'entête de colonne par exemple :

Affichage/barre d'outils/formulaires, prendre le "bouton simple", le cliquer/glisser dans la feuille et lui affecter la macro : saisie mot (la choisir dans la liste) Lâcher.

Si on a rien oublié maintenant quand tu cliqueras sur ce bouton (que tu peux renommer : Recherche par un clic droit dessus qui te permet de choisir la police, la couleur... ou de le déplacer, agrandir), tu devrais avoir une petite boite qui s'ouvre te demandant ton "mot", tu tapes nocturne... et là le filtre élaboré (qui va au delà de 256) devrait opérer et tu devrais obtenir le bon nombre de lignes filtrées.

Reviens si souci. Je raccroche pour ce soir. Je regarderai demain si souci. Remets ton fichier si problème.

Pour la question 2 : je n'utiliserai pas ca ici, un peu compliqué pour rien... mais bon.

Bonne nuit.
 
Dernière édition:

Sigrec

XLDnaute Nouveau
Re : Différence entre 2 méthodes

Re,
Merci pour tout. A force de galérer j'ai fini par recopier et adapter à mon tableau complet la macro de JB. A priori il faut copier uniquement le texte dans l'éditeur VBA et non pas depuis le fichier Excel, ce qui semble traîner des références non adaptées. Du moins, c'est ce que j'ai cru comprendre...
Dans un 2ème temps j'essaierai ta solution, mais pour le moment j'ai la tête comme une citrouille! Je fais un break!
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Euh à mon tour de te demander... que veux tu dire par :

A force de galérer j'ai fini par recopier et adapter à mon tableau complet la macro de JB. A priori il faut copier uniquement le texte dans l'éditeur VBA et non pas depuis le fichier Excel, ce qui semble traîner des références non adaptées.

Pas compris, mais je suis une quiche en vba, donc normal hi hi.

Moi j'avais bien pris la macro ci-dessous (de JB) et collé dans le classeur (je sais plus ou d'ailleurs, car entre this workbook, les feuilles, les modules, je sais jamais (ou presque) où je dois coller les macros qu'on me donne gentiment.
 

Sigrec

XLDnaute Nouveau
Re : Différence entre 2 méthodes

Quand j'ai essayé de copier la macro dans mon tableur de 1600 enregistrements depuis un fichier Excel j'ai eu des Pb. J'ai donc collé uniquement le texte (pris par exemple dans ton message plus haut) en ouvrant l'éditeur VBA, dans la fenêtre code de ma feuille.
Je ne connais rien en VBA, j'ai regardé le fichier de JB et essayé d'imiter. Pareil pour le filtrage élaboré (qui chez moi ne fonctionne pas sans la macro).
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Moi aussi j'en avais eu l'autre jour, faudra que j'essaie alors..

Mais la macro de JB est sensiblement la même que la mienne. Sauf que c une private sub worksheetchange... et ca me perturbe de toute manière... Mais essaie le petit truc avec le message invitant à saisir le mot, c trop fun !!! et pas dur (la preuve, j'y suis arrivée et j'adore).
 

Brigitte

XLDnaute Barbatruc
Re : Différence entre 2 méthodes

Bonsoir,

Sigrec si tu reviens par ici... Pour te dire que j'ai donc appliqué la formule proposée par JB (boisgontier) dans mon fichier ARCHIVES, carrément dans mon gros module de RECHERCHE (encore mieux) : cette formule que m'avait pourtant donné JB (boisgontier) sur un autre fil et que l'on incorpore dans un FILTRE ELABORE (et non personnalisé) permet de rechercher au-delà du 256ème caractère.

Je viens (Gaël plus précisément) de l'incorporer dans mon fichier ARCHIVES et le tour est joué, bravo JB, et bravo Gaël d'xld qui a fait l'adaptation pour mon fichier. Sont super ! Merci à vous.
 

Discussions similaires

Statistiques des forums

Discussions
312 673
Messages
2 090 778
Membres
104 664
dernier inscrit
jth