Supprimer les cellules contenant des dates

uly2562 Messages postés 86 Statut Membre -  
Thorak83 Messages postés 1140 Statut Membre -
e
Bonjours a tous,
alors voila:
Je cherche de l'aide en programmation VBA, a propos d'un code qui me permettrai de supprimer toute les cellules contenant uniquement des dates.
J'ai donc fais ce code, mais il me supprime le texte, ainsi que des nombre. En fait il me supprime tout se qu'il y a dans la plage. Je vous laisse le code, et merci de me répondre assez rapidement, car c'est ultra urgent. :D

Sub efface_date()
For Each cel In Range("A1:E21")
With cel
Selection.NumberFormat = "mm-dd-yyyy"
.ClearContents
.Delete Shift:=xlToLeft
End With
Next cel
End Sub

--
Le Husky un chien de traineaux, le chihuahua un chien de trainée

2 réponses

  1. Thorak83 Messages postés 1140 Statut Membre 156
     
    Bonjour,

    Essayez ceci
    Sub efface_date()
      Dim Cellule As Range
      For Each Cellule In Range("A1:E21")
        If IsDate(Cellule) Then
          Cellule.ClearContents
        End If
      Next
    End Sub

    Cordialement
    1
  2. uly2562 Messages postés 86 Statut Membre 1
     
    Ouai, c'est exactement ce que je voulais. Merciiiii :D
    Juste encore un petit détail, sa serai pour decaler les cellules une fois fini.
    Mais quand j'essaye de mettre ".Delete Shift:=xlToLeft " , il me met:
    "Erreur de compilation, Sub ou fonction non définie"
    0
    1. uly2562 Messages postés 86 Statut Membre 1
       
      Décalage vers la gauche ( précision)
      0
    2. Thorak83 Messages postés 1140 Statut Membre 156
       
      vous voulez décaler quelle cellule exactement, celle qui se trouve à droite de la date ?
      0
    3. uly2562 Messages postés 86 Statut Membre 1
       
      exact. celle qui se trouve juste a coté, a droite
      0
    4. uly2562 Messages postés 86 Statut Membre 1
       
      vers la gauche
      0
    5. Thorak83 Messages postés 1140 Statut Membre 156
       
      et voila
      Sub efface_date()
        Dim Cellule As Range
        For Each Cellule In Range("A1:E5")
          If IsDate(Cellule) Then
            Cellule.ClearContents
            Cellule.Delete Shift:=xlToLeft
          End If
        Next
      End Sub
      0