Problème de mise en forme de listbox

Krine

XLDnaute Nouveau
mais pas que...

Cela fait plusieurs jours que je "planche" pour créer un mini formulaire de recherche très basique.
Aussi basique qu'il soit je n'arrive pas à obtenir ce que je veux.

Mon fichier excel comporte une parge d'accueil et ensuite une feuille par département, et pour chaque département un listing de point d'eau.

Avec le bouton recherche positionner sur la première page, j'ouvre un userform ou je peux saisir mon mot-clé, et en dessous la listbox avec les résultats.

Jusque là çà peut aller, encore que j'ai glaner du code à droite à gauche et que j'ai certainement très mal compilé tout çà !
Il reste des bouts de code inutile mais que je n'ose pas enlever de peur de tout faire planter.

Voici donc mes questions :

1 - je voudrais que quand je commence à rentrer mon mot-clé la listbox s'actualise au fur et à mesure
2 - dans la recherche effectué les mots clés peuvent se répéter sur une même ligne, du coup ma listbox affiche des doublons alors que pour le même mot clé sur la même ligne je ne voudrais qu'une réponse.
3 - je souhaiterai que le nom de l'onglet qui s'affiche pour le moment en dernier apparaisse en premier dans la listbox

Désolée pour un premier post d'être aussi bavarde... j'ai pourtant bien chercher et essayer mais je n'arrive pas à solutionner mes problèmes. Il me manque les bases j'en suis certaine...

Merci à vous
 

Pièces jointes

  • Archives.zip
    88.7 KB · Affichages: 41
  • Archives.zip
    88.7 KB · Affichages: 48
Dernière modification par un modérateur:

Krine

XLDnaute Nouveau
Re : Problème de mise en forme de listbox

Merci beaucoup CHALET53 pour ces avancées.
Ça répond complètement à ma demande. Bon, je dois bien avouer que pour le second point... je n'arrive pas à comprendre tout le code.

Quelqu'un aurait-il une idée pour que ma recherche ne se fasse qu'à partir de la ligne 3 des différentes feuilles?
Par quoi je peux remplacer With Sheets(S).UsedRange. J'ai essayé With Sheets(S).Range("A3:G") mais çà ne fonctionne pas.

Je continue de chercher !
 

CHALET53

XLDnaute Barbatruc
Re : Problème de mise en forme de listbox

Peut-être ainsi

Pour expliquer le code précédent

J'ai rajouté une procédure (Textbox1_Change) (avec ton code de la CommandButton) qui se lance dès la saisie d'un caractère dans la textbox1
Remise à blanc de la listbox
Recherche
rajout d'une colonne dans le tablo : le numéro de ligne où se trouvent les caractères
Je compare la ligne à celle entrée dans la dernière ligne du tablo (si c'est la même, je passe au suivant)
et recherche nouvelle avec les caractères saisis

Pour cette version, définition de la zone de recherche : De A3 à G et dernière ligne de la feuille

Bon courage
 

Pièces jointes

  • Krine Archives V2.xls
    521.5 KB · Affichages: 82

Krine

XLDnaute Nouveau
Re : Problème de mise en forme de listbox

Encore merci pour ces informations !!

Juste un souci avec les doublons... le code fonctionne, mais pas sur toutes les lignes...
J'ai renseigné dans la colonne client toujours le même client pour la même commune histoire de tester et il arrive que des points d'eau apparaissent en double dans la listbox.
Je ne vois pas pourquoi çà fonctionne aléatoirement?
 

Krine

XLDnaute Nouveau
Re : Problème de mise en forme de listbox

Je me réponds à moi même...
Pour le nom du département en première colonne, j'ai réussi... Peut être pas de la bonne manière mais çà fonctionne.
En fait, j'ai laissé la première colonne vide sur chacune de mes feuilles et donc quand il affiche le résultat de la recherche dans la listbox je profite de cette cellule vide pour lui attribuer le nom de l'onglet par "Tablo(0, I) = Sheets(S).Name"

Il ne me reste plus que mon souci de ligne affiché en double.. mais pas pour tous...

Je vous mets le dernier fichier en date
 

Pièces jointes

  • Krine Archives V3.zip
    102.6 KB · Affichages: 39
  • Krine Archives V3.zip
    102.6 KB · Affichages: 44

CHALET53

XLDnaute Barbatruc
Re : Problème de mise en forme de listbox

C'est ballot !!!!
J'utilisais la première colonne pour déterminer la dernière ligne remplie de la feuille traitée
je peux utiliser la colonne B (Communes) : Ceci suppose que s'il y a des informations sur une ligne, la colonne commune est toujours renseignée. Est-ce le cas ?
 

Krine

XLDnaute Nouveau
Re : Problème de mise en forme de listbox

C'est ballot !!!!
J'utilisais la première colonne pour déterminer la dernière ligne remplie de la feuille traitée
je peux utiliser la colonne B (Communes) : Ceci suppose que s'il y a des informations sur une ligne, la colonne commune est toujours renseignée. Est-ce le cas ?

Oups...
Oui la colonne commune sera toujours remplie
 

Krine

XLDnaute Nouveau
Re : Problème de mise en forme de listbox

I y a toujours le souci...
En fait il n'y a doublon que pour la dernière ligne qui correspond au mot recherché il le trouve en B mais aussi en G dans le cas de mon fichier.

Ca fonctionne de la même façon en faisant avec la colonne A
 

CHALET53

XLDnaute Barbatruc
Re : Problème de mise en forme de listbox

Ces instructions (que j'ai laissées) n'ont pas d'intérêt :
il faut les mettre en commentaire
' Compte = WorksheetFunction.CountIf(Sheets(S).Rows(C.Row), Text2)
' If Text2 = "" Then Compte = 1 'dans le cas ou rien n'est saisi dans le 2eme textbox
' If Compte > 0 Then

et l'instruction correspondant à ce dernier if : End if (situé devant Set C = .FindNext(C)) est aussi à mettre en commentaire
 

Discussions similaires

Réponses
16
Affichages
728
Réponses
18
Affichages
1 K

Statistiques des forums

Discussions
315 103
Messages
2 116 249
Membres
112 695
dernier inscrit
ben44115