Bonjour,
voilà ce que je veux obtenir :
j'ai la feuille 1, lorsque je mets une date dans une cellule, je veux que la macro sélectionne une partie des cellules de cette ligne (exemple de A1 à H1 et de K1 à L1) puis colle ces cellules dans la feuille 2.
Je me retourne vers vous car je suis débutant et la je patine.
Voici la macro que j'utilise mais elle me prend la ligne entière, une petite modif s'impose :
merci d'avance.
Sub test()
Dim Ws As Worksheet
Dim Wt As Worksheet
Dim i As Long
Set Ws = ThisWorkbook.Worksheets("VHL en stock")
Set Wt = ThisWorkbook.Worksheets("VHL livrés")
With Ws
For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1 ' On commence par la fin, cela permet de supprimer des lignes sans poser de problème dans la boucle.
If IsDate(Cells(i, 19)) Then 'Si la valeur de la cellule contient une date
.Rows(i).EntireRow.Copy Destination:=Wt.Cells(Wt.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1)
'On copie toute la ligne en dessous de la dernière ligne non vide de la feuille 2
.Rows(i).Delete
'Puis on supprime la ligne
End If
Next i
End With
End Sub
voilà ce que je veux obtenir :
j'ai la feuille 1, lorsque je mets une date dans une cellule, je veux que la macro sélectionne une partie des cellules de cette ligne (exemple de A1 à H1 et de K1 à L1) puis colle ces cellules dans la feuille 2.
Je me retourne vers vous car je suis débutant et la je patine.
Voici la macro que j'utilise mais elle me prend la ligne entière, une petite modif s'impose :
merci d'avance.
Sub test()
Dim Ws As Worksheet
Dim Wt As Worksheet
Dim i As Long
Set Ws = ThisWorkbook.Worksheets("VHL en stock")
Set Wt = ThisWorkbook.Worksheets("VHL livrés")
With Ws
For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1 ' On commence par la fin, cela permet de supprimer des lignes sans poser de problème dans la boucle.
If IsDate(Cells(i, 19)) Then 'Si la valeur de la cellule contient une date
.Rows(i).EntireRow.Copy Destination:=Wt.Cells(Wt.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1)
'On copie toute la ligne en dessous de la dernière ligne non vide de la feuille 2
.Rows(i).Delete
'Puis on supprime la ligne
End If
Next i
End With
End Sub