Je souhaite récupérer les données de 15 combos et 15 textbox d'un usf vers 2 x 15 cellules d'une feuille de calcul.
A l'initialisation de l'usf, je souhaite qu'il récupére le contenue des 2x15 cellules (si non-vide).
J'y suis arrivé mais le processus prend un temps incroyable. Je pense que mon code est sans doute mal torché.
Le ralentissement est subi par la lecture des données de la feuille de calcul vers l'usf via la propriété 'Control source'.
N'y-a-til pas moyen de procéder autrement ?
Voici le code :
A l'initialisation de l'usf, je souhaite qu'il récupére le contenue des 2x15 cellules (si non-vide).
J'y suis arrivé mais le processus prend un temps incroyable. Je pense que mon code est sans doute mal torché.
Le ralentissement est subi par la lecture des données de la feuille de calcul vers l'usf via la propriété 'Control source'.
N'y-a-til pas moyen de procéder autrement ?
Voici le code :
Code:
Private Sub Userform_Initialize()
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Lib rary
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Chemin As String, Cible As String, laBase As String
'Chemin du comptes.dbf du dossier choisi
Chemin = Sheets('Calcul').Range('REPEVOL') & '\\' & Sheets('Calcul').Range('REPDOS')
laBase = 'Comptes.dbf'
With ComboBox1
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox2
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox3
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox4
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox5
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox6
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox7
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox8
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox9
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox10
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox11
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox12
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox13
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox14
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
With ComboBox15
.ColumnCount = 2 'nombre de colonnes
.ColumnWidths = '50;80' 'largeur colonnes
End With
Set Cn = New ADODB.Connection
Cn.Open _
'Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=' & _
Chemin & ';'
'requête pour la recuperation des champs COMP ,INTI
Cible = 'SELECT COMP,INTI FROM ' & laBase & ' ORDER BY COMP ;'
Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
Do While Not Rs.EOF
ComboBox1.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox1.List(ComboBox1.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox2.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox2.List(ComboBox2.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox3.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox3.List(ComboBox3.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox4.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox4.List(ComboBox4.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox5.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox5.List(ComboBox5.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox6.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox6.List(ComboBox6.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox7.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox7.List(ComboBox7.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox8.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox8.List(ComboBox8.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox9.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox9.List(ComboBox9.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox10.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox10.List(ComboBox10.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox11.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox11.List(ComboBox11.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox12.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox12.List(ComboBox12.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox13.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox13.List(ComboBox13.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox14.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox14.List(ComboBox14.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
ComboBox15.AddItem Rs.Fields(0).Value 'champ COMP
ComboBox15.List(ComboBox15.ListCount - 1, 1) = Rs.Fields(1).Value 'champ INTI
Rs.MoveNext
Loop
Rs.Close
Cn.Close
End Sub
Private Sub ComboBox1_Change()
Sheets('Complet').Range('B49') = ComboBox1
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox2_Change()
TextBox2 = ComboBox2.List(ComboBox2.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox3_Change()
TextBox3 = ComboBox3.List(ComboBox3.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox4_Change()
TextBox4 = ComboBox4.List(ComboBox4.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox5_Change()
TextBox5 = ComboBox5.List(ComboBox5.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox6_Change()
TextBox6 = ComboBox6.List(ComboBox6.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox7_Change()
TextBox7 = ComboBox7.List(ComboBox7.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox8_Change()
TextBox8 = ComboBox8.List(ComboBox8.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox9_Change()
TextBox9 = ComboBox9.List(ComboBox9.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox10_Change()
TextBox10 = ComboBox10.List(ComboBox10.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox11_Change()
TextBox11 = ComboBox11.List(ComboBox11.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox12_Change()
TextBox12 = ComboBox12.List(ComboBox12.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox13_Change()
TextBox13 = ComboBox13.List(ComboBox13.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox14_Change()
TextBox14 = ComboBox14.List(ComboBox14.ListIndex, 1) ''INTI
End Sub
Private Sub ComboBox15_Change()
TextBox15 = ComboBox15.List(ComboBox15.ListIndex, 1) ''INTI
End Sub