IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro supprimant des dates [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut Macro supprimant des dates
    Bonjour,

    j'ai un petit soucis.

    j'ai un gros fichier excel : 8136 lignes

    je souhaiterais garder que les lignes ou la date correspond à 2012. Donc supprimer les lignes entières ou il y a 2011 et 2010.

    J'ai 29 lignes ayant 2011 et 2010. Je dois donc avoir après suppression 8107 lignes. (edit: 8108 en fait)

    quand il y a un vide à la place de la date, il faut laisser la ligne intacte.

    j'ai tenté une macro mais elle me supprime plus de chose que prévue je tombe à 6327 lignes.

    voici ma macro qui ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Application.ScreenUpdating = False
    For e = Range("C65536").End(xlUp).Row To 2 Step -1
      If (Range("C" & e) < CDate("01/01/2012")) Then
         Rows(e).Delete
      End If
    Next e
    Application.ScreenUpdating = True
    End Sub


    Je suis perdue, je sollicite votre aide.

    merci d'avance à qui voudra bien m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 120
    Par défaut
    Salut,

    Question bête : pourquoi ne pas utiliser le filtre déjà présent dans ton fichier ?

    Tu peux ainsi filtrer les lignes que tu souhaites conserver ou au contraire celles que tu souhaites supprimer...
    Tu peux aussi enregistrer une macro pendant que tu procèdes au filtrage de tes lignes et moyennant de petites adaptations automatiser l'opération.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut
    Bonjour,

    en fait je voudrais ne pas utiliser ce filtre, car j'ai plusieurs dizaine de fichier de ce genre là, donc j'aimerais automatiser au maximum

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim e As Integer
    Application.ScreenUpdating = False
    For e = Range("C65536").End(xlUp).Row To 2 Step -1
        If Year(Range("C" & e)) < 2012 And Range("C" & e) <> "" Then Rows(e).Delete
    Next e
    Application.ScreenUpdating = True
    End Sub

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut
    Bonjour,

    merci de votre réponse

    Je viens de tester la macro et cela me supprime trop de ligne. Je me retrouve à 8072. C'est vraiment étrange

    Je vois pas d'ou vient le problème.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Essaie avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub test_Bis()
    Application.ScreenUpdating = False
    For e = 2 To Range("c65536").End(xlUp).Row
      If (Range("c" & e) < CDate("01/01/2012")) And Range("c" & e).Value <> "" Then
         Rows(e).Delete
         e = e - 1
      End If
    Next e
    Application.ScreenUpdating = True
    MsgBox "TERMINE"
    End Sub

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut
    Bonjour evx,

    merci de votre réponse. J'ai testé la votre et même soucis je suis à 8072 lignes.

    vraiment bizarre

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Je trouve le même résultat que FRING 8072 lignes.

    Et je pense que c'est vraiment le résultat

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut
    c'est bizarre car à la main j'ai compté 29 lignes ou il y a une date en 2011 et 2010

    j'ai supprimé chaque année 2011-2010 à la main et il me reste 1808 lignes au total.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Faites avec un filtre sur 2011 et 2010 et en supprimant les lignes ont arrive bien à 8 072 lignes

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Par défaut
    ah effectivement avec filtre "inférieur à 01/01/12" cela me met 64 lignes à supprimer.

    Donc tout est OK.

    Merci beaucoup !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Macro : supprimer des éléments après avoir filtré
    Par Pavelned dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/02/2015, 19h37
  2. [Macro] Gestion des dates / conseil
    Par madvic dans le forum Contribuez
    Réponses: 7
    Dernier message: 11/12/2014, 11h46
  3. [XL-2003] Supprimer des dates en fonction du jour puis effectuer un tri.
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/02/2013, 19h06
  4. [XL-2003] Macro supprimer des classeurs Excel après une exportation
    Par greenfire15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2012, 10h54
  5. Macro : filtrer des dates
    Par foxrol dans le forum Macro
    Réponses: 3
    Dernier message: 07/02/2012, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo