VBA Suppr lignes si pas date

Résolu
Nathalie -  
nathjeuh22 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
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
0
Nathalie
 
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!
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
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é???
0
Nathalie
 
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é.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Peut être pourrais tu me passer ton fichier? Par MP?
0
Nathalie
 
C'est qoui MP?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Messagerie Privée... Va fouiller dans mon profil, en cliquant sur mon pseudo...
Faut peut être être inscrit... Sinon dis le.
0
nathjeuh22 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
et voila ;) jte fait mp ds 2 sec
0
nathjeuh22 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
pffff on ne peut pas envoyer de fichier par mp ... je te l'envoie sur ton mail privé qui est affiché sur ton profil?
0