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
| Sub Macro()
Dim TheCell As Range, TheCellFindX As Range, TheCellFindY As Range
Dim NLigne As Integer, NCol As Integer
'On boucle sur le contenu de la colonne A
For Each TheCell In Feuil1.Range("A2", Feuil1.Cells(Rows.Count, "A").End(xlUp))
'On recherche la veleur dans la colonne A de la feuille 2
Set TheCellFindY = Feuil2.Columns("A").Find(TheCell, , , xlWhole, xlByColumns, , True, True)
'On regarde si une valeur a ete trouvée
If TheCellFindY Is Nothing Then 'Pas trouvé
'On selectionne une cellule vide a la suite et On ajoute la valeur dans le tableau Feuille2
Set TheCellFindY = Feuil2.Cells(Rows.Count, "A").End(xlUp).Offset(1)
TheCellFindY = TheCell
End If
'On cherche la valeur colonne B
Set TheCellFindX = Feuil2.Rows(1).Find(TheCell.Offset(0, 1), , , xlWhole, xlByColumns, , True, True)
'On regarde si valeur trouvée
If TheCellFindX Is Nothing Then 'Pas trouvé
'On pointe sur une nouvelle cellule et on ajoute la nouvelle valeur dans le tableau Feuille2
Set TheCellFindX = Feuil2.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1)
TheCellFindX = TheCell.Offset(0, 1)
End If
'Arrivé ici, TheCellFindx pointe dans tous les cas la bonne cellule de la ligne 1 du tableau FEuille2
'et TheCellFindY pointe la bonne cellule de la colonne A
'Il ne reste plus qu'a cocher l'intersection des 2
Feuil2.Cells(TheCellFindY.Row, TheCellFindX.Column) = "X"
Next
'On vide les variables objet
Set TheCellFindY = Nothing
Set TheCellFindX = Nothing
Set TheCell = Nothing
End Sub |
Partager