Sub TestResearch()
'
' TestResearch Macro
' Essai pour la recherche d'une valeur en VB
'
'
' Définition des variables
' numAno = numero de l'anomalie a chercher
' lignef1 = numéro de la ligne sur laquelle on souhaite effectuer la recherche sur la feuille des voitures
' colonnef1 = numéro de la colonne sur laquelle on souhaite effectuer la recherche sur la feuille des voitures
' lignef2 = numéro de la ligne sur laquelle on souhaite effectuer la recherche sur la feuille des anomalies
' colonnef2 = numéro de la colonne sur laquelle on souhaite effectuer la recherche sur la feuille des anomalies
' plage est la plage sur laquelle on souhaite effectuer la recherche
'
Dim numAno As String
Dim toto As String
Dim lignef1 As Integer
Dim colonnef1 As Integer
Dim lignef2 As Integer
Dim colonnef2 As Integer
Dim Plage As Range
Dim l
'
' Initialisation des variables
' Worksheets(2).Cells(lignef1, colonnef1) nous pose sur la cellule H2, premiere case avec anomalie sur la feuille 2
' Worksheets(4).Cells(lignef2, colonnef2) nous pose sur la cellule B4, premiere case avec anomalie sur la feuille 4
'
lignef1 = 2
colonnef1 = 8
lignef2 = 3
colonnef2 = 2
l = Worksheets(7).Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To l
numAno = Worksheets(7).Cells(lignef1, colonnef1).Value
'
' Debut du traitement a effectuer
'
Set Plage = Worksheets(8).Range("B4:B65536").Find(What:=numAno, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True, SearchOrder:=xlByRows, SearchDirection:=xlNext)
' Si il y a une valeur pour l'etat :
If Not Plage Is Nothing Then
' On copie l'etat situe dans la feuille 4 sur la feuille 2
toto = Plage.Offset(0, 35).Value
Worksheets(7).Cells(lignef1, 31) = toto
' Si l'etat est "corrigee" alors on incremente colonne pour regarder si il y a une autre anomalie
If toto = "Corrigée" Then
colonnef1 = colonnef1 + 1
colonnef2 = colonnef2 + 1
' Si l'etat est different de "corrigee" alors on incremente ligne pour passer au folio/raster suivant
Else
lignef1 = lignef1 + 1
lignef2 = lignef2 + 1
colonnef1 = 8
colonnef2 = 2
End If
' Si il n'y a pas de valeur pour l'etat d'une anomalie :
Else
Worksheets(7).Range(Cells(lignef1, 31)) = "Corrigée"
lignef1 = lignef1 + 1
End If
Next
'
End Sub