AppleDance
XLDnaute Nouveau
Bonjour,
J'aurais besoin d'aide pour optimiser deux macros que j'ai :
Ce sont des macros à l'intérieur d'UserForm.
La première macro sur lequel j'ai un problème sont dans les ListBox 2, 3, etc.
En effet, lorsque je choisi dans le ListBox 1: si plusieurs informations sont identiques dans le ListBox 1, dans la ListBox2 et 3 s'affichent toutes les informations des 2 lignes, hors j'ai crée plusieurs ListBox pour n'en avoir qu'une par ligne.
la seconde macro marche comme je le voudrais ... mais prend trop de temps.
Ce que je souhaiterais c'est l'optimiser, diviser le temps de réflexion d'excel.
Merci de votre compréhension.
Edit: Comment limiter "interior.color" jusqu'à la colonne D ?
J'aurais besoin d'aide pour optimiser deux macros que j'ai :
Ce sont des macros à l'intérieur d'UserForm.
La première macro sur lequel j'ai un problème sont dans les ListBox 2, 3, etc.
En effet, lorsque je choisi dans le ListBox 1: si plusieurs informations sont identiques dans le ListBox 1, dans la ListBox2 et 3 s'affichent toutes les informations des 2 lignes, hors j'ai crée plusieurs ListBox pour n'en avoir qu'une par ligne.
Private Sub ListBox1_Click()
LastRow = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row
no_ligne = Range("A1000").End(xlUp).Row + 1
'clear listbox1
Me.ListBox2.Clear
Me.ListBox3.Clear
Me.ListBox4.Clear
OptionButton3.Value = False
OptionButton4.Value = False
curVal = Me.ListBox1
For x = 2 To LastRow
If Feuil1.Cells(x, "a") = curVal Then
'populate listbox2, 3 , etc
Me.ListBox2.AddItem Feuil1.Cells(x, "b")
Me.ListBox3.AddItem Feuil1.Cells(x, "c")
Me.ListBox4.AddItem Feuil1.Cells(x, "d")
End If
Next x
End Sub
LastRow = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row
no_ligne = Range("A1000").End(xlUp).Row + 1
'clear listbox1
Me.ListBox2.Clear
Me.ListBox3.Clear
Me.ListBox4.Clear
OptionButton3.Value = False
OptionButton4.Value = False
curVal = Me.ListBox1
For x = 2 To LastRow
If Feuil1.Cells(x, "a") = curVal Then
'populate listbox2, 3 , etc
Me.ListBox2.AddItem Feuil1.Cells(x, "b")
Me.ListBox3.AddItem Feuil1.Cells(x, "c")
Me.ListBox4.AddItem Feuil1.Cells(x, "d")
End If
Next x
End Sub
la seconde macro marche comme je le voudrais ... mais prend trop de temps.
Ce que je souhaiterais c'est l'optimiser, diviser le temps de réflexion d'excel.
Private Sub CommandButton4_Click()
Dim I As Long
On Error Resume Next
With ListBox1
For I = .ListCount - 1 To 0 Step -1
If OptionButton3.Value = True Then
If .Selected(I) Then
With Sheets("Feuil1")
.Rows(I + 2).Interior.Color = 16777164
End With
End If
End If
Next I
End With
End Sub
Dim I As Long
On Error Resume Next
With ListBox1
For I = .ListCount - 1 To 0 Step -1
If OptionButton3.Value = True Then
If .Selected(I) Then
With Sheets("Feuil1")
.Rows(I + 2).Interior.Color = 16777164
End With
End If
End If
Next I
End With
End Sub
Merci de votre compréhension.
Edit: Comment limiter "interior.color" jusqu'à la colonne D ?
Pièces jointes
Dernière édition: