Bonjour Layla, bonjour le forum,
Comme mon fichier mis sur mon-partage.fr n'est plus disponible,
plutôt que de l'y remettre pour une période limitée, j'ai décidé
de le mettre en partage ici.
=================================================================
Voici d'abord comment se présentent les données sur la feuille :
A B C D E
1 Colonne 1 Colonne 2 Les mêmes Différentiel
2 EBRID-3.1.0 EXOCET-4,0,0
3 INFODOSI MANON
4 MICADO 5 AGLAEE ESTIM
5 COUT INFODOSI
La colonne C est vide (c'est juste pour aérer la présentation).
=================================================================
Voici maintenant mon code VBA :
------------------------------------------------------------------------------------------------------------------
Option Explicit
Dim lig3 As Long, lig4 As Long
Sub DoComp(job As Byte)
Application.ScreenUpdating = False
Dim chn As String, flag As Boolean
Dim colA As Byte, colB As Byte
Dim dligA As Long, dligB As Long
Dim ligA As Long, ligB As Long
If job = 1 Then
colA = 1: colB = 2
Else
colA = 2: colB = 1
End If
dligA = Cells(Rows.Count, colA).End(xlUp).Row
dligB = Cells(Rows.Count, colB).End(xlUp).Row
For ligA = 2 To dligA
chn = Cells(ligA, colA) ' appli de la colonne A
If chn <> "" Then
flag = True ' on suppose non trouvé en colonne B
For ligB = 2 To dligB
If chn = Cells(ligB, colB) Then
If job = 1 Then
Cells(lig3, 4) = chn: lig3 = lig3 + 1
End If
flag = False: Exit For ' on a trouvé
End If
Next ligB
If flag Then ' cas non trouvé
Cells(lig4, 5) = chn: lig4 = lig4 + 1
End If
End If
Next ligA
End Sub
Sub Essai()
lig3 = 2: lig4 = 2: DoComp 1: DoComp 2
End Sub
------------------------------------------------------------------------------------------------------------------
Notez bien que la sub DoComp() est appelée 2 fois par la sub Essai(), mais
avec 1 ou 2 en paramètre (ce qui décidera du sens des comparaisons).
------------------------------------------------------------------------------------------------------------------
Si vous avez bien saisi le code VBA correctement, les résultats devront être
(sans aucun doublon) :
a) Colonne D « Les mêmes » : INFODOSI uniquement
b) Colonne E « Différentiel » : tous les autres :
EBRID-3.1.0
MICADO 5
COUT
EXOCET-4,0,0
MANON
AGLAEE ESTIM
=================================================================
Je n'ai pas eu de réponse du demandeur Layla ; si elle repasse par ici,
j'espère que mon code VBA pourra lui servir ; ou à tous ceux qui sont
intéressés par ce type de problème.
Cordialement, rhodo
Merci à celui qui a noté +1 mon message précédent du 12 octobre ;
c'est d'ailleurs ce qui m'a encouragé à écrire ce nouvel article. ;)