Bonjour,

Je cherche à automatiser une recherche verticale sur VBA. Elle est d'ailleurs assez simple mais je débute alors je suis un peu paumé.
J'ai deux colonnes côte à côte, sur une même feuille. Je cherche à observer la première valeur de la première colonne, et parcourir toute la deuxième colonne. Si elle est dedans on inscrit dans une quatrième colonne "OK", sinon, on passe à la deuxième ligne de la première colonne, et ceci jusqu'à la fin de la colonne.

Sur ma feuille la colonne de référence est la deuxième, celle où chercher est la troisième, et celle où inscrire le OK est la quatrième.

Il faut savoir que je veux l'automatiser pour l'effectuer mensuellement, donc que la taille des colonnes va varier.

Voici ce que j'ai fait :

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
Dim line0 As Integer
Dim line1 As Integer
Dim cell_test0 As String
Dim cell_test1 As String
 
 
Sub line0_count()
Sheets("Swaps Liés Oblig AP").Select
line0 = -1
    Do
    line0 = line0 + 1
    cell_test0 = Cells(1 + line0, 3)
    Loop Until cell_test0 = ""
End Sub
 
Sub line1_count()
Sheets("Swaps Liés Oblig AP").Select
line1 = -1
    Do
    line1 = line1 + 1
    cell_test1 = Cells(1 + line1, 2)
    Loop Until cell_test1 = ""
End Sub
 
Sub recherche()
Sheets("Swaps Liés Oblig AP").Select
 
Dim i As Integer
Dim j As Integer
 
For i = 1 To line1
    For j = 1 To line0
    If Cells(i + 1, 2) = Cells(j + 1, 3) Then
    Cells(i + 1, 4) = "OK"
    End If
    Next j
Next i
End Sub
Ce code lance la macro, mais cette dernière inscrit des OK partout. (Alors qu'il y a clairement des cases de la colonne reférente qui sont pas dans la colonne à observer.) Sauriez-vous où se trouve le problème? Je tourne en rond...

Merci beaucoup!