Déplacer une ligne d'une feuille Excel a une autre en fonction d'un choix

Bonjour,

Je suis bloquer sur ma programmation.

Voici le code:

Private Sub Workbook_Open()
Dim i, LastRow
LastRow = Sheets("SALARIES PRESENT").Range("A" & Rows.Count).End(xlUp).Row 'Pour trouver la dernière ligne utilisé de ma feuille
For i = 7 To LastRow 'process pour "Loop" de la première ligne sans les entêtes à la dernière ligne de mon tableau
If Sheets("SALARIES PRESENT").Cells(i, "AG").Value = "SORTI" Then 'Définie la condition
'Une fois que la condition est prise en compte, je veux qu'il copie toute la ligne de ma sheet1 "Salaries présent" à ma Sheets 2 "Salariés sorti"
Sheets("SALARIES PRESENT").Cells(i, "AG").EntireRow.Copy Destination:=Sheets("SALARIES SORTI").Range("A" & Rows.Count).End(xlUp).Offset(1) 'une fois que la dernière ligne est trouver je veux qu'il copie le reste sur la deuxième ligne etc.
Sheets("SALARIES PRESENT").Cells(i, "AG").EntireRow.Delete ‘Apres que la ligne est été coller sur Sheets 2 je veux qu'il soit effacer de Sheets 1
End If
Next i 'Puis on "Loop" pour chercher la prochaine ligne etc
End Sub

Edit modo : merci de mettre le code entre balises SVP avec le bouton </>

Donc voila mon problème mon code ne fais pas ce que je veux qu'il fasse:

- Il copy bien la ligne quand je lance mon code avec F5 mais n'efface pas donc quand je lance mon code une deuxième fois il me duplique encore les lignes.

- Il ne copy pas la ligne quand je sélectionne "SORTI" dans ma cellule de ma colonne "AG"

Je suis donc bloquer sur ce point. J'ai chercher sur les forums mais je ne trouve pas la réponse approprié a mes problèmes. Je suis qu'il doit y avoir une solution facile mais je ne vois pas. J'ai essayer plusieurs trucs. HELP please. Je vous remercie d'avance.

Bonjour Colibri31 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Merci pour votre participation

A+

Bonjour,

Désoler, j'ai fait ma présentation sur mon profil mais pas "ICI". Chose que je vais remédier maintenant

J'ai bien lu la chartre et les fonctionnalités mais première fois sur un forum et première fois que je poste… Tout ne sera pas juste la première fois

Mais je prend note pour les prochaines fois: balise <> pour mettre code, clôturer quand terminer...

Bonjour et merci

Voici le code rectifié, il faut couper la ligne et la coller dans l'autre feuille

Sub TraiteSortie()
  Dim i, LastRow
  ' Avec l'objet conteneur
  With Sheets("SALARIES PRESENT")
    'Pour trouver la dernière ligne utilisé de ma feuille
    LastRow = .Range("A" & Rows.Count).End(xlUp).Row
    'process pour boucle de la première ligne sans les entêtes à la dernière ligne de mon tableau
    For i = 7 To LastRow
      'Définie la condition
      If .Cells(i, "AG").Value = "SORTI" Then
        'Une fois que la condition est prise en compte, je veux qu'il copie toute la ligne de ma sheet1 "Salaries présent" à ma Sheets 2 "Salariés sorti"
        'une fois que la dernière ligne est trouver je veux qu'il copie le reste sur la deuxième ligne etc.
        .Cells(i, "AG").EntireRow.Cut Destination:=Sheets("SALARIES SORTI").Range("A" & Rows.Count).End(xlUp).Offset(1)
      End If
    Next i 'Puis on "Loop" pour chercher la prochaine ligne etc
  End With
End Sub

Pour traiter la sub au changement de la valeur, il faut utiliser l'évènement

Private Sub Worksheet_Change(ByVal Target As Range)
  If Left(Target.Address, 3) = "$AG" Then
    Call TraiteSortie
  End If
End Sub

A mettre dans la feuille "SALARIES PRESENT", voici le fichier exemple

Nota : penser à joindre un fichier exemple la prochaine fois

A+

Bonjour,

Merci beaucoup pour l'aide et la réponse rapide. Apparent c'était tout simple Tout marche correctement.

Rechercher des sujets similaires à "deplacer ligne feuille fonction choix"