Re : Extraction d’infos et traitement d une BDD
bonjour Vivi,Jean-Marie
le schmilbick avance,les changements annotés par 'ajouter
Private Sub CommandButton3_Click()
'ajouter
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
' le code
'ajouter
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
End With
Private Sub UserForm_Initialize()
Dim Ligne As Integer, Cel As Range
Ok_Modif = True
Set Col_Lot = New Collection
Set Col_Assures = New Collection
Nbr = 0
X = -1
With Usf_Traitement_Lots
.ComboBox1.Clear
.ComboBox1.Enabled = True
.Lbl_Transferable.Caption = "Liste à Transférer"
End With
Test_Change = False 'ici on met le changement de la listebox à false
'ajouter
Application.ScreenUpdating = False
With Worksheets("BDD")
DerLgn = .Range("B65536").End(xlUp).Row
'ajouter ces 3 lignes enlève espaces colonne b
'corrige peut être les erreurs signalées par Vivi et confirmée par Jean-Marie
For Each Cel In .Range(.Cells(5, 2), .Cells(DerLgn, 2))
Cel = Trim(Cel)
Next Cel
Tabtemp = .Range(.Cells(5, 2), .Cells(DerLgn, 2))
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Set Col_Assures_Base = Compte_Col_Assures_Base(Tabtemp) 'ici on récupère les assurés
Set Col_Assures_Base = Tri_Liste_Col(Col_Assures_Base) 'ici on les tri
'MsgBox Col_Assures_Base.Count
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
For Each Ws In Worksheets
If Left(Ws.Name, 3) = "Lot" Then
Usf_Traitement_Lots.ComboBox1.AddItem Ws.Name
End If
Next
End With
Set Col_Assures = New Collection
With Worksheets("Reste")
DerLgn = .Range("A65536").End(xlUp).Row + 1
If DerLgn = 8 Then GoTo suite
TabRecup_Reste = .Range(.Cells(8, 1), .Cells(DerLgn, 1)).Value
For Ligne = 1 To UBound(TabRecup_Reste, 1)
On Error Resume Next
If Trim(TabRecup_Reste(Ligne, 1)) <> "" And Left(Trim(TabRecup_Reste(Ligne, 1)), 2) <> "So" Then
Col_Assures.Add Trim(TabRecup_Reste(Ligne, 1)), CStr(Trim(TabRecup_Reste(Ligne, 1)))
End If
On Error GoTo 0
'Err.Clear
Next
Set Col_Assures = Tri_Liste_Col(Col_Assures)
If Col_Assures.Count > 0 Then
With Usf_Traitement_Lots
With .ListBox1
.Clear
For Ligne = 1 To Col_Assures.Count
.AddItem Col_Assures(Ligne)
Next
End With
.Label1.Caption = "Liste des Assuré(es) de la feuille Reste"
Tabtemp_Tri() = .ListBox1.List
End With
End If
Ok_Modif = False
End With
suite:
If Ok_Modif = True Then Tri_Liste Tabtemp, False
With Usf_Traitement_Lots
.Label4.Caption = ""
.ComboBox1 = ""
With .ListBox2
.Clear
.MultiSelect = fmMultiSelectExtended
.ControlTipText = "MultiSélection Possible"
End With
With .ListBox1
.ColumnCount = 1
.MultiSelect = fmMultiSelectExtended
.ControlTipText = "MultiSélection Possible"
End With
.lblCompteGauche.Caption = "Nombres d'Assuré(es) Restant(es) : " & CStr(.ListBox1.ListCount)
.lblCompteDroite.Caption = "Nombres d'Assuré(es) Sélectionné(es) : " & CStr(.ListBox2.ListCount)
.Label4.Caption = "Nombre d'Assuré(es) dans les Feuilles Lots : " & CInt(Col_Assures_Base.Count) - CInt(.ListBox1.ListCount) & _
" Sur " & CInt(Col_Assures_Base.Count)
End With
Ok_Modif = False
Set Col_Assures = Nothing
'ajouter
Application.ScreenUpdating = True
End Sub
à bientôt