Bonjour!

J'ai un code qui transfert des données d'un fichier à un autre. En fait, il regarde si une cellule répond à un certain critère. Si oui, il coupe la ligne et l'envoie dans l'autre fichier.

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
40
Sub Copierlignes()
  Dim Lig     As Long
  Dim Col     As String
  Dim NbrLig  As Long
  Dim NumLig  As Long
  Dim WkFeuille As Workbook
  Dim WkDatabase As Workbook
 
 Set WkFeuille = ThisWorkbook
 Set WkDatabase = Workbooks.Open(Filename:= _
   "G:\G-All-Jl-Plt\Ingénierie\Feuilles de temps\DATABASE HEURES CONTRACTEUR 2009 Test Macros.xls" _
   , UpdateLinks:=0)
 
  WkDatabase.Sheets("Database_Sommaire").Activate ' feuille de destination
  ActiveSheet.Unprotect ("954feuillesING")
  Col = "O"                 ' colonne de la donnée non vide à tester
  NumLig = 0
  WkFeuille.Activate
  With Sheets("Database")     ' feuille source
    NbrLig = .Cells(65536, Col).End(xlUp).Row
    For Lig = 1 To NbrLig
      If .Cells(Lig, Col).Value = "1" Then
          .Cells(Lig, Col).EntireRow.Cut
          NumLig = NumLig + 1
          Cells(NumLig, 1).Select
          WkDatabase.Sheets("Database_Sommaire").Activate
          Rows(WkDatabase.Sheets("Database_Sommaire").UsedRange.Rows.Count + 1).Select
          ActiveSheet.Paste
          WkFeuille.Activate
       End If
    Next
  End With
 
Application.CutCopyMode = False
WkDatabase.Sheets("Database_Sommaire").Protect "954feuillesING", DrawingObjects:=True, Contents:=True, Scenarios:=True
WkDatabase.Close savechanges:=True
 
WkFeuille.Sheets("Database").Activate
 
End Sub
J'ai un problème qui est intermitant. Je vous explique la situation:
J'ai 10 lignes qui renvoient la valeur vrai à ma condition (il est inscrit 1 dans la colonne O)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
If .Cells(Lig, Col).Value = "1" Then
Normalement lorsque j'exécute ma macro, il transfert mes 10 lignes dans mon autre fichier. Toutefois, il y a certaines fois (et c'est là mon problème, je n'arrive pas à comprendre pourquoi) où il ne transfert que la première ligne et passe directement à "End With". Si j'exécute ma macro plusieurs fois, éventuellement elle fini par s'exécuter correctement.

Avez-vous une idée de ce qui se passe? Je suis vraiment perplexe!
Merci à l'avance!!