userform recherche multiple

devilmort

XLDnaute Nouveau
Bonjour a tous

J'ai un petit souci.

J'ai un fichier xls avec un userform j'aimerais créé un bouton suivant et précédent lorsque je fais une recherche et que celle-ci trouve plusieurs ligne possible

Pour exemple faite la recherche 12340200 en AISM il y a deux résulta lorsque je fait la recherche il me donne la première ligne trouver hors j aimerai défiler les différent résultat avec le bouton suivant pour trouver la bonne ligne et faire les modification éventuel

Voir pièce jointe
merci de prendre le temps de me lire et éventuellement m'aider.

Bonne réception.
Respectueusement.
 

Pièces jointes

  • Parc PEGP - Copie.xlsm
    357.5 KB · Affichages: 66

Dranreb

XLDnaute Barbatruc
Bonjour.
Ce complément vous débarrasserait complètement de tous ces problèmes en amont des opérations de mise à jour des lignes une fois définies ou localisées.

Remarque: Dans votre code vous n'utilisez les ComboBox que pour autre chose que la recherche d'une ligne, et pour cette dernière vous partez de TextBox. L'utilisation de l'objet ComboBoxLiées repose sur un principe exactement opposé. Encore qu'il est toujours possible d'utiliser aussi des ComboBox n'intervenant pas dans la recherche, bien sûr. Là où il pourrait y avoir une petite complication ce serait si une ComboBox y intervenant devait obligatoirement proposer une liste comportant aussi d'autres éléments que ceux qui figurent déjà dans la base.
 

Pièces jointes

  • CBxL.xlsm
    81.9 KB · Affichages: 62
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne me suis penché que sur les dispositions en amont, listes et recherches. Je n'ai pas encore refait la partie mise à jour. Ça ne marche plus du tout comme ça. Au fait: ce serait mieux que toutes les plage de données subissent une mise sous forme de tableaux. Ça simplifierait un peu la création d'une ligne.
J'ai pensé à un truc: Une barre de défilement ne serait-elle pas mieux que les boutons Précédent et Suivant ? Elle permettrait de voir à peu près sur lequel de la série on est positionné.
Ah et surtout: Le CBxL.xlam est-il installé au moins ? Sinon même ce que j'ai déjà fait ne fonctionne pas.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
La mise sous forme de tableaux, y compris l'Archive permettrait des procédures plus simples qui devraient ressembler à ça :
VB:
Private Sub CBnAjouter_Click()
ReDim TV(1 To 1, 1 To 10)
CLsP.ValeursVers TV
DéchargerAutresContrôles
CLsP.Lignes.Add.Range.Value = TV
CLsP.Actualiser
End Sub
Private Sub CBnModifier_Click()
DéchargerAutresContrôles
CLsP.Lignes(LCou).Range.Value = TV
End Sub
Rem. Si en fait il ne doit pas y avoir de doublon d'une combinaison
'    EMAT8 et AISM on peut n'utiliser qu'un seul CommandButton CBnValider
'    qui afficherait soit "Ajouter" soit "Modifier".

Private Sub DéchargerAutresContrôles()
TV(1, 2) = NomdeBapteme.Text
TV(1, 3) = CBxAISM.Text
TV(1, 5) = SGL.Text
TV(1, 6) = CIE.Text
TV(1, 7) = Observation.Text
TV(1, 8) = GQGN.Text
End Sub

Private Sub CBnArchiver()
WshArchive.ListObjects(1).ListRows.Add.Range.Value = TV
CLsP.Lignes(LCou).Delete
CLsP.Actualiser
End Sub
 

Dranreb

XLDnaute Barbatruc
Apparemment et sauf erreur de ma part, dans vos exemples il n'y a aucun doublon de la combinaison des colonne A et colonne D. S'il n'y en aura jamais, à quoi devrait servir un dispositif de navigation ? Avec l'objet ComboBoxLiées, n'est-ce pas, lorsque vous faites dans une ComboBox un choix qui débouche sur plusieurs lignes, automatiquement il ne vous propose dans les autres que les choix compatibles avec celui là, c'est à dire uniquement les valeurs figurant dans les lignes ciblées par le 1er choix. Mais bien sûr si tous les choix ne suffisent pas à déterminer une ligne unique, alors il faut un système de navigation…
 

devilmort

XLDnaute Nouveau
Bonjour

Tout d’abord merci de votre aide

Le faite que quand on tape l'AISM il découvre s'il est existant dans mon XLS c'est bien, j'ai tout de même un souci car je ne comprend pas votre code, et une fois fonctionnel je devrais adapter ce formulaire en créent deux autres formulaires ( CCT PARC GLOBAL et EMDIV1 PARC GLOBAL ) donc cela vas devenir très difficile pour moi si je ne comprend pas ce code.

