Suppression de lignes suivant une date

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 !

GGPS58

XLDnaute Occasionnel
Bonjour,

J'ai une feuille que je veux dupliquer, puis supprimer les lignes qui ne correspondent pas à une date donnée.
Je vous joins un fichier comme exemple.
Les suppressions ne se passent pas du tout comme je le voudrais. Les lignes qui ne correspondent pas à ma date de référence ne sont pas supprimées.
J'ai essayé diverses méthodes (if not ... = ... then ou alors if ...<> ... then ...) mais sans succés et là je suis dans une impasse.
Si l'un de vous peux m'aider ...
D'avance merci
GGPS
 

Pièces jointes

Re : Suppression de lignes suivant une date

Bonsoir GGPS58,

Déjà que j'ai des soucis lorsque j'ouvre Excel , en même temps que connecté. Si, en plus tu nous fais le truc.... débrouiller vous...

Pour te dire qu'un mDP, c'est sympa, enfin pas de trop...

A revoir. salut.
 
Re : Suppression de lignes suivant une date

Bonsoir à tous,
Je n'ai pas compris ce que tu voulais dire Jean-Pierre ... ???
Toujours est-il que je vous refait passer une version sans mot de passe.
D'avance merci de votre aide.
Ci-dessous le morceau de code qui ne fonctionne pas

Date = "10/12/2006"
Dim n As Integer
For n = 6 To Sheets("BILAN_COMPTA").Range("A65536").End(xlUp).Row
If Sheets("BILAN_COMPTA").Range("C" & n) <> Date Then
Rows(n).Delete Shift:=xlUp
End If
Next n
Sinon pour la ligne en rouge j'ai essayé :
If not Sheets("BILAN_COMPTA").Range("C" & n) = Date Then
 

Pièces jointes

Re : Suppression de lignes suivant une date

Ah bon OK c'est MDP (Mot de Passe) que je n'avais pas compris.
Sinon pour mon problème j'ai trouvé :
Cela venait du fait que je supprimait une ligne et que je ne refaisais pas le test.
Donc j'ai solutionné en controlant en sens inverse, avec la commande :

For n = Sheets("BILAN_COMPTA").Range("A65536").End(xlUp).Row To 6 Step -1
If Sheets("BILAN_COMPTA").Range("C" & n) <> CDate(Calendar1.Value) Then
Rows(n).Delete Shift:=xlUp

A bientôt
 
Re : Suppression de lignes suivant une date

Re GGPS58, jeanpierre,

Ci-dessous une façon de faire :
Code:
[SIZE=2][COLOR=NAVY]Sub[/COLOR] ARCHFACTURES_Bouton4_QuandClic()
[COLOR=NAVY]Dim[/COLOR] D [COLOR=NAVY]As Date
Dim[/COLOR] n [COLOR=NAVY]As Integer[/COLOR]
    D = "10/12/2006"
    Application.ScreenUpdating = [COLOR=NAVY]False[/COLOR]
    Sheets("ARCHFACTURES").Copy After:=Sheets(1)
    ActiveSheet.Name = "BILAN_COMPTA"
    [COLOR=NAVY]With[/COLOR] Rows(1)
        .Insert Shift:=xlDown
        .Insert Shift:=xlDown
        .Insert Shift:=xlDown
    [COLOR=NAVY]End With
    For[/COLOR] n = ActiveSheet.Range("A65536").[COLOR=NAVY]End[/COLOR](xlUp).Row [COLOR=NAVY]To[/COLOR] 6 [COLOR=NAVY]Step[/COLOR] -1
        [COLOR=NAVY]If[/COLOR] ActiveSheet.Range("C" & n) <> D [COLOR=NAVY]Then[/COLOR]
            Rows(n).Delete Shift:=xlUp
        [COLOR=NAVY]End If
    Next[/COLOR] n
    Application.ScreenUpdating = [COLOR=NAVY]True
End Sub[/COLOR][/SIZE]
Date est un mot clé réservé VBA, tu ne peux pas t'en servir comme variable.
ATTENTION : en faisant Date = "10/12/2006" tu modifies la date système Windows !
Que tous ceux qui ont essayé ton classeur pensent à rectifier leur date système s'ils ne veulent pas avoir quelques surprises...

Par ailleurs, pour supprimer des lignes dans une boucle, il convient toujours de le faire en partant du bas et en remontant vers le haut.

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

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
358
Réponses
6
Affichages
448
Réponses
6
Affichages
638
Retour