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

Trier et déplacer des lignes barrées

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

Rouli

XLDnaute Nouveau
Bonjour,

pour gérer une facturation semestrielle, j'ai créer ce fichier avec des mises en forme conditionnelles.

Je cherche maintenant à déplacer les cellules barrées de la feuille 'en cours' dans une autre feuille 'terminé'. J'ai trouvé sur internet une fonction pour cacher les cellules si la police est barrée (qui ne fonctionne pas dans mon classeur d'ailleurs?).

Seriez-vous comment faire pour déplacer les cellules qui seraient barrées dans la feuille 'en cours' dans la feuille 'terminé'?

D'avance merci
 

Pièces jointes

Bonjour,
pour masquer les lignes :
Code:
Sub Masqueligne2()
Dim I As Long, Pl As Range
Application.ScreenUpdating = False
Set Pl = [A1].CurrentRegion
For I = Pl.Rows.Count To 2 Step -1
  If Pl(I, 5).Value = "x" Then Pl.Rows(I).Hidden = True
Next I
Application.ScreenUpdating = True
End Sub
A+
 

Merci,
ça cache bien les lignes.
En revanche cela cache toutes les lignes ou il y a une police barrée. Ce que je souhaiterai c'est qu'il cache la ligne seulement si la police de la colonne A est barrée.

Sinon, plus que les cacher, si tu sais comment les copier dans le deuxieme onglet je suis preneur.

Encore merci!
 
Bonjour à tous
Code:
Sub Masqueligne()
Dim I As Long, Pl As Range, DestLig As Long
Application.ScreenUpdating = False
With Worksheets("En cours")
    Set Pl = .[A1].CurrentRegion
    DestLig = Worksheets("Terminé").Cells(1, 1).CurrentRegion.Rows.Count + 1
    For I = Pl.Rows.Count To 2 Step -1
      If Pl(I, 1).DisplayFormat.Font.Strikethrough = True Then
        Pl.Rows(I).Cut (Worksheets("Terminé").Cells(DestLig, 1))
        Pl.Rows(I).Delete Shift:=xlUp
        DestLig = DestLig + 1
    End If
    Next I
End With
Application.ScreenUpdating = True
End Sub
Si la copie ne doit pas avoir la MFC il faudra ajouter une ligne pour la supprimer...
 

Super merci !

A partir de cela, j'ai essayé de faire une fonction "retour" au cas où :

Sub Ligne_reprise()
Dim I As Long, Pl As Range, DestLig As Long
Application.ScreenUpdating = False
With Worksheets("Terminé")
Set Pl = .[A2].CurrentRegion
DestLig = Worksheets("En cours").Cells(1, 1).CurrentRegion.Rows.Count + 1
For I = Pl.Rows.Count To 2 Step -1
If Pl(I, 1).DisplayFormat.Font.Strikethrough = False Then
Pl.Rows(I).Cut (Worksheets("Terminé").Cells(DestLig, 1))
Pl.Rows(I).Delete Shift:=xlUp
DestLig = DestLig + 1
End If
Next I
End With
Application.ScreenUpdating = True
End Sub

Elle enlève bien la ligne, seulement elle ne la colle pas dans la feuille 'En cours'. Vois tu ou je me trompe?
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…