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 .
 

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+
 

Discussions similaires

Statistiques des forums

Discussions
314 656
Messages
2 111 609
Membres
111 220
dernier inscrit
Elé0n0re