Couper coller une ligne d'une feuille dans une autre feuille VBA

Résolu/Fermé
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 - 28 déc. 2012 à 12:00
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 30 déc. 2014 à 15:25
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


A voir également:

3 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié par eriiic le 28/12/2012 à 12:53
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 Sub 
De 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.
0
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 3
28 déc. 2012 à 15:37
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
28 déc. 2012 à 18:28
Re,

Si la colonne A est remplie complètement (ou en choisir une autre) :
LigneFeuille3=[Feuil3].cells(rows.count,"A").end(xlup).row+1

eric
0
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 3
2 janv. 2013 à 09:59
merci beaucoup Eric , ça a marché
0
Olaz_funk Messages postés 7 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 30 décembre 2014
30 déc. 2014 à 10:32
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
30 déc. 2014 à 12:57
Bonjour,

ben tu enlèves le +1 de la fin.
eric
0
Olaz_funk Messages postés 7 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 30 décembre 2014
30 déc. 2014 à 13:36
ok merci pour la réponse.
Je me suis peut etre mal fait comprendre mais c'est la condition qui change.
En fait au lieu de couper la ligne en rouge je souhaiterai couper la derniere ligne ecrite et la coller ailleur dans la meme page?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
30 déc. 2014 à 15:25
La dernière ligne utilisée de la colonne A de la feuille active est :
cells(rows.count,"A").end(xlup)

eric
0