Excel VBA : Boucle couper/coller

Résolu
Eaheru Messages postés 205 Statut Membre -  
Eaheru Messages postés 205 Statut Membre -
Bonjour,

Je souhaiterais écrire une macro scruter la colonne "A" depuis la ligne 2jusqu'à la ligne 1000 afin de voir si la chaine de caractère qui s'y trouve contient "Non*" ou pas.
Si elle contient une valeur commençant par "Non" je souhaiterait "couper" la ligne en question depuis l'onglet 1 et la coller sur l'onglet 2 sur la ligne 2.
Ensuite on reprend la scrutation des lignes de l'onglet 1 la ou on s'est arrêté et si on trouve une nouvelle ligne dont la cellule "A" contient "Non*", on répète la fonction "couper" puis on la colle sur l'onglet 2, juste en dessous de la première.
Et ce jusqu'à la fin des 1000 lignes

Je suis un peu sec sur ce coup. alors si l'un de vous a une solution a me proposer, je suis bien évidement preneur :)
Merci d'avance pour votre aide

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    une petite précision ?
    qu'y-a-t-il exactement dans la cellule Ax
    A+
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Dans un premier temps essaye avec ...
    Sub Transfert()
    Dim Lig As Long, LigCopie As Long, DerLig As Long
        LigCopie = 2: DerLig = Range("A65536").End(xlUp).Row
        For Lig = 1 To DerLig
            If Cells(Lig, 1) Like "Non*" Then
                Rows(Lig).Copy Sheets("Feuil2").Rows(LigCopie)
                Rows(Lig).Delete
                LigCopie = LigCopie + 1
                Lig = Lig - 1
            End If
        Next Lig
    End Sub

    A coller dans le module de la feuille ou ont supprime les lignes et adapter le nom Feuil2 au nom de la feuille où copier.
    A+
    0
  3. Eaheru Messages postés 205 Statut Membre 20
     
    Bonsoir Lermite222 :)
    Dans la colonne A, un certain nombre de cellules sont remplies avec "Lancé" ou "Non Lancé"
    Au final, Je souhaite basculer tout les non lancés sur l'onglet N°2.

    Merci pour ta proposition, je vais essayer dès demain matin.

    Bonne soirée
    0
  4. Eaheru Messages postés 205 Statut Membre 20
     
    Bonjour,

    Je viens de tester cette macro en la modifiant très légèrement car je centralise ces utilitaires sur un fichier spécifique. Voici ce que ça donne :

    Sub Transfert()
    ' ouverture du fichier des manquants
    Workbooks.Open Filename:= "D:Liste manquant.xls"

    ' ajout d'un onglet pour stockage des action non lancées
    Sheets.Add After:=Sheets(Sheets.Count)

    Dim Lig As Long, LigCopie As Long, DerLig As Long

    ' activation de la feuille 1
    Sheets("Liste manquants").Select
    LigCopie = 2: DerLig = Range("A65536").End(xlUp).Row
    For Lig = 1 To DerLig
    If Cells(Lig, 2) Like "Non*" Then
    Rows(Lig).Copy Sheets("Feuil1").Rows(LigCopie)

    ' activation de la feuille 1
    Sheets("Liste manquants").Select
    Rows(Lig).Delete
    LigCopie = LigCopie + 1
    Lig = Lig - 1
    End If
    Next Lig
    ActiveWorkbook.Save
    End Sub

    Et ca marche parfaitement !
    Encore merci, une nouvelle fois
    0