Déplacer une ligne sous conditions vers une autre page

Bonjour,

J'ai besoin de me faire une macro qui me permettrait de déplacer une ligne d'un tableau vers un autre tableau sur une autre feuille une fois la condition rempli.

Je sais que la demande a été posée plusieurs fois, mais je n'ai pas réussi à adapter les macros proposées.

J'ai 2 tableaux comptas, l'un "a payer" et l'autre "payé", j'aimerai qu'une fois la date de payement est renseignée sur le tableau "a payer", je puisse déplacer la ligne vers le second tableau.

J'avais réussi à trouver une macro qui fonctionnait bien mais depuis peu elle ne fonctionne plus, vu que je l'ai copié je ne la comprends pas et donc ai du mal à trouver le problème.

Sub Macro2()

    Range("I2:I999").Select
    ActiveWindow.SmallScroll ToRight:=0
    ActiveWorkbook.Worksheets("A PAYER").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("A PAYER").Sort.SortFields.Add Key:=Range("I2:I999") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("A PAYER").Sort.SortFields.Add Key:=Range("G2:G999") _
    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("A PAYER").Sort
        .SetRange Range("A2:K999")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B3").Select
End Sub

Merci de votre aide

Bonne journée

Cdt

13classeur1.xlsm (26.03 Ko)

Bonjour toutes et tous

1/:je ne comprend pas I2:I999 ?

2: pour la Macro 3 peut-être de "PAYER" au lieu de "feuille2" et with & end with

Sub Macro3()

ActiveCell.EntireRow.Select
Selection.Cut
 With Sheets("A PAYER")
ActiveSheet.Range("C:C").End(xlDown)(2).EntireRow.Select
Activatesheet.Paste

 Selection.End(xlToLeft).Select '(être sûr de se trouver dans la 1e col.)
    Rows(ActiveCell.Row).Select '(sélection de la ligne à déplacer)
    Selection.Cut '(couper la ligne)
    Selection.End(xlDown).Select '(se déplacer en fin de tableau, dernière ligne avec contenu)
    Rows(ActiveCell.Row).Offset(1, 0).Select '(descendre d'1 ligne)
    ActiveSheet.Paste '(coller)
    Selection.End(xlUp).Select '(remonter jusqu'à la 1e ligne du tableau, celle juste après celle qu'on vient de vider)
    Rows(ActiveCell.Row).Offset(-1, 0).Select '(on remonte d'1 ligne)
    Selection.Delete Shift:=xlUp '(on la détruit)
    Selection.End(xlToLeft).Select '(se trouver dans la 1e col.)
End With
End Sub

J'pense que, tu as sans doute ajouter/supprimer des colonnes

crdlt,

André

Bonjour,

Une proposition à étudier.

Lorsque l'on active la feuille PAYE, les factures payées sont copiées dans cet onglet et supprimées de l'onglet A PAYER

(doublons inutiles ?).

Cdlt.

8classeur1.xlsm (22.91 Ko)
Private Sub Worksheet_Activate()
Dim lo As ListObject, lo2 As ListObject
Dim rCell As Range, rng As Range, rng2 As Range
Dim lCol As Integer: lCol = 7

    Set lo = Me.ListObjects(1)
    With lo
        If .InsertRowRange Is Nothing Then
            Set rCell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set rCell = .InsertRowRange.Cells(1)
        End If
    End With

    Set lo2 = Worksheets("A PAYER").ListObjects(1)
    With lo2
        If .ShowAutoFilter Then .AutoFilter.ShowAllData
        .Range.AutoFilter field:=lCol, Criteria1:="<>"
        With .AutoFilter.Range
            On Error Resume Next
            Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
                      .SpecialCells(xlCellTypeVisible)
            On Error GoTo 0
        End With
    End With

    If Not rng Is Nothing Then
        Set rng2 = lo2.AutoFilter.Range
        rng2.Offset(1, 0).Resize(rng2.Rows.Count - 1). _
                SpecialCells(xlCellTypeVisible).Copy Destination:=rCell
        Application.DisplayAlerts = False
        rng2.Offset(1, 0).Resize(rng2.Rows.Count - 1).Delete
        Application.DisplayAlerts = True
    End If

    lo2.Range.AutoFilter field:=lCol

End Sub
Rechercher des sujets similaires à "deplacer ligne conditions page"