Filtrage et sup ligne selon valeur num d'une colonne

Bonjour,

débutant sur l'utilisation du VBA, je 'm'autoforme' en même tps que je doit faire certaines choses.

Mais là je bute sur l'utilisation de certaine commande du fait de mon manque de connaissance.

J'ai un tableau ou j'aimerai supprimer les lignes qui correspondent à une valeur numérique simple présent dans une colonne.

Je détail:

mon tableau à plusieurs ligne et colonne.

Dans la colonne 'U' les valeurs valeurs entre un nombre 'simple' (ici c'est de la forme 123456789) avec des autres valeurs au format moins courant genre 123dg-dge4-sg4534-egd.

J'aimerai faire ressortir que les lignes qui corresponde au format moins courant.

je sais que je doit faire une commande qui va traiter cela de bas en haut. Mais après....

Merci de votre lecture et de vos éventuelle réponse.

Sans fichier, je peux t'offrir une version "generique" de code dans cet esprit, je te laisse l'adapter

Sub suppr()
    Lignemax = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row 'compte les ligne du tableau
    For i = Lignemax To 1 Step -1 'boucle du bas vers le haut
        If Cell(i, "U") = 2 Then 'condition...ici 2, a adapter en fonction de la valeur souhaité
            Cell(i, "X").Delete 'Suppression de la cellule en colonne X, a adapter aussi
        End If
    Next i
End Sub

Bonjour, si la moins courant est de type lettre+chiffre alors que le plus courant n'est que des chiffres, vous pouvez tester la cellule en interrogeant si elle est composé exclusivement de chiffre avec la fonction isnumeric() . Sinon ci les cas de figure sont différent alors il va falloir nous/m' aider car les explications sont un peu trop légères

Merci pour cette réponse trés rapide ma foi!!!

Je vais essayer dans la journée, et vous tiens au courant.

Par contre la valeur de cette colonne U varie: 103154676 puis 187463131, etc..... C'est au même format, mais pas le même nombre.

Comment faire comprendre ça à la macro?

En tout cas merci pour cette réponse cela va bien m'aider!!!

Cdt

un exemple en pièce jointe

15classeur1.xlsm (15.40 Ko)

Bonjour,

j'ai donc essayer la premiere macro, mais il me marque un message d'erreur de compilation : Sub ou fonction non définie avec cell qui apparait en surbrillance.

quand a la deuxieme proposition j'ai modifier 'If Not IsNumeric(c) Then c.Interior.ColorIndex = 3 par If Not IsNumeric(c) Then c.EntireRow.Delete.

Mais il supprime tout!!!

ci joint le fichier.

Merci à vous du coup de main.

Normal car la démo prenez comme référence la colonne A.

Celle-ci est adapté à votre fichier.

Sub demo()
Dim i%, lr&
lr = Feuil1.Cells(Rows.Count, 21).End(xlUp).Row
For i = lr To 2 Step -1
If Not IsNumeric(Feuil1.Cells(i, 21)) Then Rows(i).Delete shift:=xlUp
Next
End Sub

Peut-être qu'il faudra convenir de ce qu'il faut faire des cellules vides...

Sub ou fonction non définie avec cell qui apparait en surbrillance.

Oups

Quelques fautes de frappe...

11ritestmacro-1.xlsm (86.70 Ko)

Bonjour,

je continue ma formation avec vos propositions et j'essai de comprendre pk telle ou telle formule.

Mais j'ai lancé les deux en fesant des modifs ( juste ou non?) et rien ne passe!!!

...je vais continuer à modifier et vous tiens au courant.

Encors merci du tps passé et dessus!!!!

Séb as tien a écrit :

Bonjour,

Mais j'ai lancé les deux en fesant des modifs ( juste ou non?) et rien ne passe!!!

La réponse est dans la question !

Bonjour,

voici donc la macro qui me permet de réaliser mon filtre que je fesait étape par étape a la main!!!

Sub filtredesRis()

Lignemax = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row 'compte les ligne du tableau

For i = Lignemax To 1 Step -1

If Cells(i, "U") = estNUM Then 'condition pour effacer valeur vide

Rows(i).Delete 'Suppression de la ligne i,

End If

If IsNumeric(Cells(i, "U")) = True Then 'condition pour enlever oi

Rows(i).Delete 'Suppression de la ligne i,

End If

Next i

Meme si j'ai du mal à comprendre le principe de la ligne pour compter le nombre de lignes, et que je suis tomber par hasard sur la fonction pour enlever les valeurs vide, un grand merci à vous pour les aiguillages.

Me reste mnt à trier par ordre alphabétique la colonne v et mettre les lignes en fonction de cette ordre.

Encors merci à vous!!!

A bientot je pense pour la suite

ci joint le fichier

3ritestmacro-1.xlsm (90.29 Ko)
Lignemax = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

Il faut lire:

Lignemax egal feuille(1).cellule(compteur de ligne(du a count), sur colonne A).commande Excel(Ctrl+fin+bas puis fin+haut=correspond a la derniere cellule pleine en partant du bas sur la colonne A).exprimé en ligne.

un peu bizarre, je sais

Me reste mnt à trier par ordre alphabétique la colonne v et mettre les lignes en fonction de cette ordre.

Pour trouver les commandes VBA utilise l'enregistreur de macro et regarde le code produit.

Rechercher des sujets similaires à "filtrage sup ligne valeur num colonne"