Archivage ligne excel

  • Initiateur de la discussion Initiateur de la discussion Flaow
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Flaow

Guest
Bonjour a tous!

Je viens vers vous car j'aimerais mettre en place un fichier mais je n'ai pas toutes les compétences nécessaires. 🙂
J'ai vu que certains posts traités du même sujet que moi mais je suis incapable de reproduire les formules vba sur ma propre feuille...
Nous avons à gérer des véhicules de location, j'ai donc créer un petit fichier très simple pour les suivre, ce que j'aimerai c'est pouvoir en mettant "terminer" dans la colonne M (état) que ma ligne s’enlève et s'archive dans la feuille 2. Est ce possible?

Merci d'avance pour votre aide.

Ps: je vous joins le fichier pour que ce soit plus clair
 

Pièces jointes

Re : Archivage ligne excel

Bonjou Flaow et bienvenu(e), bonjour le forum,

En pièce jointe ton fichier modifié avec la macro événementielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

If Target.Column <> 13 Or Target.Row < 9 Then Exit Sub 'si le changement a lieu ailleurs qu'en colonne 13 (=M) ou dans les lignes 1 à 8, sort de la procédure
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sont selectionnées, sort de la procédure
If Target.Value = "TERMINE" Then 'condition : si la valeur de la cellule est "TERMINE"
    With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
        Set dest = IIf(.Range("A1") = "", .Range("A1"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)) 'définit la cellule de destination dest
    End With 'fin de la prose en compte de l'onglet "Feuil2"
    Rows(Target.Row).Copy 'copy la ligne de la cellule modifiée
    dest.PasteSpecial (xlPasteColumnWidths) 'collage spécial de la largeur des colonne dans dest
    dest.PasteSpecial (xlPasteValuesAndNumberFormats) 'collage spécial des valeur et des format numériques
    Rows(Target.Row).Delete shift:=xlShiftUp 'supprime la ligne de la cellule modifié
    Application.CutCopyMode = False 'annule le clignotement des cellules copiées
End If 'fin de la condition
End Sub
Le fichier :
 

Pièces jointes

Re : Archivage ligne excel

Bonjour Flaow,

avec ce code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M9:M" & Range("M65535").End(xlUp).Row)) Is Nothing And Target = "TERMINE" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 13)).Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65535").End(xlUp).Row + 1, 1)
Application.EnableEvents = False
Rows(Target.Row).Delete
End If
Application.EnableEvents = True
End Sub


à+
Philippe

Edit: Salut Robert
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
907
Retour