Copier-Coller lignes complète selon condition sur une autre feuille
Bonjour à tous
Je vais essayer d'être le plus clair possible.
je souhaiterai copier une ligne complète (de la feuille tableau de pilotage) et la coller dans une autre feuille (intervention terminé) en automatique selon certaine condition : que la valeur dans état soit a 100% et que la date de clôture soit renseigné.
et lorsque l'on colle dans la nouvelle feuille le top serais qu'il colle cette ligne en haut du tableau a chaque fois (pour éviter de descendre jusqu'en bas de la feuille a chaque fois) Mais sa c'est un plus donc pas trop grave si pas réalisable.
Je vous remercie d'avance.
Bonjour franckyworm,
Je te propose un code vba à tester :
Sub TransfertLignes()
Dim wsSource As Worksheet
Dim wsDestination As Worksheet
Dim rng As Range
Dim i As Long
Set wsSource = ThisWorkbook.Sheets("Tableau de Pilotage")
Set wsDestination = ThisWorkbook.Sheets("Intervention terminé")
' Compter le nombre de lignes dans le tableau de la feuille source
LastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
For i = LastRow To 1 Step -1 ' Boucle en arrière pour éviter les problèmes lors de la suppression de lignes
' Vérifie si l'état est à 100% et la date de clôture est renseignée
If wsSource.Cells(i, "G").Value = "100%" And wsSource.Cells(i, "H").Value <> "" Then
' Si vrai, alors copier la ligne vers la feuille destination
wsSource.Rows(i).EntireRow.Copy Destination:=wsDestination.Cells(2, 1)
' Déplacer toutes les lignes existantes vers le bas
wsDestination.Range("A3:H" & wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row).Cut wsDestination.Range("A4")
' Supprimer la ligne de la feuille source
wsSource.Rows(i).EntireRow.Delete
End If
Next i
End SubBien sur il faut que tu ajustes le nom des feuilles et les références de cellules en fonction de ce que tu as.