VBA couper/coller en respectant un paramètre

Bonjour,

Je suis débutante en VBA depuis quelques mois et je suis bloquée sur une macro depuis plusieurs semaines.

Je cherche une macro qui permet de couper (dans Feuil2) et de coller (dans Feuil1) si le statut correspond à "MISE EN ATTENTE".

Il faudrait donc que chaque ligne avec le statut "MISE EN ATTENTE" soit coupée dans Feuil2 et coller dans Feuil1 (à la suite de Date comptable, en dessous).

J'espère que mes explications sont claires.

En vous remerciant par avance pour l'aide que vous pourriez m'apporter.

je vous souhaite une bonne journée

Bonjour Laurie, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim PL As Range 'déclare la variable PL (PLage)
Dim PLU As Range 'déclare la variable PLU (OLage Utile)
Dim PLV As Range 'déclare la variable PLV (PLage Visible)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OS = Worksheets("Feuil2") 'définit l'onglet source OS
Set OD = Worksheets("Feuil1") 'définit l'onglet destination OD
Set PL = OS.Range("A1").CurrentRegion 'définit la plage PL
Set PLU = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count) 'définit la plage utile PLU (sans la première ligne)
PL.AutoFilter Field:=4, Criteria1:="MISE EN ATTENTE" 'fitre la plage PL par rapport à la colonne 4 avec "MISE EN ATTENTE" comme critère
Set PLV = PLU.SpecialCells(xlCellTypeVisible) 'définit la plage visible PLV
Set DEST = IIf(OD.Range("A12").Value = "", OD.Range("A12"), OD.Range("A49").End(xlUp).Offset(1, 0)) 'définit la cellule de destination DEST
PLV.Copy DEST 'copie la plage PLV dans DEST
PLV.EntireRow.Delete 'supprime la plage PLV
PL.AutoFilter 'supprime le filtre automatique
End Sub

Je vous remercie ThauThème la macro fonctionne !

Je vous souhaite une excellente journée.

Rechercher des sujets similaires à "vba couper coller respectant parametre"