Formule pour extraire des donnees sur 1 mot dans une phrase

glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention   -  
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'aurai souhaité apporter une ultime retouche sur un tableau sous EXCEL 2016.

serait-il possible de rechercher 1 seul mot dans des phrases sur toute une colonne d'un tableau ?
je m'explique :
j'ai un tableau (feuil1) de plusieurs centaines de lignes et 9 colonnes.

l'onglet feuil1 etant satué d'info, j'ai donc créé un onglet pour faire des recherches sur les colonnes "entrepise", "montant","banque" et "travaux".
seule la colonne "travaux" m'intéresse.
tout fonctionne quand il n'y a eu qu'un seul mot de saisi.

ex : mot recherché "thermique"
si j'avais saisi "etude thermique "-----> ça ne marcherait pas
si j'avais saisi "thermique"-------> ok j'aurais toutes les infos correspondant à la ligne (date, ets, montant....)

j'aurais voulu adapter ce type de formule (ca ne fonctionne que si je specifie la ligne)

=SIERREUR(STXT(Feuil1!d20;CHERCHE(F2;Feuil1!d20;1);NBCAR(F2));"***");

à cette formule : (seule la partie en gras est à modifier)

=SI(ET($D$2="";$E$2="";$F$2="");SIERREUR(INDEX(Feuil1!$E:$E;AGREGAT(15;6;(1/(Tableau1[ENTREPRISE]=$C$2))*LIGNE(Tableau1[ENTREPRISE]);LIGNE(A1)));"");

SI(ET($CS2="";$E$2="";$F$2="");(SIERREUR(INDEX(Feuil1!$E:$E;AGREGAT(15;6;(1/(Tableau1[MONTANT]=$D$2))*LIGNE(Tableau1[MONTANT]);LIGNE(A1)));""));

SI(ET($C$2="";$D$2="";$F$2="");(SIERREUR(INDEX(Feuil1!$E:$E;AGREGAT(15;6;(1/(Tableau1[BANQUE]=$E$2))*LIGNE(Tableau1[BANQUE]);LIGNE(A1)));""));

SI(ET($C$2="";$D$2="";$E$2="");(SIERREUR(INDEX(Feuil1!$E:$E;AGREGAT(15;6;(1/(Tableau1[TRAVAUX]=$F$2))*LIGNE(Tableau1[TRAVAUX]);LIGNE(A1)));""));


SI(ET($C$2<>"";$D$2<>"";$E$2<>"";$F$2<>0);0;"")))))

je sais c'était un peu long et merci d'avoir lu jusqu'au bout :)

J'espère avoir été assez explicite, et je remercie par avance tout ceux qui se pencheront sur ce problème pour m'aider et encore tout ceux qui m'ont déjà apporté leur aide par le passé.

cordialement
glaieuls29.

Configuration: Windows / Firefox 87.0
A voir également:

8 réponses

The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonjour,

Je pense qu'avec un fichier joint anonymisé il serait plus facile pour les contributeurs de t'aider dans l’élaboration du fichier en question

Slts
0
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention  
 
re,
oui merci j'en expédie un modèle très simplifié.

quelques précisions qui pourraient peut être avoir leur importance:

la recherche devra se faire dans un nouvel onglet et avec des données saisies qui vont encore evoluer

https://www.cjoint.com/c/KDolVAaFcke

Merci encore

glaieuls29
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir,

Un essai avec un TextBox pour la recherche voir Pj

https://www.cjoint.com/c/KDosJ7iR7wj

Slts
0
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention  
 
merci the_boss_68......tu es un boss.

je trouve ton approche très intéressante. totalement à l'ouest de la mienne.

ca semble fonctionner. Il me reste à incorporer cet onglet dans le programme.

si je modifie son nom par "feuil1" ça posera un pb pour son déroulement ?

je te tiens au courant.

merci beaucoup pour ton coup de main.

à plus

glaieuls29
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention  
 
re,
je viens de faire l'essai "grandeur nature" ça fonctionne super bien.

le seul inconvénient c'est que ça rame à la saisie de chaque lettre. Env 15 sec entre la saisie et l'affichage de la lettre dans le rectangle bleu.

on peut y remedier ?

cdt

glaieuls29
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir

Déjà mettre ce code dans ThisWorkbook
Private Sub Workbook_Open()
With Feuil3
Feuil3.LastLine = .Range("B" & .Rows.Count).End(xlUp).Row
End With
End Sub


en modifiant :
With Feuil3
Feuil3.LastLine = .Range("B" & .Rows.Count).End(xlUp).Row

Par les valeurs que tu as mis sur ton code à toi voir grosso modo la ligne 63

Sinon j'en sais rien pour la lenteur c'est dû certainement à la quantité des valeurs recherchés dans l'onglet BD

Slts
0
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention  
 
re,

j'ai fait ce que tu m'as dit pour thisworkbook mais je ne suis pas certain d'avoir bien compris ce que tu voulais dire par "les valeurs que tu as mis sur ton code a toi voir grosso modo la ligne 63".
range" b"......? j
je fais comment pour faire apparaitre les n° ligne ?

voilà ce que j'ai fait :

après importation ton feuil3 ( feuillet "recherche") est devenu feuil8 chez moi.
- j'ai donc modifié dans le code tous les mots feuil3 en feuil8.
- range "b" : la je bloque je vois pas où ni quoi rechercher pour la modification.

sinon j'ai rajouté un "Application.ScreenUpdating = True" à la fin du code feuil8 "recherche".
l'affichage du resultat arrive avt l'affichage de ma saisie dans le rectangle bleu

c'est beaucoup plus rapide ...mais.(20 sec env pour faire le tri sur 150 lignes)

Pour limiter la recherche, ne pourrions nous pas demander via un textbox dans quelle colonne faire le tri ?
(sur l'ensemble ou uniquement "entreprise", "travaux", montant "banque")

tous les cas

MERCI de passer du temps pour m'aider car comme tu as pu le remarquer je ne suis qu' un débutant "petit joueur".
cdt
0
glaieuls29 Messages postés 174 Date d'inscription   Statut Membre Dernière intervention  
 
re,
je viens de rajouter un autre "application.screenupdating = true" dans le 1er pavé de code et c'est encore mieux.

.....petit à petit l'oiseau fait son nid lol

à plus.
0