bonjour a tous,

je viens vers vous car je ne comprends pas mon erreur.
j'ai regardé plusieurs fois le codes mais je n'arrive pas a voir l'erreur.

J'ai plusieurs feuilles dans mon classeur ( gestion de stock ), je souhaite faire une recherche en fonction de la feuille.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Option Explicit
Dim WS As Worksheet   'Variable pour un Objet Worksheet en PUBLIC pour tous les Controls de ce UserForm
Dim ChoixOuiNon As String
 
 
Private Sub OptionButton1_Click()
If OptionButton1 = True Then ChoixOuiNon = "Consommable Divers"
Ini
End Sub
Private Sub OptionButton2_Click()
If OptionButton2 = True Then ChoixOuiNon = "Produit Chimique"
Ini
End Sub
Private Sub OptionButton3_Click()
If OptionButton3 = True Then ChoixOuiNon = "Outillage elec_pneum"
Ini
End Sub
Private Sub OptionButton4_Click()
If OptionButton4 = True Then ChoixOuiNon = "Outillage a main"
Ini
End Sub
Private Sub OptionButton5_Click()
If OptionButton5 = True Then ChoixOuiNon = "E.P.I."
Ini
End Sub
Private Sub OptionButton6_Click()
If OptionButton6 = True Then ChoixOuiNon = "consommable Composite"
Ini
End Sub
 
 
Private Sub CommandButton2_Click()
Unload Me
End Sub
 
Private Sub Ini()
 
Dim PageRefRecherche As String
Dim ctrl As Control 'Variable pour la collection des controls
Dim L As Integer    'Variable pour connaitre le numéro de derniere ligne
Dim i As Integer    'Variable pour connaitre incrémenter les Data
'On Vide tous les Controls
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.Label Then ctrl = ""
 
PageRefRecherche = ChoixOuiNon
 
Next ctrl
Me.ComboBox1.Clear 'On vide les précédentes données
Set WS = ThisWorkbook.Sheets(PageRefRecherche) 'On identifie l'objet pour la feuille de travail
L = WS.Range("A65536").End(xlUp).Row    'On identifie la dernière ligne en partant du bas
'Pour éviter les fash d'écran pour le select ci dessous
Application.ScreenUpdating = False
    WS.Select 'On sélectionne la feuille sinon bug si elle ne l'est pas
 
 
For i = 2 To L             'Boucle départ 2 (Ligne 2 de la feuille, jusqu'à dernière
With Me.ComboBox1         'Avec la ComboBox1
.AddItem WS.Range("A" & i) 'On ajoute dans la ComboBox toutes les valeurs, cellules après cellules
End With
Next i                     'Next pour poursuivre la boucle pour le i suivant
Application.ScreenUpdating = True
End Sub
 
Private Sub CommandButton1_Click()
 
    Dim PageRefRecherche As String
    Dim X, occurence As Integer
    Dim R As Range
    Dim ligne As Long
    Dim trouve As Boolean 'déclare la variable trouvé
 
 
    PageRefRecherche = ChoixOuiNon
 
    If ComboBox1.Value <> "" Then
 
        ThisWorkbook.Sheets("Recherche").Range("A2:H" & ThisWorkbook.Sheets("Recherche").Range("A:A").End(xlDown).Row).ClearContents
 
        trouve = False
        occurence = 0
        ligne = 1
 
 
        '=======================================================
        'Recherche parmi les numéro de lots client dans adhesif
        '=======================================================
        Set R = ThisWorkbook.Sheets(PageRefRecherche).Range("A:A").Find(what:=ComboBox1.Value, LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext)
        If Not R Is Nothing Then 'condition si au moins une occurrence trouvée
            trouve = True
            For Each R In ThisWorkbook.Sheets(PageRefRecherche).Range("A65536:A" & ThisWorkbook.Sheets(PageRefRecherche).Range("A:A").End(xlDown).Row)
                If R.Text = ComboBox1.Value Then
                    With ThisWorkbook
                        occurence = occurence + 1
                        ligne = ligne + 1
 
                            .Sheets("Recherche").Range("A" & ligne).Value = .Sheets(PageRefRecherche).Range("A" & R.Row).Value
                            .Sheets("Recherche").Range("B" & ligne).Value = .Sheets(PageRefRecherche).Range("B" & R.Row).Value
                            .Sheets("Recherche").Range("C" & ligne).Value = .Sheets(PageRefRecherche).Range("C" & R.Row).Value
                            .Sheets("Recherche").Range("D" & ligne).Value = .Sheets(PageRefRecherche).Range("D" & R.Row).Value
                            .Sheets("Recherche").Range("E" & ligne).Value = .Sheets(PageRefRecherche).Range("E" & R.Row).Value
                            .Sheets("Recherche").Range("F" & ligne).Value = .Sheets(PageRefRecherche).Range("F" & R.Row).Value
                            .Sheets("Recherche").Range("G" & ligne).Value = .Sheets(PageRefRecherche).Range("G" & R.Row).Value
                            .Sheets("Recherche").Range("H" & ligne).Value = .Sheets(PageRefRecherche).Range("H" & R.Row).Value
 
 
 
 
                       End With
                End If
            Next R
            occurence = 0
        End If
 
end if
 
 
End Sub
si besoin demandez moi de plus amples informations.

cordialement

Pexou