XL 2019 effacer le contenu de cellules <>"texte"

FACITFR

XLDnaute Junior
Bonjour à tous,

Je cale sur un code VBA pouvant effacer le contenu de deux colonnes excepté celles qui contiennent
le mot "EGUILLES".
Pouvez-vous m'aider ?
Merci
 

Pièces jointes

  • 17062019.xlsm
    36 KB · Affichages: 6

Staple1600

XLDnaute Barbatruc
Bonjour le fil, FACITFR

Si j'ai bien compris
(à tester sur une copie du classeur, pas sur l'original)
VB:
Sub Test_OK()
Dim f As Range
Application.ScreenUpdating = False
ActiveSheet.Range("$A$4:$F$24").AutoFilter Field:=4, Criteria1:="<>EGUILLES", Operator:=xlAnd
Set f = Range("_FilterDataBase")
f.Offset(1, 0).Resize(f.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
ActiveSheet.ShowAllData
ActiveSheet.AutoFilterMode = False
End Sub
PS: La macro supprime les lignes ne contenant pas EGUILLES

EDITION: Oups pas rafraîchi à temps
Bonjour Laurent78
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

FACITFR
Merci d'avoir superbement ignoré ma participation dans ta discussion...
(cf le message#3)
Cela fait toujours plaisir de proposer du code VBA en vain ;)

(J'ai pourtant pris ma douche ce matin et brossé les dents, ce n'est donc pas un manque d'hygiène qui motive cette ostracisme dominical ;))
 

Staple1600

XLDnaute Barbatruc
Re

Ouf, j'ai cru être un moment être invisible.

Du coup, soulagé d'à nouveau exister, je propose cette version modifiée au lieu de supprimer des lignes, efface le contenu des cellules
VB:
Sub Test_OK2()
Dim f As Range
Application.ScreenUpdating = False
ActiveSheet.Range("$A$4:$F$24").AutoFilter Field:=4, Criteria1:="<>EGUILLES", Operator:=xlAnd
Set f = Range("_FilterDataBase")
f.Columns(4).Offset(1, 0).Resize(f.Rows.Count - 1).SpecialCells(12) = Empty
ActiveSheet.ShowAllData
ActiveSheet.AutoFilterMode = False
End Sub
NB: Dans ton premier message, tu parles d'effacer le contenu de deux colonnes, or sauf erreur de ma part, que ce soit la proposition de Laurent78 ou la mienne (la dernière), on n'efface que le contenu de la colonne D, non ?

Quelle autre colonne doit voir également son contenu effacé?
La F peut-être?
 

FACITFR

XLDnaute Junior
Désolé Staple,
Je n'ai pas lu en temps voulu ta réponse de 12:25.
je me rends plus rarement sur le site et j'en est perdu les habitudes.
Je suis simplement parti déjeuner avant te répondre.
J'espère que tu voudras bien me pardonner ce manque de courtoisie.
 

Staple1600

XLDnaute Barbatruc
Re

Pas de souci.
(quand j'évoque douche et brosse à dent c'est que je suis en mode ironie amicale ;))

Donc si la deuxième colonne à effacer est bien la colonne F alors voir cette 3ième version de mon code initial
VB:
Sub Test_OK3()
Dim f As Range
Application.ScreenUpdating = False
ActiveSheet.Range("$A$4:$F$24").AutoFilter Field:=4, Criteria1:="<>EGUILLES", Operator:=xlAnd
Set f = Range("_FilterDataBase")
f.Columns(4).Offset(1, 0).Resize(f.Rows.Count - 1).SpecialCells(12) = Empty
f.Columns(6).Offset(1, 0).Resize(f.Rows.Count - 1).SpecialCells(12) = Empty
ActiveSheet.ShowAllData
ActiveSheet.AutoFilterMode = False
End Sub
 

Discussions similaires

Réponses
26
Affichages
378

Statistiques des forums

Discussions
312 198
Messages
2 086 137
Membres
103 129
dernier inscrit
Atruc81500