Formule VBA : Si cell = OR, supprimer contenu

Bonjour à tou.te.s,

Étant très loin d'être une professionnelle du VBA, je n'arrive pas à faire cette formule, qui pourtant devrait être simple...

Je souhaite supprimer le contenu des cellules d'une plage donnée — précisément, toutes les cellules sauf celles en ligne 1 et colonne A — qui ne commencent pas par @ ou #.

J'ai essayé plusieurs choses du style :

Sub CleanCellNoneHashAt()

For Each cel In Range("b2:ap2400")

If Not cel Like "#*" Or

If Not cel Like "@*" Then

cel.ClearContents

Next cel

End Sub

Mais rien n'y fait !

Je vous remercie de votre aide !

Bonjour,

Essaye avec Left :

Sub CleanCellNoneHashAt()
Dim cel As Range
  For Each cel In Range("B2:AP2400")
    If Left(cel.Value, 1) <> "#" Or Left(cel.Value, 1) <> "@" Then cel.ClearContents
  Next cel
End Sub

Ou encore, avec Replace :

Sub CleanCellNoneHashAt()
   With Range("B2:AP2400")
       .Cells.Replace What:="#*", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
       .Cells.Replace What:="@*", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
   End With
End Sub

Bonjour,

Pas besoins d'autant de ligne

Juste :

edit

oops trop vite j'avais pas lu la condition.

Bien vu pijaku ( perso préferes ta deuxième proposition mieux lisible pour moi. )

Bonjour

Un essai, en espérant que cella convienne

Sub CleanCellNoneHashAt()

Dim c As Range

For Each c In Range("b2:ap2400")
If c.Find("#") Is Nothing And c.Find("@") Is Nothing Then c.ClearContents

Next c

End Sub

Cognomen

Merci pour vos retours !

Pijaku, j'ai essayé la première formule j'ai un message d'erreur n°13 lié à l'incompatibilité de type. Concernant la seconde, cela supprime des données dans les premières colonnes — même les cellules commençant par des # et @ — après, rien sur les colonnes suivantes.

Cognomen, j'ai essayé ta formule. Cela enlève une partie du contenu des cellules, mais étrangement, certaines ne sont pas effacées alors qu'elles ne commencent ni par un # ou @ — je mets en pj une impression écran

capture d ecran 2020 05 28 a 11 45 01

Je vous mets un extrait du jeu de données car j'ai dû omettre des éléments, c'est toujours compliqué d'expliquer textuellement.

Cela est étrange car quand je lance la macro sur le fichier que vous avez envoyé elle fonctionne très bien

Rechercher des sujets similaires à "formule vba supprimer contenu"