XL 2016 Archives données Excel sous conditions

Hayaa

XLDnaute Nouveau
Bonjour à tous,
Dans mon fichier excel j'ai créé un suivi de panne. Dans la feuille 1, il y a toutes les pannes déclarées (qui sont réparées ou qui sont en attente de réparation) et je veux dans la feuille d'archive copier ou archiver toutes les déclarations de pannes qui sont réparées (ou il y a pas une alerte) uniquement.
Je suis débutante en Excel vba et j'ai pas trouvé ma solution sur internet. Voilà un exemple de mon fichier
je vous remercie d'avance!
 

Pièces jointes

  • Test.xlsx
    14.4 KB · Affichages: 2
Solution
Bonjour Hayaa, et bienvenu(e) sur XLD,
Un essai en PJ avec :
VB:
Sub Archive()
    Dim DL%, DLA%, L%, C%
    Application.ScreenUpdating = False
    DL = [A65500].End(xlUp).Row             ' Dernière ligne occupée
    With Sheets("Archive")
        DLA = .[A65500].End(xlUp).Row + 1   ' Première ligne vide d'archive
        For L = DL To 2 Step -1
            If Cells(L, "F") <> "" Then     ' Si date fin non vide alors on archive
                For C = 1 To 10             ' On transfert les 10 cellules
                    .Cells(DLA, C) = Cells(L, C)
                Next C
                DLA = DLA + 1               ' Prochaine ligne d'écriture archive
                Rows(L).Delete Shift:=xlUp  ' Suppression de la ligne archivée
            End If...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Hayaa, et bienvenu(e) sur XLD,
Un essai en PJ avec :
VB:
Sub Archive()
    Dim DL%, DLA%, L%, C%
    Application.ScreenUpdating = False
    DL = [A65500].End(xlUp).Row             ' Dernière ligne occupée
    With Sheets("Archive")
        DLA = .[A65500].End(xlUp).Row + 1   ' Première ligne vide d'archive
        For L = DL To 2 Step -1
            If Cells(L, "F") <> "" Then     ' Si date fin non vide alors on archive
                For C = 1 To 10             ' On transfert les 10 cellules
                    .Cells(DLA, C) = Cells(L, C)
                Next C
                DLA = DLA + 1               ' Prochaine ligne d'écriture archive
                Rows(L).Delete Shift:=xlUp  ' Suppression de la ligne archivée
            End If
        Next L
    End With
End Sub
NB : dans la feuille Archive j'ai supprimé la colonne "Matériel" qui ne correspondait à rien de la base de travail.
 

Pièces jointes

  • Test (1).xlsm
    26.6 KB · Affichages: 5

Hayaa

XLDnaute Nouveau
Bonjour sylvanu,
Je vous remercie pour votre réponse!
C'était exactement ce que je voulais mais y a un petit soucis dans le code que lorsque je veux rajouter des données dans le tableau de la feuille 1 et je clique sur archive ca recopie pas les données meme si la date fin n'est pas vide. Comment je peux résoudre ce problème?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Je viens d'essayer, je ne vois pas de problème.
Pouvez vous préciser ?
Voici ce que j'obtiens :
20230629_152207.gif


NB: Pour les nouvelles lignes il faut absolument que la colonne A soit remplie car c'est cette colonne que j'utilise pour détecter la dernière ligne à traiter.
 

Discussions similaires

Réponses
9
Affichages
811
Réponses
8
Affichages
510
Réponses
16
Affichages
1 K
Réponses
7
Affichages
581

Statistiques des forums

Discussions
314 630
Messages
2 111 381
Membres
111 118
dernier inscrit
gmc