Bonjour à tous,

Je sollicite une nouvelle fois votre aide afin de m'aider à résoudre mon problème.

Je souhaiterai faire une comparaison de colonne:
Dans ma feuille 1("Extraction"), j'ai un numéro qui est unique dans ma colonne B et une date et heure dans ma colonne M

Extraction
Col A - Col B - ligne
"25789" - "18/10/2015 10:57:00" - "10"
"25790" - "19/10/2015 14:00:15" - "11"
"25791" - "19/10/2015 15:29:00" - "12"
"25793" - "20/10/2015 11:30:00" - "13"

Dans la feuille 2("Base de donnée"), j'ai la même chose, c'est à dire dans ma colonne B, j'ai toujours un numéro unique et dans ma colonne M, j'ai une date et une heure (mais pas toujours)

Base de donnée
Col A - Col B - ligne
"25789" - "18/10/2015 10:57:00" - "75"
"25790" - "19/10/2015 14:00:15" - "76"
"25791" - " (null) " - "77"
"25793" - "20/10/2015 11:29:00" - "78"

Au final :

Extraction
Col A - Col B

"25791" "19/10/2015 15:29:00"
"25793" "20/10/2015 11:30:00"


Base de donnée
Col A - Col B
"25789" - "18/10/2015 10:57:00"
"25790" - "19/10/2015 14:00:15"



Donc mon but étant de comparer dans la feuille 1 et 2, si il y a le même numéro (feuil1 avec le numéro "25789" et dans la feuil 2 numéro "25789") et si l'heure (feuil1 l'heure est "18/10/2015 10:57:00" et feuil2 l'heure est "18/10/2015 10:57:00") alors je la supprime dans la feuil1(Extraction)

Et si le numéro est le même dans la feuil1 et feuil2 et que l'heure est différent, alors je supprime dans le feuil2 (Base de donnée)

Je pense avoir mon programme, mais j'ai quelques bug. (Surtout que je compare en fonction de la ligne alors que la ligne peut-être différente)

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
Sub test()
 
  Dim i As Integer
  Dim Ext As Range
  Dim BDD As Range
  Dim Date_remise As Range
 
   Set BDD = Worksheets("Base de donnée").Range("B2:B600")
  Set Date_remise = Worksheets("Base de donnée").Range("M2:M600")
  Set Ext = Worksheets("Extraction").Range("B2:B600")
 
 
  With ThisWorkbook.Sheets("Extraction")
   ' i sera égal à 2000, 1999,...,2
    For i = 2000 To 2 Step -1
      'On controle que le numéro de ticket et que l'heure de remise sont identiques. Sinon on supprime
      If ((Application.CountIf(BDD, .Range("B" & i).Value) <> 0) And (Application.CountIf(Date_remise, .Range("M" & i).Value) <> 0)) Then
        'Supprime les numéro doublons dans Extraction
        .Rows(i).Delete
      End If
    Next i
  End With
 
  With ThisWorkbook.Sheets("Base de donnée")
   ' i sera égal à 20000, 19999,...,2
    For i = 20000 To 2 Step -1
      'On controle que le numéro de ticket qui existe dans Extraction, ce supprime dans Base de Donnée
      If Application.CountIf(Ext, .Range("B" & i).Value) <> 0 Then
        'Supprime les numéro doublons dans Base de Donnée
        .Rows(i).Delete
      End If
    Next i
  End With
 
  MsgBox ("Fini")
 
 
 
End Sub
Avez-vous quelque suggestion pour moi?

Merci d'avance
TintinU2