OVH Cloud OVH Cloud

[VBA] supprimer une ligne en fonction de la valeur de la colonne A

13 réponses
Avatar
XLnoob
Bonjour,

Je suis encore (et toujours?) débutant sous VBA, et je cherche la méthode
pour supprimer une ligne si la valeur inscrite dans la colonne "A" est "zaza".

D'avance, merci!

3 réponses

1 2
Avatar
anonymousA
Juste à titre d'info.Il existe aussi Exit Do qui permet de sortir la
boucle Do Loop donc évite de mettre une étiquette Fin même si ce
n'est pas préjudiciable.Ca fait moins programmeur , c'est tout, même
si tout ca reste quand même un peu pompeux compte tenu en général de
la longueur des programmes réalisés par le commun des mortels.

A+



XLnoob wrote:
Bon j'aurai du réfléchir un peu + avant de poster mon dernier message.
J'ai résolu le pb à l'aide d'un petit GoTo bien placé.

Maintenant c'est parfait!
Encore merci.


Sub éliminator()

Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then GoTo fin
c.EntireRow.Delete
Loop

fin:
Application.Calculation = xlCalculationAutomatic
End Sub


Avatar
XLnoob
problème identifié et résolu, cf. mon post précédent

le recalcul automatique a été remis par défaut à la ré-ouverture de mon "classeur", pour la simple et bonne raison que ce classeur était le seul ouvert et que j'avais en réalité quitté Excel et pas seulement fermé mon classeur!


c'était donc un abus de langage de ma part, mea culpa.
Et c'était très bien vu de ta part, encore une fois!

A+!


"anonymousA" wrote:

ne constate pas ce phénomène.
Par ailleurs, le recalcul automatique est remis par défaut à la
réouverture d'Excel , mais pas à la fermeture d'un classeur.
Une fois passé la macro, regarde du coté de Outils/Options/calcul
:quel bouton radio est coché ?

A+


Avatar
XLnoob
"Nan mais comment il se la joue, anonymousA, j'y crois pas!!"
:)
(en même temps c'est parce qu'il peut se le permettre, LUI)

je vais garder mon étiquette pour l'instant, en mettant un petit commentaire
'reste humble et BOUCLE LA , avec ta pauvre instruction GoTo", pour la bonne
raison que je maitrise pas encore parfaitement le loop!



"anonymousA" wrote:

Juste à titre d'info.Il existe aussi Exit Do qui permet de sortir la
boucle Do Loop donc évite de mettre une étiquette Fin même si ce
n'est pas préjudiciable.Ca fait moins programmeur , c'est tout, même
si tout ca reste quand même un peu pompeux compte tenu en général de
la longueur des programmes réalisés par le commun des mortels.

A+



XLnoob wrote:
Bon j'aurai du réfléchir un peu + avant de poster mon dernier message.
J'ai résolu le pb à l'aide d'un petit GoTo bien placé.

Maintenant c'est parfait!
Encore merci.


Sub éliminator()

Dim c As Range
Application.Calculation = xlCalculationManual
Do
Set c = Columns(1).Find("zaza", , xlValues, xlWhole)
If c Is Nothing Then GoTo fin
c.EntireRow.Delete
Loop

fin:
Application.Calculation = xlCalculationAutomatic
End Sub






1 2