Bonjour je suis entrain de développer une macro pour effectuer une recherche sous EXCEL.
Je dispose de données qui me servent de références. Les références peuvent être jumelées entre elles, je m'explique: Si "Voiture A" est ma référence 1 et "Rouge" ma référence 2 je peux tout aussi avoir "Voiture A" comme référence 1 et "Vert" comme référence 2.
J'ai mis au point un petit programme qui "fonctionne" mais ne me donne pas tout le temps les bonnes données. Les première, cinquième et sixième données correspondent à celles des références entrées, mais pour les deuxièmes troisièmes et quatrième, les données sont interverties. Quelqu'un aurait-il une idée ? J'ai essayé de voir où se trouve le problème mais selon moi ça devrait me donner les bonnes valeurs.
Quand je limite mon tableau à 3 valeurs, le programme fonctionne; dès que j'augmente le nombre d'informations à traiter les résultats obtenus ne sont plus tous bons.
Je vous mets en annexe mon code ainsi que le fichier Excel correspondant.
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 Sub Recherche() '==================================================================================== ' Déclaration des variables '==================================================================================== Dim i As Integer Dim n As Integer Dim Drawing_Req() As Variant Dim Refs() As Variant Sheets("Temp").Select n = 4 Drawing_Req = Range("A4:A9").Value Refs = Range("C4:C9").Value '==================================================================================== ' Recherche des données grâces aux références '==================================================================================== Sheets("Spectre").Select For i = 20 To 33 ' Zone de recherche des références et requirements For j = LBound(Drawing_Req, 1) To UBound(Drawing_Req) If Drawing_Req(j, 1) = Cells(i, 3).Value Then If Refs(j, 1) = Cells(i, 5) Then Range("I" & i, "O" & i).Copy ThisWorkbook.Sheets("Temp").Range("E" & n) n = n + 1 End If End If Next j Next i '==================================================================================== ' Suppressions des cellules vides '==================================================================================== ' Suppression Cellules vides Sheets("Temp").Select Range("E4", "L" & (n - 1)).Select Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft End Sub
Partager