Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1242 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression ligne en fonction du format d'une cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppression ligne en fonction du format d'une cellule

n°2244338
cbv35
Posté le 28-11-2014 à 17:12:02  profilanswer
 

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
mood
Publicité
Posté le 28-11-2014 à 17:12:02  profilanswer
 

n°2244362
Marc L
Posté le 28-11-2014 à 19:34:39  profilanswer
 

 
           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
n°2244363
cbv35
Posté le 28-11-2014 à 19:52:55  profilanswer
 

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

n°2244383
Marc L
Posté le 28-11-2014 à 22:17:59  profilanswer
 

 
           • 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é ?
  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression ligne en fonction du format d'une cellule

 

Sujets relatifs
[resolu] retour à la ligne et ajax/CKEditorMacro VBA Powerpoint - Suppression de plusieurs slides
Compteur population mondiale en C (en fonction du temps)Insérer une ligne en dessous d'un contenu précis
Installer un formulaire en ligne sans connaissanceFonction de hachage en python
HELP please : supprimer ligne excel si cellule = 2, 3,4 ou 5[powershell] se positionner sur un ligne precise dans fichier
Ecriture et suppression dans un fichier 
Plus de sujets relatifs à : Suppression ligne en fonction du format d'une cellule


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR