Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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?
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).
J'avais commencé à dédoubler les cellules trop longues... c'est très primitif! Mais j'ai vu que j'en avais 147 à faire (sur 1600 il est vrai), j'hésite! Et comme j'ai dit mes connaissances Excel ne sont pas excellentes.
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.
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.
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.
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?
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.
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!
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.
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).
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).
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.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.