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
Il n'y a en effet jamais eu d'instruction pour modifier la base. D'ailleurs CLsB n'était même pas déclaré avec l'attribut WithEvents. Seule sa consultation était prévue. C'était le rôle du bouton base de la demander. Mais vous avez fini par comprendre. Pas grave.
J'ai quand même cherché comment faire ce que vous demandiez. Ce début paraît pas mal :
VB:
Option Explicit
Private WithEvents CL As ComboBoxLiées, LCou As Long, TV(), _
   TBase(), DicBase As Dictionary ' RAPPEL: ACTIVEZ LA RÉFÉRENCE Microsoft Scripting Runtime !
Private Sub UserForm_Initialize()
Set CL = Création.ComboBoxLiées
CL.Plage ActiveSheet.[A10:H10], True
CL.Add Me.CBxEMAT8, 1, "&"
CL.Add Me.CBxAISM, 4, "&"
CL.CouleurSympa
Rem. Supprimez les RowSource si vous activez ces instructions :
'me.cbxnomdebaptème.list = array("19", "51", "52","CCT","EMDIV1")
'me.cbxsgl.list = array("4100", "4800", "44??")
'me.cbxcie.list = array("1", "2", "CCL", "CADO", "CA")
'me.cbxgqgn.list = array("GQ", "GN")
TBase = WshBase.[A2:B2].Resize(WshBase.[A65000].End(xlUp).Row - 1).Value
Dim Suj: Suj = CBXL.SujetCBx(TBase)
Set DicBase = CBXL.DicoSujet(Suj)
CL.Actualiser
End Sub
Private Sub CBnEffacer_Click()
If CL.ChangéÀLEchap Then Exit Sub
'RAPPEL: METTEZ À True LA PROPRIÉTÉ Cancel DE CBnEffacer !
CL.Nettoyer
End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
Dim TLBase() As Long, N As Long
With CBnValider: .Enabled = NbrLgn <= 1
   .Caption = IIf(NbrLgn = 0, "Ajouter", "Modifier"): End With
CBxAISM.Clear
If DicBase.Exists(CBxEMAT8.Text) Then
   TLBase = DicBase(CBxEMAT8.Text)
   For N = 1 To UBound(TLBase)
      CBxAISM.AddItem TBase(TLBase(N), 2)
      Next N
   CBxASM.ListIndex = 0: End If
If NbrLgn = 1 Then Exit Sub
LCou = 0: ReDim TV(1 To 1, 1 To 10)
GarnirAutresContrôles
End Sub
Mais avec le bouton et CLsB ce serait quand même mieux…
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

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