Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2011, 09h50   #1
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Par défaut Supprimer cellules contenant du texte en format date

Bonjour le forum !

Je m'adresse à vous pour bénéficier de vos conseils avisés sur le problème suivant sur lequel je bloque.

Après compilation de données, je me retrouve avec des données dont certaines lignes sont à supprimer. Je me base sur la colonne B, qui au final ne doit comporter que des dates. Le fichier est pollué par certaines lignes dont la cellule B est soit vide, soit contenant du texte, au format "dd/mm/yyyy".
Avec le code suivant :

Code :
1
2
3
4
5
6
7
Dim FormDate As Long
 
            For FormDate = LR1 To 2 Step -1
                If .Cells(FormDate, 2).NumberFormat <> "dd/mm/yyyy" Or .Cells(FormDate, 2).Value = "" Then
                    .Cells(FormDate, 2).EntireRow.Delete
                End If
            Next FormDate
mes lignes dont la cellule Bx est vide sont bien supprimées mais celles contenant du texte au format date ne le sont pas...
Avez-vous une idée de la façon dont je pourrai également supprimer ces lignes SVP ?

Merci d'avance pour votre aide !

PS : LR1 a été défini plus haut dans le code.
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 10h18   #2
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
J'ai finalement trouvé tout seul. Toutes mes cellules exceptées les vides étant au format date, j'ai opté pour :

Code :
1
2
3
4
5
6
7
Dim FormDate As Long
 
            For FormDate = LR1 To 2 Step -1
                If Not IsNumeric(Left(.Cells(FormDate, 2), 1)) Or .Cells(FormDate, 2).Value = "" Then
                    .Cells(FormDate, 2).EntireRow.Delete
                End If
            Next FormDate
qui fonctionne parfaitement.

Bonne journée !
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web