VBA Suppr lignes si pas date

Résolu
Bonjour tout le monde

Je suis débutante en VBA et aurai (vraiment) besoin de votre aide. Je vous explique en bref mon fichier:

J'ai un onglet Excel, qui est divisé en 2 parties. Partie 1 de "A9:D200" et partie 2 de "E9:H200". Dans la 4ième colonne de chaque partie (colonnes D et H) il y des cellules contenant des dates, d'autres contenant des mots, ... Je voudrai que la macro supprime de "A:D" si il n'y a pas de date dans la colonne D de cette ligne. Et que la macro supprime de "E:H" si il n'y pas de date dans la colonne H.

Mais attention, car il est possible que, par exemple, je n'ai pas de date dans "D20", mais bien dans "H20". Et je ne voudrai pas qu'il me supprime "E20:H20".

J'espère que quelqu'un pourra m'aider !

Déjà un grand merci,
Nathalie

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour,
    Voici un code possible.
    !!!!!!!TESTE LE SUR UNE COPIE DE TON CLASSEUR!!!!!!!!!!!!!
    !!!!!!!!! PAS SUR L'ORIGINAL !!!!!!!!!!!!!!!
    Sub SupprSiPasDate() 
    Dim Lig As Long, DrLig As Long 
    'Je suppose que la colonne A est la "plus longue" 
    'sinon changer A dans la ligne ci dessous 
    DrLig = Range("A" & Rows.Count).End(xlUp).Row 
    For Lig = DrLig To 1 Step -1 
        If IsDate(Cells(Lig, 4)) = False Then 
            Range(Cells(Lig, 1), Cells(Lig, 4)).Delete Shift:=xlUp 
        End If 
        If IsDate(Cells(Lig, 8)) = False Then 
            Range(Cells(Lig, 5), Cells(Lig, 8)).Delete Shift:=xlUp 
        End If 
    Next 
    End Sub

    Cordialement,
    Franck P
    1. Bonjour

      Merci pour votre réponse !! Mais malheureusement ca ne functionne pas ... Je l'ai testé, et qlq chose functionne, mais ca dure et ce dure et ca me bloque tout.

      J'ai une macro qui me supprime des lignes, mais il en supprime trop.

      Range("D2500:D9").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
      Range("D2500:D9").SpecialCells(xlCellTypeConstants, _ xlTextValues).EntireRow.Delete

      Merci!
      1. Modérateur
        Bonjour,
        Combien de lignes dois tu traiter? (je pensais naïvement à 200 au départ)
        Comment utilises tu le code que je t'ai donné???
    2. Pijaku! Je n'avai pas vu que c'était vous! Vous m'avez déjà aidé sur une question il y a qlq mois d'ici!! Et ca functionne toujours super bien ;)

      Pour votre macro, je l'ai tout simplement testé comme vous me l'avez donné, sur mes données.
      Je n'ai rien ajouté / supprimé.

      Pour mes données, elles varient. Je compte jusqu'à 2500 lignes. Mais il y a defois une dizaine de lignes avec données, puis 5 sans données, etc ...

      J'ai essayé de faire une macro qui supprime les lignes si elle ne sont pas au format #dd/mm/aaaa# mais ca n'a pas functionné.
      1. Modérateur
        Peut être pourrais tu me passer ton fichier? Par MP?
      2. C'est qoui MP?
      3. Modérateur
        Messagerie Privée... Va fouiller dans mon profil, en cliquant sur mon pseudo...
        Faut peut être être inscrit... Sinon dis le.
      4. et voila ;) jte fait mp ds 2 sec
      5. pffff on ne peut pas envoyer de fichier par mp ... je te l'envoie sur ton mail privé qui est affiché sur ton profil?