Microsoft 365 je bloque sur une fonction de recherche

cedelec

XLDnaute Nouveau
Bonjour

j'ai créé un fichier pour la gestion des copros et clients.

le code n'est pas totalement de moi, je ne m'y connais pas assez, c'est du code piqué à droite et à gauche que j'ai modifié pour mon fichier.

ma question est :

mon textbox1 me sert de champ de recherhe, cela fonctionne mais j'aimerais que je n'ai qu'a rentrer 2 ou 3 lettre et un liste s'affiche avec les choix possible .

En espérant que mes explication ne soit pas trop cafouilli .

merci d'avance pour vos réponse
 

Pièces jointes

  • copro-client v1.xlsm
    49.9 KB · Affichages: 6
Solution
il restait un bug sur la listbox lorsqu'on passe d'un mode à l'autre

ici:
le USF se lance en mode CoPro puisque le formulaire est "dessiné" avec tous les labels et controls de la feuille "CoPro"

Je te laisse faire des essais et revenir vers moi si il y a des pbs

vgendron

XLDnaute Barbatruc
Bonjour et bienvenu

1) je te conseille l'utilisation de tables structurées


2) si les NOMS sont uniques, je te suggère de remplacer le textbox1 par un combobox
sinon, pour avoir la liste des "propositions", il faudrait ajouter un listbox sur le formulaire
va voir dans ce lien
il y a un textbox : lorsque l'utilisateur saisit quelque chose, la listbox est mise à jour.
 

vgendron

XLDnaute Barbatruc
je suis en train de jeter un oeil sur ton fichier
les deux formulaires sont quasi identiques.. à un textbox près..
si tes feuilles "Clients" et "CoPro" ne sont pas vouées à évoluer (en terme de nombre de colonnes et leurs nom) on pourrait ne faire qu'un seul formulaire
1) ca allègerait le fichier
2) pas de code en doublon pour les boutons
3) en insérant un bouton, on pourrait basculer d'une feuille à l'autre...
 

vgendron

XLDnaute Barbatruc
Regarde la PJ
1) j'ai modifié les données sous forme de table structurée "t_Copro" et "t_Client"
2) j'ai renommé les deux formulaires..USF_Client et USF_CoPro

sur le formulaire USF_CoPro
j'ai supprimé des boutons (et leur code associé) qui ne servaient pas vraiment à grand chose.. ils font à peu près la meme chose..

un seul bouton d'enregistrement
==> il cherche le nom
s'il existe ==> propose de modifier (=ancien bouton Modifer/enregistrer)
s'il n'existe pas ==> insère le nouveau nom (=ancient bouton "Inserer")

j'ai simplifié les codes en exploitant les tables structurées
 

Pièces jointes

  • copro-client v2.xlsm
    40.6 KB · Affichages: 1

vgendron

XLDnaute Barbatruc
et la.. j'ai ajouté une listbox qui est chargée avec les lignes correspondantes à la saisie de la textbox 1

à chaque lettre saisie en Textbox1, la listbox est mise à jour
si tu cliques sur une ligne de la listbox1, les éléments sont chargés dans le formulaire
 

Pièces jointes

  • copro-client v3.xlsm
    43.2 KB · Affichages: 1

cedelec

XLDnaute Nouveau
et la, une version avec un formulaire unique (USF_CoPro) qui permet de basculer d'une feuille à l'autre

==> tu peux donc supprimer le formulaire USF_Client
Encore merci

juste un petit bug si je ne clique pas en premier sur le bouton pour basculer de feuille le fichier me renvoie une erreur.

Ci-joint les captures de celle-si
 

Pièces jointes

  • exel 1.png
    exel 1.png
    84.7 KB · Affichages: 6
  • exel 2.png
    exel 2.png
    68.4 KB · Affichages: 7

vgendron

XLDnaute Barbatruc
ah oui effectivement,
si on ne clique pas sur le bouton, les variables NomFeuille et NbColonnes ne sont pas initialisées

tu peux utiliser ce code en lieu et place de celui qui existe déjà
VB:
Private Sub UserForm_Initialize() ' initialisation du formulaire
    EnableEvents = True 'variable globale créée pour éviter de lancer intempestivement des évènements _change
    Cbn_Switch_Click 'provoque le lancement en mode "Client"
    'Me.Cbn_Switch.Caption = "CoPro" 'lancement du formulaire en mode "CoPro" ==> Décommenter si besoin de démarrer en mode "CoPro"
End Sub
 

cedelec

XLDnaute Nouveau
j'a
ah oui effectivement,
si on ne clique pas sur le bouton, les variables NomFeuille et NbColonnes ne sont pas initialisées

tu peux utiliser ce code en lieu et place de celui qui existe déjà
VB:
Private Sub UserForm_Initialize() ' initialisation du formulaire
    EnableEvents = True 'variable globale créée pour éviter de lancer intempestivement des évènements _change
    Cbn_Switch_Click 'provoque le lancement en mode "Client"
    'Me.Cbn_Switch.Caption = "CoPro" 'lancement du formulaire en mode "CoPro" ==> Décommenter si besoin de démarrer en mode "CoPro"
End Sub
j'adore la prog, tu changes un truc et ça change autre chose lol.

le userform démarre sur client maintenant (pas grave) plus de problème quand on tape sans basculer la feuille. Problème ça n'enregistre plus que dans le tableau client .

et si je décommente on à le même problème qu'au début
 

vgendron

XLDnaute Barbatruc
il restait un bug sur la listbox lorsqu'on passe d'un mode à l'autre

ici:
le USF se lance en mode CoPro puisque le formulaire est "dessiné" avec tous les labels et controls de la feuille "CoPro"

Je te laisse faire des essais et revenir vers moi si il y a des pbs
 

Pièces jointes

  • copro-client V5.xlsm
    44.4 KB · Affichages: 2

cedelec

XLDnaute Nouveau
il restait un bug sur la listbox lorsqu'on passe d'un mode à l'autre

ici:
le USF se lance en mode CoPro puisque le formulaire est "dessiné" avec tous les labels et controls de la feuille "CoPro"

Je te laisse faire des essais et revenir vers moi si il y a des pbs
Encore merci

juste une question pour essayer de comprendre.

Le module 2 ne sert plus ? et si je veux par exemple changer le textbox 2 en listbox, dans le code faut-il juste déclarer cette liste box à la place du texbox ou cela engendre un gros changement de code ?
 

Discussions similaires

Statistiques des forums

Discussions
315 081
Messages
2 116 027
Membres
112 640
dernier inscrit
rachidqadmir