Effacer les cellules Numériqes dans une colonne en VBA

Amilo

XLDnaute Accro
Bonjour le forum,

J'ai dans le fichier ci-joint une colonne présentant des cellules vides, des cellules alphanumériques et des cellules nombres ou numériques (voir "feuil2"),

J'aimerais en VBA effacer (sans supprimer les lignes) de ma colonne A "feuil2", toutes les cellules contenant des nombres uniquement à l'aide d'un bouton de ma "feuil1"

Merci d'avance

Cordialement
 

Pièces jointes

  • Supp_Nombres.xlsm
    13 KB · Affichages: 59
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Effacer les cellules au format nombre dans une colonne en VBA

Bonjour.
Le titre est en contradiction avec le corps de la demande.
Selon celui-ci, une seule instruction est nécessaire:
VB:
Feuil2.Columns("A:A").SpecialCells(xlCellTypeConstants,  1).ClearContents
Cordialement.
 

Dull

XLDnaute Barbatruc
Re : Effacer les cellules au format nombre dans une colonne en VBA

Salut Amilo, le Forum

A tester

Code:
Sub Supprimer_Nombres()
Dim i As Long, DerLig As Long
DerLig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
    For i = DerLig To 4 Step -1
        If IsNumeric(Feuil2.Cells(i, 1)) And Feuil2.Cells(i, 1) <> "" Then Feuil2.Cells(i, 1).ClearContents
    Next i
Application.ScreenUpdating = True
End Sub

EDITION: Salut Bernard:)...suis dégouté:p

Bonne Journée
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Effacer les cellules au format nombre dans une colonne en VBA

Bonjour

essayez ceci

Code:
Sub efface_nombre()
Dim c As Range
Sheets(2).Select
    Range("a4:a20").Select
    For Each c In Selection
        If IsNumeric(c.Value) Then
            c.ClearContents
        End If
    Next c
[a1].Select
End Sub

:rolleyes:
 

Amilo

XLDnaute Accro
Re : Effacer les cellules au format nombre dans une colonne en VBA

Bonjour Dranreb, Dull, gilbert_RGI,

Merci beaucoup pour vos réponses,

J'ai testé vos 3 codes et c'est excactement le résultat que je souhaitais obtenir pour les 3 codes,

Le code à Dranreb est particulièrement court et intéréssant,

Sinon, que signifie le 1). en début de ClearContents ?

C'est la 1ère fois que je rencontre ce genre de mot clé....!!

Feuil2.Columns("A:A").SpecialCells(xlCellTypeConstants, 1).ClearContents

@Dranreb, je modifierais bien le titre ou le corps de ma demande mais je ne vois pas trop la contradiction évoquée dans votre message !!!

Le titre est en contradiction avec le corps de la demande.

Merci à vous,

Cordialemenr
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Effacer les cellules au format nombre dans une colonne en VBA

1, c'est le sous type de valeurs constantes qu'on veut extraire de la plage par SpecialCells. Ça n'a rien à voir avec le ClearContents.
je modifierais bien le titre ou le corps de ma demande mais je ne vois pas trop la contradiction évoquée dans votre message !!!
Ce titre me donnait à penser que vous vouliez effacer les cellules équipées d'un format de nombre, quel que soient leurs contenus. Or c'est bien au contraire les cellule au contenus numérique, quels que soient leurs formats, que vous vouliez effacer.

Désolé d'avoir écœuré Dull.

Cordialement.
 
Dernière édition:

Amilo

XLDnaute Accro
Re : Effacer les cellules au format nombre dans une colonne en VBA

Re bonjour,

J'ai juste un ptit souci avec le code à Dranreb,

lorsqu'il n'ya plus de cellules "numériques" à supprimer le code me renvoie un message d'erreur comme quoi il n'y a pas de "cellules correspondantes"....!!!

oups nos messages se sont croisés Dranreb et merci pour cette explication

Cordialement
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Effacer les cellules au format nombre dans une colonne en VBA

Oui, ajoutez simplement devant: On Error Resume Next
et derrière: On Error Goto 0
Inutile de faire plus: aucune autre conséquence n'étant requise si l'instruction n'en a pas d'autre que de provoquer une erreur.
Cordialement
 

Amilo

XLDnaute Accro
Re : Effacer les cellules au format nombre dans une colonne en VBA

Merci beaucoup Dranreb pour le code modifié,

Je comprends mieux maintenant mon erreur dans le titre,
c'est vrai que "numérique" serait plus explicite que "format nombre"

Je vais essayer de corriger ça en titre

Bon WE à tous

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Effacer les cellules Numériqes dans une colonne en VBA

Bonjour à tous

Quand il fait pas beau, et que l'ennui guette, on peut se laisser aller à omettre ce "crime" de lèse-vba
Code:
Sub a()
On Error Resume Next: Feuil2.[A:A].SpecialCells(2, 1) = Empty
End Sub

C'est tout pareil que Dranreb, mais écrit d'une façon que j'aime bien, même si déconseillée par les puristes. ;)
 

Dranreb

XLDnaute Barbatruc
Re : Effacer les cellules Numériqes dans une colonne en VBA

J'aime bien aussi, et l'utilise volontiers bien que me considérant puriste à bien des égards.
Ça à l'avantage de quasiment désigner, visuellement, l'instruction menaçant de provoquer l'erreur.
Cordialement.
 

Dull

XLDnaute Barbatruc
Re : Effacer les cellules Numériqes dans une colonne en VBA

Salut le Fil:)
JM:),

Bonjour à tous

Quand il fait pas beau, et que l'ennui guette, on peut se laisser aller à omettre ce "crime" de lèse-vba
Code:
Sub a()
On Error Resume Next: Feuil2.[A:A].SpecialCells(2, 1) = Empty
End Sub

C'est tout pareil que Dranreb, mais écrit d'une façon que j'aime bien, même si déconseillée par les puristes. ;)


Juste pour saluer un des maitres d'XLD :) ...Comme le bon vin... Plus tu vieillis...meilleur tu est;)

...
Désolé d'avoir écœuré Dull...

Ne soit pas désolé Bernard :) c'est comme cela que je me perfectionne :D

Bonne journée à toutes et à tous
 

Staple1600

XLDnaute Barbatruc
Re : Effacer les cellules Numériqes dans une colonne en VBA

Salut Dull, Dranreb

Puisque j'ai évoqué "la droiture et la pureté du code" et comme tromper l'ennui (et surtout éviter d'aller voir Kirikou au milieu de garnements s'empiffrant de popcorn tout plein d'ogm pas vraiment déclaré en option explicit ;) ) reste d'actualité pour ma pomme.
EDIT: à la relecture, la phrase ci-dessus me parait pas très nette... si en plus de m'ennuyer, je tombe dans l’abscons... vivement le 21/12... que tout s'arrête :D [/edit]

Question:
Est-ce que remplir des cellules numériques avec du vide équivaut à effacer le contenu des cellules numériques en terme d'efficacité/rapidité ?
Et comment le savoir? avec un timer ?

PS: C'est une question pour ceux qui comme moi doivent utiliser leur temps libre d'une façon non productive ;)
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
339

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly