Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

dabdg

XLDnaute Nouveau
Bonjour,

J'ai une feuille excel dans laquelle j'ai enormement de donnees, ca peut etre des chiffres ou du texte.
En fait je voudrais pouvoir effacer une cellule, quand il s'agit d'un chiffre superieur a 90.

J'ai commence a regarder du cote des macros.
J'arrive plus ou moins a le faire sur une colonne.

Voila mon code:
Code:
Sub macro1()
'
Application.ScreenUpdating = True
Sheets(1).Range("A1").Select

For x = 1 To ActiveSheet.UsedRange.Rows.Count
    If Range("A" & x).Text > "90" Then
        Range("A" & x).ClearContents
        
    End If
Next x

End Sub

Ca ne fonctionne pas sur toute la colonne a partir de la ligne 12 ca ne fonctionne plus.
Cela devrait etre dynamique car je suppose que ActiveSheet.UsedRange.Rows.Count devrait me renvoyer le nombre de ligne non vide.

Mon probleme est donc de mettre a jour cette macro pour qu'elle prenne en compte toute la feuille (et eventuellement m'expliquer le comportement etrange de ma macro actuellement).


Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

Bonjour,

avec ce code:
Code:
Sub macro1()
Dim cellule As Range
Application.ScreenUpdating = False
Sheets(1).Range("A1").Select
For Each cellule In ActiveSheet.UsedRange
    If cellule > 90 Then cellule.ClearContents
Next cellule
Application.ScreenUpdating = True
End Sub

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

Re,
Si je comprends bien on passe a la colonne B via le Application.ScreenUpdating = True avant le End Sub ?

Application.ScreenUpdating = False ou True
sert uniquement à bloquer le rafraîchissement de l'écran pendant la procédure
,
ce qui permet de gagner du temps

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

Re,


For Each cellule In ActiveSheet.UsedRange
If cellule > 90 Then cellule.ClearContents
Next cellule


c'est ce qui fait que toutes les cellule sont passées en revue pour voir si leur valeur est supérieure à 90

à+
Philippe
 

dabdg

XLDnaute Nouveau
Re : Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

Encore une petite question finalement, ca marche tres bien s'il n'y a que des chiffres dans la feuille, mais s'il y a des lettres ca me fonctionne pas, ca me dit que la class range a echoue.

Y-a-t-il un moyen de verifier le type de contenu de la cellule et de ne faire la verification que s'il s'agit d'un chiffre ?
 

NicolasKH

XLDnaute Junior
Re : Macro - Effacer le contenu d'une cellule en fonction de sa valeur.

Bonjour,

avec ce code:
Code:
Sub macro1()
Dim cellule As Range
Application.ScreenUpdating = False
Sheets(1).Range("A1").Select
For Each cellule In ActiveSheet.UsedRange
    If cellule > 90 Then cellule.ClearContents
Next cellule
Application.ScreenUpdating = True
End Sub

à+
Philippe
bonjour,
je suis novice dans le domaine du vba

j'ai un peut pret le meme probleme
explication
la colonne P et Q ce sont des montant qui change

je voudrai faire une macro qui va se derouler comme suite:

quand le montant de la colonne P change ca efface le contenu de la cellule R et T
quand le montant de la colonne Q change ca efface le contenu de la cellule S et U

et ainsi de suit pour tout le rest du tableau car mon tableau se rempli tout les jour

merci de votre aide
 

Pièces jointes

  • 2022-10-08_09-02-35.png
    2022-10-08_09-02-35.png
    11 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 206
dernier inscrit
diambote