Suppression ligne en fonction du format d'une cellule

Suppression ligne en fonction du format d'une cellule - VB/VBA/VBS - Programmation

Marsh Posté le 28-11-2014 à 17:12:02    

Bonjour,
 
Je ne connais pas grand choses au VBA, et j'aurais besoin de votre aide.
Je souhaiterai créer une macro qui me permettrait de faire de la Mise en forme dans un fichier Excel
de 40 colonnes, et de 2000 à 50000 lignes
 
Objectif: si cellule dans colonne A n'est pas au format date : jj/mm/aaaa, alors suppression de la ligne
 
Je n'arrive pas à mettre le conditionnel sur le format.
 
J'ai commencé à écrire la macro ci dessous, mais ce n'est pas concluant

Code :
  1. Sub MEF()
  2. For i = [E65536].End(xlUp).Row To 2 Step -1
  3. 'Row To 2 Step -1 conserve ligne d'entête
  4. For j = 1 To 1
  5. If Cells(i, j) <>"d/m/yyyy" Then
  6. Cells(i, j).Select
  7. Else
  8. Rows(i).Delete
  9. End If
  10. Next j
  11. Next i
  12. End Sub


 
 :whistle:  j'aurais bien besoin de votre aide


Message édité par cbv35 le 28-11-2014 à 19:50:34
Reply

Marsh Posté le 28-11-2014 à 17:12:02   

Reply

Marsh Posté le 28-11-2014 à 19:34:39    

 
           Bonjour,
 
           Est-ce un bloc de lignes ou peut-il y avoir des lignes vides ?
 
           Et ne pas confondre valeur d'une cellule - comme dans la ligne n°5 - et format d'une cellule !
           Rien qu'en utilisant le Générateur de macros et en modifiant le format d'une cellule …
 
           Un bon code n'a pas besoin de Select ! …


Message édité par Marc L le 30-11-2014 à 19:07:11
Reply

Marsh Posté le 28-11-2014 à 19:52:55    

Bonjour,
 
Il y a à la fois des lignes vides et des lignes commençant par du texte.
 

Reply

Marsh Posté le 28-11-2014 à 22:17:59    

 
           • Ligne vide = aucune saisie dans les 40 colonnes, d'accord ?
              (Si la cellule en A est vide mais il y a des saisies en C & D par exemple, la ligne n'est donc pas vide …)
 
           • Pourquoi est-ce la colonne E la référence dans la ligne n°2 du code alors que les dates sont dans la colonne A ?!
 
           • Traduction de la ligne n°5 : si la saisie de la cellule (i, j) est différente de "d/m/yyyy" …
              Rien à voir donc avec un format de cellule !
 
           • A quoi peut bien servir la ligne n°6 ? A part bien sûr de ralentir la procédure ! …
 
           • Ligne 8 : donc la ligne est supprimée si la valeur de la cellule est "d/m/yyyy" …
 
              Manque évident de logique …
 
              Même avec un code cohérent au besoin, faut-il encore que toutes les cellules de la colonne A soient au même format Date
              car une cellule au format texte contenant une saisie jj/mm/yyyy n'est pas une date …
 
              Donc est-il bien question de format date ou de saisies pouvant représenter des dates ?
 
           • En activant le Générateur de macros puis en créant le même format Date, quel est le code ainsi généré ?
  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed