Option Explicit
Private WithEvents CL As ComboBoxLiées
Private Sub UserForm_Initialize()
Dim C As Long
Set CL = CLsCAs.ComboBoxLiées
CL.Plage Feuil1.[A2:D2], True
For C = 1 To 3: CL.Add Me("ComboBox" & C), C: Next C
For C = 4 To 5: CL.Add Me("ComboBox" & C): Next C
CL.Actualiser
End Sub
Private Sub CL_SujBdDPersoSVP(ByVal CBM As CLsCAs.ComboBoxMmbr)
Dim SujBrut
SujBrut = CLsCAs.SujetCBx(CL.PlgTablo.Columns(4))
If CBM.CBx Is Me.ComboBox4 Then
CBM.SujetBdD = CLsCAs.SujAvecSuivants(SujBrut)
Else
CBM.SujetBdD = CLsCAs.SujAvecPrécédents(SujBrut)
End If
End Sub
Private Sub CL_Résultat(Lignes() As Long)
Dim TDon(), LDon&, TLBx(), LLBx&, C&
ReDim TLBx(1 To UBound(Lignes), 1 To 4)
TDon = CL.PlgTablo.Value
For LLBx = 1 To UBound(TLBx)
LDon = Lignes(LLBx)
For C = 1 To 4: TLBx(LLBx, C) = TDon(LDon, C): Next C, LLBx
ListBox1.List = TLBx
End Sub
Option Explicit
Private WithEvents CL As ComboBoxLiées
Private Sub UserForm_Initialize()
Dim C As Long
Set CL = CLsCAs.ComboBoxLiées
CL.Plage Feuil1.[A2:D2], True
For C = 1 To 3: CL.Add Me("ComboBox" & C), C: Next C
For C = 4 To 5: CL.Add Me("ComboBox" & C): Next C
CL.Actualiser
End Sub
Private Sub CL_SujBdDPersoSVP(ByVal CBM As CLsCAs.ComboBoxMmbr)
Dim SujBrut
SujBrut = CLsCAs.SujetCBx(CL.PlgTablo.Columns(4))
If CBM.CBx Is Me.ComboBox4 Then
CBM.SujetBdD = CLsCAs.SujAvecSuivants(SujBrut)
Else
CBM.SujetBdD = CLsCAs.SujAvecPrécédents(SujBrut)
End If
End Sub
Private Sub cbtout_Click()
CL.Nettoyer
End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
Dim TLgn() As Long, L As Long
If NbrLgn > 0 Then Exit Sub
ReDim TLgn(1 To CL.PlgTablo.Rows.Count)
For L = 1 To UBound(TLgn): TLgn(L) = L: Next L
CL_Résultat TLgn
End Sub
Private Sub CL_Résultat(Lignes() As Long)
Dim TDon(), LDon&, TLBx(), LLBx&, C&
ReDim TLBx(1 To UBound(Lignes), 1 To 4)
TDon = CL.PlgTablo.Value
For LLBx = 1 To UBound(TLBx)
LDon = Lignes(LLBx)
For C = 1 To 4: TLBx(LLBx, C) = TDon(LDon, C): Next C, LLBx
ListBox1.List = TLBx
End Sub
Bonjour,
Programmation complétée pour tenir compte du bouton TOUT :
VB:Option Explicit Private WithEvents CL As ComboBoxLiées Private Sub UserForm_Initialize() Dim C As Long Set CL = CLsCAs.ComboBoxLiées CL.Plage Feuil1.[A2:D2], True For C = 1 To 3: CL.Add Me("ComboBox" & C), C: Next C For C = 4 To 5: CL.Add Me("ComboBox" & C): Next C CL.Actualiser End Sub Private Sub CL_SujBdDPersoSVP(ByVal CBM As CLsCAs.ComboBoxMmbr) Dim SujBrut SujBrut = CLsCAs.SujetCBx(CL.PlgTablo.Columns(4)) If CBM.CBx Is Me.ComboBox4 Then CBM.SujetBdD = CLsCAs.SujAvecSuivants(SujBrut) Else CBM.SujetBdD = CLsCAs.SujAvecPrécédents(SujBrut) End If End Sub Private Sub cbtout_Click() CL.Nettoyer End Sub Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long) Dim TLgn() As Long, L As Long If NbrLgn > 0 Then Exit Sub ReDim TLgn(1 To CL.PlgTablo.Rows.Count) For L = 1 To UBound(TLgn): TLgn(L) = L: Next L CL_Résultat TLgn End Sub Private Sub CL_Résultat(Lignes() As Long) Dim TDon(), LDon&, TLBx(), LLBx&, C& ReDim TLBx(1 To UBound(Lignes), 1 To 4) TDon = CL.PlgTablo.Value For LLBx = 1 To UBound(TLBx) LDon = Lignes(LLBx) For C = 1 To 4: TLBx(LLBx, C) = TDon(LDon, C): Next C, LLBx ListBox1.List = TLBx End Sub
Bonsoir.
Installez cette ressource, elle fait ça tout seul.
[/QUOTEComboBox liées et contrôles associés
Définit deux types d'objets à évènements: ComboBoxLiées prenant en charge les ComboBox pour la saisie des données d'identification de la ligne à créer, puis, ultérieurement, à consulter voire modifier, et ControlsAssociés prenant en charge les...www.excel-downloads.com
Bonsoir,
CBxLCtlA.xlam sa marche pas
Set f = Sheets("bd")
Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row) ' à adapter
nomTableau = "Tableau1"
ActiveWorkbook.Names.Add Name:=nomTableau, RefersTo:=Rng
TblBD = Range(nomTableau).Value