format date en VBA

D

David

Guest
Bonjour le forum,

Voila, dans une feuille de calcul, je voudrais supprimer des lignes inutiles mais j'aimerais savoir quel est le petit bout de code à mettre pour dire :

tant que la valeur de la cellule est différente d'un format date(quelconque), la ligne doit être supprimée.
J'espère avoir été clair et je vous remercie de votre aide.
 

adebrux

XLDnaute Occasionnel
Salut David,

une petite question par rapport au format des dates. Ca peutr réellement être n'importe quel format de date? Parce que j'ai bien une idée de code, mais, il y a qd même 17 format de date différent dans excel, et tous les tester ca peut être long...
 

adebrux

XLDnaute Occasionnel
oups, dsl, j'avais pas vu...
bon, je t'ai sorti une petite macro qui te teste sur les 17 types de dates... et ca marche !!! :)

Code:
Sub Macro2()
Sheets('feuil1').Activate
For i = 20 To 1 Step -1
    Cells(i, 1).Select
    If ((Selection.NumberFormat <> 'm/d/yyyy') And (Selection.NumberFormat <> '[$-F800]dddd, mmmm dd, yyyy') And (Selection.NumberFormat <> 'd/m;@') And (Selection.NumberFormat <> 'd/m/yy;@') And (Selection.NumberFormat <> 'dd/mm/yy;@') And (Selection.NumberFormat <> '[$-40C]d-mmm;@') And (Selection.NumberFormat <> '[$-40C]d-mmm-yy;@') And (Selection.NumberFormat <> '[$-40C]dd-mmm-yy;@') And (Selection.NumberFormat <> '[$-40C]mmm-yy;@') And (Selection.NumberFormat <> '[$-40C]mmmm-yy;@') And (Selection.NumberFormat <> '[$-40C]d mmmm yyyy;@') And (Selection.NumberFormat <> '[$-409]d/m/yy h:mm AM/PM;@') And (Selection.NumberFormat <> 'd/m/yy h:mm;@') And (Selection.NumberFormat <> '[$-40C]mmmmm;@') And (Selection.NumberFormat <> '[$-40C]mmmmm-yy;@') And (Selection.NumberFormat <> '[$-40C]d-mmm-yyyy;@')) Then
    Rows(i).Select
    Selection.Delete shift:=xlUp
    End If
Next i
End Sub

Si tu veux que le format que tu m'as dit, essaye ça:

Code:
Sub Macro2()
Sheets('feuil1').Activate
For i = 20 To 1 Step -1
    Cells(i, 1).Select
    If (Selection.NumberFormat <> 'dd/mm/yy') Then
    Rows(i).Select
    Selection.Delete shift:=xlUp
    End If
Next i
End Sub

si le format du code précédent marche pas, essaye celui là: m/d/yyyy c'est le format date standard de Excel

D'autre part, le code que je t'ai passé teste le format des colonne 1, des lignes de 1 à 20.

Si tu veux tester la colonne D par exemple, change cells(i,1) en cells(i, 4). De même change les valeurs de i à l'intervalle de ligne qui t'intéresse.

++
Arnaud
 

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa