Couper coller une ligne d'une feuille dans une autre feuille VBA
Résolu
sikasika
Messages postés
74
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
si quelqu'un peut m'aider :D
J'aimerai faire une macro qui coupe une ligne dès que la cellule est en rouge : par exemple si la cellule P16 est en rouge alors toute la ligne 16 soit coupée et collée vers la feuille 3
j'ai essayé ce code :
Sub ligne()
Sheets("Feuil1").Select
LigneFeuille3 = 2
NbLignes = 20000
For i = 1 To NbLignes
If Cells(i, 16).Interior.ColorIndex = 3 Then
Cells(i, 16).EntireRow.Cut
Sheets("Feuil3").Select
Cells(LigneFeuille3, 1).EntireRow.Select
ActiveSheet.Paste
Sheets("Feuil1").Select
LigneFeuille3 = LigneFeuille3 + 1
End If
Next i
End Sub
mais ça n'a pas marché il me donne un message d'erreur: erreur d'exécution '1004': erreur définié par l'application ou par l'objet
voilà tout , :D
si quelqu'un peut m'aider :D
J'aimerai faire une macro qui coupe une ligne dès que la cellule est en rouge : par exemple si la cellule P16 est en rouge alors toute la ligne 16 soit coupée et collée vers la feuille 3
j'ai essayé ce code :
Sub ligne()
Sheets("Feuil1").Select
LigneFeuille3 = 2
NbLignes = 20000
For i = 1 To NbLignes
If Cells(i, 16).Interior.ColorIndex = 3 Then
Cells(i, 16).EntireRow.Cut
Sheets("Feuil3").Select
Cells(LigneFeuille3, 1).EntireRow.Select
ActiveSheet.Paste
Sheets("Feuil1").Select
LigneFeuille3 = LigneFeuille3 + 1
End If
Next i
End Sub
mais ça n'a pas marché il me donne un message d'erreur: erreur d'exécution '1004': erreur définié par l'application ou par l'objet
voilà tout , :D
3 réponses
-
Bonjour,
Sub ligne() Sheets("Feuil1").Select LigneFeuille3 = 2 NbLignes = 20000 For i = NbLignes To 1 Step -1 If Cells(i, 16).Interior.ColorIndex = 3 Then Rows(i).Copy Sheets("Feuil3").Rows(LigneFeuille3) LigneFeuille3 = LigneFeuille3 + 1 Rows(i).Delete Shift:=xlUp End If Next i End SubDe plus, lorsque tu supprimes des lignes tu dois faire ta boucle en partant du bas sinon la ligne suivant celle supprimée n'est pas vue (ou alors faire i=i-1)
Et si tes cellule rouges en P contiennent une valeur, rechercher la ligne de la dernière valeur de la colonne pour limiter ta boucle :
derlig=cells(rows.count,"P").end(xlup).row
For i = derlig To 1 Step -1
Si P n'a pas toujours une valeur tu peux faire cette recherche sur la colonne qui contient des valeurs jusqu'en bas (A par exemple).
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait. -
merci bcoup ERIC
ça marche très bien sauf qu'il y a un petit souci :D
en fait cette macro va s'exécuter à chaque fois que je Click sur un bouton ( je connais djà le code pour ça)
mais en fait quand je rééxecute la macro bein ça m'écrase les ligne qui ont djà étaient coupés et collés -
Bonjour,
Cette formule m'interresse mais j'ai une petite modification a apporté comment faire si je veux que lq ligne choisie soit la derniere ligne où il y a quelque choise d'ecrit?
Merci