CoC0n49
Nouveau membre
Bonjours à tous,
Je cherche à faire une macro qui viens copier coller des ligne d'une feuille à une autre selon une condition.
Je me suis beaucoup aider de ce liens :
https://forum.tomshardware.fr/threads/cr%C3%A9er-une-macro-sp%C3%A9ciale-dans-excel.529302/
Ma condition est la suivante, pour chaque ligne de la feuille, regarder la valeur dans la colonne 17, si cette valeur est <= à 0,2 alors copier la ligne vers l'autre feuille.
Le soucis, c'est que pour une raison que j'ignore, les valeurs < à 0,1 répondent "false" à la condition <= à 0,2
Voici mon code :
Pouvez-vous m'aider à comprendre ?
Je cherche à faire une macro qui viens copier coller des ligne d'une feuille à une autre selon une condition.
Je me suis beaucoup aider de ce liens :
https://forum.tomshardware.fr/threads/cr%C3%A9er-une-macro-sp%C3%A9ciale-dans-excel.529302/
Ma condition est la suivante, pour chaque ligne de la feuille, regarder la valeur dans la colonne 17, si cette valeur est <= à 0,2 alors copier la ligne vers l'autre feuille.
Le soucis, c'est que pour une raison que j'ignore, les valeurs < à 0,1 répondent "false" à la condition <= à 0,2
Voici mon code :
Code:
Sub Actualisation()
'Definir les variables
Dim V_3X As Worksheet
Dim MAY_EEE As Worksheet
Dim A As Worksheet
Dim LigneV_3X As Long
Dim LigneMAY_EEE As Long
Set V_3X = Worksheets("ER_V_FR_3X")
Set MAY_EEE = Worksheets("ER_MAY_EEE")
Set A = Worksheets("Analyse")
LigneV_3X = 2
LigneMAY_EEE = 2
LigneA = A.Range("E" & Rows.Count).End(xlUp).Row
LigneA = LigneA + 1
'Récupération des ligne à analyser
Last_Line = V_3X.Range("D" & Rows.Count).End(xlUp).Row
LigneCheck = LigneA
For Each Ligne In V_3X.Range("A2:Q" & Last_Line).Rows
If Ligne.Cells(1, 14).Value > "0" Then
If Ligne.Cells(1, 17).Value <= "0,2" Then
Ligne.Copy
A.Rows(LigneA).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
LigneA = LigneA + 1
End If
End If
Next
If LigneCheck = LigneA Then
For Each Ligne In V_3X.Range("A2:Q" & Last_Line).Rows
If Ligne.Cells(1, 14).Value > "0" Then
If Ligne.Cells(1, 16).Value <= "1" Then
Ligne.Copy
A.Rows(LigneA).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
LigneA = LigneA + 1
End If
End If
Next
End If
Last_Line = MAY_EEE.Range("D" & Rows.Count).End(xlUp).Row
LigneCheck = LigneA
For Each Ligne In MAY_EEE.Range("A2:Q" & Last_Line).Rows
If Ligne.Cells(1, 14).Value > "0" Then
If Ligne.Cells(1, 17).Value <= "0,20" Then
Ligne.Copy
A.Rows(LigneA).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
LigneA = LigneA + 1
End If
End If
Next
If LigneCheck = LigneA Then
For Each Ligne In MAY_EEE.Range("A2:Q" & Last_Line).Rows
If Ligne.Cells(1, 14).Value > "0" Then
If Ligne.Cells(1, 16).Value <= "1" Then
Ligne.Copy
A.Rows(LigneA).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
LigneA = LigneA + 1
End If
End If
Next
End If
End Sub
Pouvez-vous m'aider à comprendre ?