Autres [ XL 2007] couper/coller ligne à une cellule de la ligne précédente si cellule contient

kama

XLDnaute Nouveau
Bonjour à tous,
Voici un code (ci-après) que j'ai trouvé sur ce forum et je vous sollicite pour une modification de ce code
VB:
Sub Test()
    Dim Lig&, DerL&
    DerL = Feuil2.Range("B" & Rows.Count).End(3).Row
    For Lig = 1 To 10000
        If Feuil1.Cells(Lig, 2) = "Loué" Then
            Feuil1.Rows(Lig).Copy Feuil2.Range("A" & DerL)
            DerL = DerL + 1
        End If
    Next
End Sub
Voilà ce code permet de coller dans la feuill2 la ligne où apparait le valeur "Loué" dans la colonne B, ce que je souhaiterai c'est de pouvoir couper/coller cette meme ligne dans la cellule BS de la ligne précédente de la meme feuille.

Merci d'avance du temps consacré.
K
 

job75

XLDnaute Barbatruc
Pour couper-coller vers la colonne BS :
VB:
Sub Test()
    Dim DerL, Lig&
    DerL = Feuil2.Cells(Rows.Count, "BS").End(3).Row
    With Feuil1.Range("A1", Feuil1.UsedRange)
        For Lig = 1 To 10000
            If .Cells(Lig, 2) = "Loué" Then
                .Rows(Lig).Cut Feuil2.Cells(DerLig, "BS")
                DerL = DerL + 1
            End If
        Next
    End With
End Sub
 
Dernière édition:

kama

XLDnaute Nouveau
merci pour ta réponse rapide job75,

ta formule permet effectivement de coller la ligne dans la colonne BS dans une autre feuille, mon but est de coupé/collé la ligne où ce trouve la cellule avec la valeur "loué" dans la colonne BS de la ligne juste avant .
 

job75

XLDnaute Barbatruc
"Loué" étant en colonne B de Feuil1 il faut donc coller la ligne non pas en BS mais en BR de Feuil2.

Vous devez être capable de modifier mon code en conséquence.
 

kama

XLDnaute Nouveau
j'ai du mal me faire comprendre désolé :rolleyes: , je ne veux pas coller la ligne dans une deuxième feuille.
si j'ai en cellule B2 (donc colonne B ligne 2) la valeur "Loué" je voudrais copié cette ligne 2 dans la ligne 1 en cellule BS.
Merci de votre patience.
 

job75

XLDnaute Barbatruc
Bonjour kama,

C'est plus clair en effet :
VB:
Sub Test()
    Dim col%, lig&
    With Feuil1
        col = .Columns("BR").Column
        .Columns(col).Resize(, .Columns.Count - col + 1).Clear 'RAZ
        With .Range("A1", .UsedRange)
            For lig = 2 To 10000
                If .Cells(lig, 2) = "Loué" Then
                    .Rows(lig).Cut .Cells(lig - 1, col)
                End If
            Next
        End With
    End With
End Sub
A+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas