XL 2019 Suppression date excel VBA

  • Initiateur de la discussion Initiateur de la discussion Lascar22
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba -

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 !

Lascar22

XLDnaute Nouveau
Bonjour,
Je viens vers vous car je n'arrive pas à supprimer des dates supérieurs à celle que je fournis, soit le programme me supprime pas les bonnes valeurs, soit il ne me supprime pas les dates avec une année supérieure

Voici mon code :
VB:
sub ok()
    Dim der_ligne As Integer
    Dim ligne As Integer
    Dim fin As Date
    
    fin = InputBox("date de fin de l'analyse ? (jj/mm/aaaa)", "Date fin") 'imaginons le 31/05/2022, le tableau contenant des dates allant jusque 2024
    ligne = 1
    der_ligne = Cells(Rows.count,7).End(xlUp).Row
    
    While ligne<der_ligne
        If (cells(ligne, 7).Value > fin) Then
            Rows(ligne).Select
            Selection.Delete Shift:=xlUp
        Else
        End If
        ligne = ligne + 1
    Wend
End Sub

Je vous remercie par avance du temps que vous prendrez pour répondre à ma question.
 
Solution
Essaie avec ce code
j'ai dû modifer ta macro initiale qui travaillait sur la colonne G

on part de la fin pour éviter les décalages d'indice
exemple
si tu fais de 1 jusqu'à 3
si la ligne 2 doit etre supprimée. alors.. la ligne 3 devient la ligne 2.. et du coup. au passage de boucle suivant, la ligne 3 qui est devenue 2 n'est pas traitée..


VB:
Sub ok()
    Dim der_ligne As Integer
    Dim ligne As Integer
    Dim fin As Date
    
    fin = InputBox("date de fin de l'analyse ? (jj/mm/aaaa)", "Date fin") 'imaginons le 31/05/2022, le tableau contenant des dates allant jusque 2024
    ligne = 1
    der_ligne = Range("C" & Rows.Count).End(xlUp).Row
    
    For i = der_ligne To ligne Step -1
        If Range("C" & i) > fin Then...
Bonjour

sans ton fichier exemple, on ne pourra rien pour toi
et en règle générale.. quand on supprime des lignes, il vaut toujours mieux parcourir la feuille en partant du bas vers le haut
dans ton cas
for i=der_ligne to ligne step -1
 
Essaie avec ce code
j'ai dû modifer ta macro initiale qui travaillait sur la colonne G

on part de la fin pour éviter les décalages d'indice
exemple
si tu fais de 1 jusqu'à 3
si la ligne 2 doit etre supprimée. alors.. la ligne 3 devient la ligne 2.. et du coup. au passage de boucle suivant, la ligne 3 qui est devenue 2 n'est pas traitée..


VB:
Sub ok()
    Dim der_ligne As Integer
    Dim ligne As Integer
    Dim fin As Date
    
    fin = InputBox("date de fin de l'analyse ? (jj/mm/aaaa)", "Date fin") 'imaginons le 31/05/2022, le tableau contenant des dates allant jusque 2024
    ligne = 1
    der_ligne = Range("C" & Rows.Count).End(xlUp).Row
    
    For i = der_ligne To ligne Step -1
        If Range("C" & i) > fin Then
            Rows(i).Delete Shift:=xlUp
        End If
    Next i
   
End Sub
 
- 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
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
4
Affichages
363
Réponses
4
Affichages
151
Retour