Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

déplacer ligne sous conditions

  • Initiateur de la discussion Initiateur de la discussion obyone
  • 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 !

obyone

XLDnaute Occasionnel
bonjour,

j'essai de faire une macro pour pouvoir déplacer les lignes du tableau "accueil" si dans les colonnes 1, 2 et 3 il y a "lu"
alors les lignes correspondantes sont déplacées vers la feuille "archives"
je coince y a t il quelqu'un pour un peu d'aide

cordialement
 

Pièces jointes

Re : déplacer ligne sous conditions

bonjour papou,
merci cela fonctionne peux tu m'expliquer la construction de cette macro stp?
"ligne_vide = Feuil8.Cells(Rows.Count, 1).End(xlUp).Row
If Not Feuil8.Cells(ligne_vide, 1) = "" Then ligne_vide = ligne_vide + 1
For j = 1 To 8"
je ne comprend pas trop ce que vient faire la "feuil8"
merci
 
Re : déplacer ligne sous conditions de date

bonjour,

encore une petite modification de la macro,
j'aimerais que si les 3 colonnes sont "lu" et que la date est dépassée de 30 jours alors on archive la ligne

mon probleme est que cela ne fonctionne pas que la date soit dépasse ou même qu'il y en est pas il l'archive, pourquoi?

merci
 

Pièces jointes

Re : déplacer ligne sous conditions

Bonjour obyone,

Voici comment modifier ta macro pour prendre en compte le dépassement de date:

Code:
Sub Bouton3_Clic()
With Feuil1
  For i = .Cells(3, 1).End(xlDown).Row To 4 Step -1
    If .Cells(i, 5).Value = "lu" And .Cells(i, 6).Value = "lu" And .Cells(i, 7).Value = "lu" And CDate(.Cells(i, 3) + 30) < Date Then
        ligne_vide = Feuil8.Cells(Rows.Count, 1).End(xlUp).Row
        If Not Feuil8.Cells(ligne_vide, 1) = "" Then ligne_vide = ligne_vide + 1
        For j = 1 To 8
        Feuil8.Cells(ligne_vide, j).Value = .Cells(i, j).Value
        Feuil8.Cells(ligne_vide, 9).Value = Format(Now, "dd mmmm yyyy")
        Next j
        .Cells(i, 1).EntireRow.Delete
    End If
  Next i
End With
MsgBox "terminé"
End Sub
Pour répondre à ta question précédente, Feuil8 est le nom système (CodeName) de l'onglet "Archivage". Ce nom est défini automatiquement par XL lors de la création des onglets. Je préfère utiliser ce CodeName car si on change le nom de l'onglet il n'est nul besoin de corriger le code. Et, par ailleurs, c'est plus rapide à écrire que le nom de l'onglet (je sais, je suis paresseux du clavier, c'est dans mon caractère). J'ai profité de cette occasion pour faire de même avec l'onglet "Accueil" (Feuil1).

Bonne journée.

Cordialement.
 
Re : déplacer ligne sous conditions

merci pour l'explication

j'avais aussi trouvé cela pour la comparaison de date

Sub Bouton3_Clic()
With Sheets("Accueil")
For i = .Cells(3, 1).End(xlDown).Row To 4 Step -1
If .Cells(i, 5).Value = "lu" And .Cells(i, 6).Value = "lu" And .Cells(i, 7).Value = "lu" And .Cells(i, 8).Value < DateDiff("d", 30, Date) Then
ligne_vide = Feuil8.Cells(Rows.Count, 1).End(xlUp).Row
If Not Feuil8.Cells(ligne_vide, 1) = "" Then ligne_vide = ligne_vide + 1
For j = 1 To 8
Sheets("Archivage").Cells(ligne_vide, j).Value = Sheets("Accueil").Cells(i, j).Value
Sheets("Archivage").Cells(ligne_vide, 9).Value = Format(Now, "dd mmmm yyyy")
Next j
Sheets("Accueil").Cells(i, 1).EntireRow.Delete
MsgBox "terminé"
End If
Next i
End With
End Sub


autre petite question j'aimerais qu'elle s’exécute au démarrage sans clic sur le bouton, comment puis je faire

stp
merci
 
Re : déplacer ligne sous conditions

RE:

Pour exécuter la macro au démarrage:



- Double-clic sur "ThisWorkbook"

- Clic sur "Workbook" dans la liste déroulante de gauche

- "Open" apparaît par défaut dans la liste déroulante de droite

- Coller le code dans "Private Sub Workbook_Open()"

A +

Cordialement.
 
- 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

Discussions similaires

Réponses
23
Affichages
448
Réponses
7
Affichages
593
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
340
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…