Moteur de recherche + Fonction modifier VBA-USERFORM

Smaily

XLDnaute Junior
Bonjour,

Je souhaite créer une sorte de moteur de recherche en VBA, cela dit je bloque un peu.
Le but de cette macro est de rechercher une ligne de la feuille "Répertoire" comportant la donnée recherchée. (une sorte de filtre)

Merci d'avance pour le coup de main.
Cordialement.
 

Pièces jointes

  • METZ.xlsm
    48.4 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
Maintenant c'est en ajoutant une ligne que ça se produit. Bon eh bien je ne sais plus que faire.
Même en mettant Application.DisplayAlerts = False devant ça n'enlève pas le message.
Mais je savais depuis longtemps que ce serait casse gueule. Et là je ne sais plus quoi y faire, désolé.
 

Dranreb

XLDnaute Barbatruc
Ah mais si, ça marche, à condition de le remettre à l'état standard par Application.DisplayAlerts = True seulement après le garnissage du LOt.DataBodyRange. C'est lui qui a l'air de provoquer le message quand il est obligé d'ajouter de nouvelles lignes, et non la suppression préalable des lignes en trop. C'est de plus en plus incompréhensible…
 

Smaily

XLDnaute Junior
Ouiiii super comme sur des roulettes !!!! Je vous en remercie une nouvelle fois !!
De ce fait, dois-je garder la ligne : While SCn.Count > 0: SCn(1).Delete: Wend ?

Ou bien remettre : While LMax < SCn.Count: SCn(LMax + 1).Delete: Wend
 

Dranreb

XLDnaute Barbatruc
C'est comme vous voulez. Peut être, seulement supprimer les séries en trop, ça fait moins d'opérations, et sait on jamais au cas où elles venaient à mal se créer, il resterait au moins les anciennes ne serait-ce que pour mieux s'en rendre compte, mais c'est peu probable.
Ce qui me désole c'est qu'on ne saura jamais d'où ça venait …
 

Smaily

XLDnaute Junior
D'accord c'est vous le chef, je laisse comme ça alors !
Oui peut être une histoire de mémoire tampon à force de créer de nouvelle couche et un mélange entre les références... à vraie dire je n'y connais pas grand chose de ce coté. Vous maitrisez VBA à la perfection.
 

Smaily

XLDnaute Junior
Bonjour,
Suite à notre dernier échange, je reviens vers vous afin de connaitre la façon de rajouter d'autres options dans le menu principal.
En effet, le projet est en place et durant cette phase de développement nous avons constaté qu'il serait utile de saisir aussi le type du container :
40 DV, 40 HC, 40 RF, 40 PW, 40 OT
20 DV, 20 HC, 20 RF, 20 PW, 20 OT
30 DV, 30 HC, 30 RF, 30 PW ou 30 OT

et la qualité du conteneur :
Alimentaire, Bon, Moyen, Mauvais, Médiocre et Avarie

Comment pouvons nous insérer ces deux menu déroulant ?
J'ai commencé mais je n'arrive pas à mettre ces valeurs ci-dessus...
Merci d'avance pour votre aide.

Veuillez trouver ci-joint le fichier:
 

Pièces jointes

  • Copie de METZ - GESTION.xlsm
    50 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
Si ces ComboBox font pas partie de l'identification de la ligne, mettez manuellement les valeurs des lignes existantes. Elles seront automatiquement proposées par la suite. Et pour en ajoutez un vous les renseignerez.
Si une des ComboBox n'en fait pas partie, confiez en la charge à CA au lieu de CL et garnissez sa List au début. Mais vous ne pourez plus rechercher une ligne existante sur ce critère.
 

Smaily

XLDnaute Junior
D'accord mais qu'appelez vous "au debut" ?

1567095352855.png


Comme ceci ?
 

Dranreb

XLDnaute Barbatruc
Dans la UserForm_Initialize
Par exemple CBxQua.List = Array("Alimentaire", "Bon", "Moyen", "Mauvais", "Médiocre", "Avarié")
À l'inverse si une info, par exemple la Compagnie martime, ne peut pas changer sur une ligne existante mais que vous souhaiteriez pouvoir en retrouver une de cette compagnie, vous avez tout intérêt à mettre pour elle une CBx gérée par CL.
 

Smaily

XLDnaute Junior
Oui c'est ça que je veux, voila ce que j'ai fait :

1567097104988.png


Cependant je ne trouve pas la ligne permettant de redimensionner le tableau de la feuille 1 "Repertoire" et de la feuille 2 "Ecriture comptable". Car le resultat n'apparait pas malgré l'agrandissement du tableau de la feuille Excel.

1567097304105.png
 

Pièces jointes

  • 1567097282342.png
    1567097282342.png
    167 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Le TVL est dimensionné automatiquement selon le nombre de colonnes du tableau.
Le TVLEC c'est dans la Sub CopieTVLEC à la fin.
Il faut augmenter de 2 les numéros de colonnes, et aussi d'abord ajouter ces colonne dans le tableau de la feuille écriture comptable.

Remarque, mon propos était différent: Si une ComboBox est gérée par CL et non CA, pas besoin de s'occuper de sa liste: elle est constituée automatiquement d'après ce qui existe dans la base et qui soit compatible avec ce qui a éventuellement déjà été choisi dans d'autre ComboBox aussi gérées par lui.
Si par exemple au lieu de saisir la provenance et la destination dans des TextBox vous les saisissiez dans des ComboBox dont vous confiez la charge à CL, vous pourrez limiter la recherche d'un conteneur à une provenance ou une destination. Mais vous ne pourrez alors plus les changer sur une ligne existante, à moins d'ajouter un bouton spécial qui stoppe l'objet pour que ce changement ne déclenche plus de recherche. Mais il apparaît alors un risque théorique d'introduire des doublons de l'ensemble de la combinaison de valeurs des ComboBox.
 
Dernière édition:

Smaily

XLDnaute Junior
J'ai beau redimensionner les colonnes et modifier le numero dans la boucle, la qualité et le type du container ne s’écrit pas dans les tableaux...
Ai-je oublié quelque chose ?
 

Pièces jointes

  • Copie de METZ - GESTION.xlsm
    56.5 KB · Affichages: 10

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote