[Excel 2016] Archiver une ligne selon condition
ouska36
Messages postés
3
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai parcouru le forum à la recherche de solution pour copier/coller une ligne de l'onglet "Dashboard" vers l'onglet "Archives" lorsque la valeur de la colonne "AD" est égale à "COMPLETE" (Excel 2016). La macro fini par supprimer la ligne archivée de l'onglet "Dashboard".
La solution que j'ai trouvé (merci aux contributeurs) fait le boulot jusqu'au collage...la macro me colle la ligne tout en haut et écrase celle archivée auparavant...
Ce que je souhaite avoir, c'est un collage qui rentre dans le tableau "Archives" à partir de la ligne n°7 et qui n'écrase pas les lignes déjà archivées (possibilité d'archiver plusieurs lignes en même temps): Soit en ajoutant les lignes l'une en dessous de l'autre ou si ce n'est pas compliqué, insérer les nouvelles lignes archivées tout en haut du tableau et décaler les anciennes vers le bas.
Pouvez-vous m'aider SVP à corriger "ma" macro (je ne suis absolument pas un initié, j'apprends sur le tas):
Code :
Merci de votre aide.
Cordialement
J'ai parcouru le forum à la recherche de solution pour copier/coller une ligne de l'onglet "Dashboard" vers l'onglet "Archives" lorsque la valeur de la colonne "AD" est égale à "COMPLETE" (Excel 2016). La macro fini par supprimer la ligne archivée de l'onglet "Dashboard".
La solution que j'ai trouvé (merci aux contributeurs) fait le boulot jusqu'au collage...la macro me colle la ligne tout en haut et écrase celle archivée auparavant...
Ce que je souhaite avoir, c'est un collage qui rentre dans le tableau "Archives" à partir de la ligne n°7 et qui n'écrase pas les lignes déjà archivées (possibilité d'archiver plusieurs lignes en même temps): Soit en ajoutant les lignes l'une en dessous de l'autre ou si ce n'est pas compliqué, insérer les nouvelles lignes archivées tout en haut du tableau et décaler les anciennes vers le bas.
Pouvez-vous m'aider SVP à corriger "ma" macro (je ne suis absolument pas un initié, j'apprends sur le tas):
Code :
Sub Groupe13_Cliquer()
A = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row
For i = A To 2 Step -1
If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then
Worksheets("Dashboard").Rows(i).copy Worksheets("Archives").Cells(Rows.Count, 1).End(xlUp)
Worksheets("Dashboard").Rows(i).EntireRow.Delete
End If
Next
End Sub
Merci de votre aide.
Cordialement
3 réponses
-
Salut michel_m, salut ccm81,
Merci de votre aide.
On m'a proposé sur un autre forum la solution suivante qui marche très bien :
Sub Groupe13_Cliquer()
Dim DashRow As Long
Dim ArchiveRow As Long
Dim i As Long
Dim plage As Range
DashRow = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row
For i = DashRow To 7 Step -1
If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then
Set plage = Worksheets("Archives").Range("B6:B" & Cells(Rows.Count, 2).End(xlUp).Row)
ArchiveRow = plage.SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row ' Permet de vérifier le numéro de ligne cible
Worksheets("Dashboard").Rows(i).Copy
Worksheets("Archives").Cells(ArchiveRow, 1).PasteSpecial
Worksheets("Dashboard").Rows(i).EntireRow.Delete
End If
Next
End Sub
Le seul souci maintenant c'est que le collage des cellule se fait hors tableau quand le tableau est plein:
-
Bonjour
Essaies ceciSub Groupe13_Cliquer() A = Worksheets("Dashboard").Cells(Rows.Count, 2).End(xlUp).Row For i = A To 2 Step -1 If Worksheets("Dashboard").Cells(i, 30).Value = "COMPLETE" Then Worksheets("Dashboard").Rows(i).Copy Worksheets("Archives").Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) Worksheets("Dashboard").Rows(i).EntireRow.Delete End If Next End Sub
Cdlmnt -
Bonjour tt le monde,
Ça va CCM81 ? ;o)
Copier toute une ligne est inutile : quelle est la dernière colonne utilisée dans "dashboard" ?
il y a t il plusieurs "complete" à transférer à la fois ou un seul ?