Bonjour,
J'utilise ce code pour deplacer une ligne d'une feuille (Sheet1) à une autre (Sheet2)
Le code fonctionne mais il deplace la derniere ligne (la derniere dont il y'a un contenu) dans Sheet1 à la derniere ligne dans Sheet2 (qui est 49 par example)
Disant j'ai 5 lignes dans Sheet1 dont y'a un contenu, il va déplacer la 5eme ligne de Sheet1 à la derniere ligne de Sheet2
Moi je veux qu'il déplace les lignes dont la valeur de leurs cellules D est égale à 0 à Sheet2 par ordre normal commençant de A2 et en descendant
Merci d'avance
J'utilise ce code pour deplacer une ligne d'une feuille (Sheet1) à une autre (Sheet2)
Le code fonctionne mais il deplace la derniere ligne (la derniere dont il y'a un contenu) dans Sheet1 à la derniere ligne dans Sheet2 (qui est 49 par example)
Disant j'ai 5 lignes dans Sheet1 dont y'a un contenu, il va déplacer la 5eme ligne de Sheet1 à la derniere ligne de Sheet2
Moi je veux qu'il déplace les lignes dont la valeur de leurs cellules D est égale à 0 à Sheet2 par ordre normal commençant de A2 et en descendant
Merci d'avance
VBA Code:
Sub Deplacer()
Dim rng As Range
Dim x As Long
Dim y As Long
x = Worksheets("Sheet1").UsedRange.Rows.Count
y = Worksheets("Sheet2").UsedRange.Rows.Count
If y = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then y = 0
End If
Set rng = Worksheets("Sheet1").Range("A" & x)
On Error Resume Next
Application.ScreenUpdating = False
For x = 1 To rng.Count
If rng("D1").Offset(x, 0).Value = 0 Then
rng(x).EntireRow.Cut Destination:=Worksheets("Sheet2").Range("A" & y + 1)
y = y + 1
End If
Next
Application.ScreenUpdating = True
End Sub