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.
si besoin demandez moi de plus amples informations.
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
cordialement
Pexou
Partager