Bonsoir au forum,
J'ai du mal a faire fonctionner le critère .Find pour trouver une valeur. Dans la pratique ça marche bien, trop bien même. Je me retrouve avec des valeurs trouvées alors qu'elles n'y sont pas. Il s'agit d'une liste de course et par exemple si ma macro doit me recherche la valeur "Coton" il me trouve 2 valeurs: Coton et Coton tige, ce que je ne veux pas .... J'ai fait un peut le tours et on parle de valeur exacte mais je n'arrive pas a l'adapter..
Voila ma macro:
Private Sub UserForm_initialize()
Dim iligne As Integer
Dim icolone As Integer
Dim ivaleur As Variant
Dim Cel As Range
iligne = 121
icolone = 2
For i = 1 To 40
If Sheets("PARAMETRE").Cells(iligne, icolone) = "" Then (visibilité de la checkbox)
Me.Controls("Checkbox" & i).Visible = False
Else
Me.Controls("Checkbox" & i).Caption = Sheets("PARAMETRE").Cells(iligne, icolone)
---------- Partie du code en question -------------
---------- Si la valeur existe dans la selection B163:B202 alors checkbox.Value = True
ivaleur = Sheets("PARAMETRE").Cells(iligne, icolone)
Set result = Sheets("PARAMETRE").Range("B163:B202").Find(What:=ivaleur, LookIn:=xlValues)
If result Is Nothing Then
Me.Controls("Checkbox" & i).Value = False
Else
Me.Controls("Checkbox" & i).Value = True
End If
End If
iligne = iligne + 1
Next i
End Sub
Merci encore
J'ai du mal a faire fonctionner le critère .Find pour trouver une valeur. Dans la pratique ça marche bien, trop bien même. Je me retrouve avec des valeurs trouvées alors qu'elles n'y sont pas. Il s'agit d'une liste de course et par exemple si ma macro doit me recherche la valeur "Coton" il me trouve 2 valeurs: Coton et Coton tige, ce que je ne veux pas .... J'ai fait un peut le tours et on parle de valeur exacte mais je n'arrive pas a l'adapter..
Voila ma macro:
Private Sub UserForm_initialize()
Dim iligne As Integer
Dim icolone As Integer
Dim ivaleur As Variant
Dim Cel As Range
iligne = 121
icolone = 2
For i = 1 To 40
If Sheets("PARAMETRE").Cells(iligne, icolone) = "" Then (visibilité de la checkbox)
Me.Controls("Checkbox" & i).Visible = False
Else
Me.Controls("Checkbox" & i).Caption = Sheets("PARAMETRE").Cells(iligne, icolone)
---------- Partie du code en question -------------
---------- Si la valeur existe dans la selection B163:B202 alors checkbox.Value = True
ivaleur = Sheets("PARAMETRE").Cells(iligne, icolone)
Set result = Sheets("PARAMETRE").Range("B163:B202").Find(What:=ivaleur, LookIn:=xlValues)
If result Is Nothing Then
Me.Controls("Checkbox" & i).Value = False
Else
Me.Controls("Checkbox" & i).Value = True
End If
End If
iligne = iligne + 1
Next i
End Sub
Merci encore