J'aimerais rester sur mon fichier d’origine juste avec une fonction recherche fonctionnel et quand je clic sur archiver la ligne soit crée sur l’onglet archiver puis supprimer de 19 RG PARC GLOBAL.

Ce sont les deux seul fonction sur lequel je bloque car tout le reste fonctionne et je pourrai adapter sur mes deux autres formulaire, j'ai déjà ma fonction Ventiler qui fonctionne sur mes trois parc.

Bonne réception.
Cordialement.
 

Pièces jointes

  • test3.xlsm
    357.4 KB · Affichages: 58

Dranreb

XLDnaute Barbatruc
Bonjour.
Aucune adaptation à faire, c'est le même UserForm pour toutes les feuilles. Il s'appuie sur la feuille active et c'est dit à un seul endroit de tout le code.
Oh non ! je viens d'ouvrir le classeur joint, et je vois que ce n'est pas une évolution de celui que j'avais joint.
Bon si ça ne vous intéresse, pas on en reste là c'est tout.
Mais c'est dommage, j'avais presque tout écrit de mon coté.
Il me manquait juste des informations sur ce qui peut ou non réellement être en double et si les boutons Suivant et Précédent seraient encore utile à quelque chose sachant qu'on peut affiner les choix en renseignant les différentes ComboBox.
Et aussi si vous seriez d'accord pour tout mettre sous forme de tableaux (ListObject) pour pouvoir utiliser leurs collections ListRows et les méthodes Add et Delete de celles ci.
Pourquoi ne comprendriez vous pas ce code ? Il est plus simple et plus court que tout.
 
Dernière édition:

devilmort

XLDnaute Nouveau
J'ai pas dit qu'il ne me convenez pas mais si j'arrive pas a le comprendre comment je ferai pour le corriger
vous m'enlever mon bouton ajouter alors que j'en ai besoin
vous me faite un bouton base/parc je ne c'est pas a quoi il sert
je ne serait pas le seul a utiliser ce fichier
il faut que mon fichier fasse les chose comme je le pense c'est moi qui vais l'utiliser

je ne suis pas un pro VBA sinon je ne demanderai pas d'aide.

Bonne réception.
 

Dranreb

XLDnaute Barbatruc
Vous pouvez toujours me demander des précisions sur ce que vous ne comprenez pas.
Il y a aussi des explications dans la feuille d'aide de CBxL pour tous les membres de CLsB et CLsP, méthodes et propriétés.
Je l'ai peut être enlevé un peut vite le bouton Ajouter, je ne sais pas. Tout dépend s'il doit pouvoir ou non y avoir des doublons. Si non, c'est le même bouton qui peut faire Ajouter ou Modifier, selon que la combinaison des valeurs EMAT8+AISM existait déjà ou non.
Le bouton Base/Parc sert à faire une recherche dans la feuille base sur la colonne EMAT8 ou ASM. S'il ne le faut pas on l'enlèvera.
Les listes en haut de la feuille entre les lignes 2 et 6 servent-elles bien à choisir seulement les nouveautés à créer dans le tableau ? Parce qu'il me semble qu'il y en a si peu que vous pourriez aussi bien les taper, mais seulement si elle n'existent pas déjà dans le tableau.
Si en plus elle ne changent plus sur une ligne existante on aurait tout intérêt à confier aussi la charge des autres ComboBox à CLsP
 
Dernière édition:

devilmort

XLDnaute Nouveau
Le formulaire est fait pour que l'utilisateur entre une nouvelle saisie avec des liste déroulante comme je l'avait fait donc avec le bouton ajouter

le bouton modifier sert lui pour modifier une ligne existante

ensuite l’onglet base lui sert juste pour récupérer l'ASM après saisie de EMAT8 afin qu'il soit toujours écrit pareil dans le tableau

le bouton recherche sert lui a retrouver une ligne existante (pour les bouton suivant et précèdent c'est parce que je voulai retirer le champ textbox2 de la recherche et utiliser juste le textbox1 )

le bouton archiver lui vas servir a basculer la ligne sur l'onglet archive après une modif du commentaire puis supprimer de l'onglet parc

mon bouton menu contient trois bouton ou il vas y avoir 3 formulaire pour mes trois parc

ensuite mon bouton ventiler lui est fonctionnel il créé mes onglets trier avec totaux par parc

je comprend que cela a l'aire compliquer pour vous mais je doit vraiment travailler comme sa pour mon besoin.
 

Dranreb

XLDnaute Barbatruc
Eh, bien voilà, c'est tout ce que je voulais savoir. Donc après avoir choisi ou tapé un AISM, il suffit s'il y a plusieurs lignes, de choisir le bon EMAT8 pour atteindre la ligne voulue. Plus besoin de bouton Suvant et Précédent alors ? Et le même bouton peut servir à ajouter ou modifier selon que la combinaison des deux existe déjà ou non. C'est bien ça ?
Reste la question des mises sous formes de tableaux. D'accord ou pas d'accord ?
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami