Problème Cellules à selectionner VBA

Bonjour,

j'aimerai masquer des formules VBA en fonction d'une valeur qui se trouve dans un cellule (J14 ). La valeur inscrite dedans est une formule recherche V et peut changer.

J'ai créer cette formule : Mais quand je mets 10 à la place de " Range("J14").Select" ça marche, je n'arrive pas à sélectionner la valeur de la case. J'ai essayé avec range("J14"). Value sans réussite non plus.

Sub Bouton1_Cliquer()

Sheets("Boulangerie").Select

For Col = 8 To 50

If Cells(2, Col) <> Range("J14").Select Then Columns(Col).Hidden = True

Next

End Sub

MErci à vous

Bonjour Nyfa,

je te propose d'essayer ce code VBA :

Sub Bouton1_Cliquer()
  Dim Col As Byte
  Worksheets("Boulangerie").Select
  For Col = 8 To 50
    If Cells(2, Col) <> [J14] Then Columns(Col).Hidden = True
  Next Col
End Sub

dhany

autre solution sans test If :

Sub Bouton1_Cliquer()
  Dim Col As Byte
  Worksheets("Boulangerie").Select
  For Col = 8 To 50
    Columns(Col).Hidden = Cells(2, Col) <> [J14]
  Next Col
End Sub

dhany

Super ça fonctionne !

Merci beaucoup 🤗

merci pour ton retour ! pour passer le sujet en résolu, clique sur à droite de (coin haut droit du post)

ça permet aussi de clôturer le fil de la discussion (toi seul peut le faire, car c'est toi qui a créé ce sujet).

dhany

Très bien, j'ai juste une question si jamais je veux supprimer la colonne au lieu de la masquer.

A la place de

Then colums (Col). Hidden=true

Que dois-je mettre ?

ce code devrait aller :

Sub Bouton1_Cliquer()
  Dim Col As Integer
  Worksheets("Boulangerie").Select: Application.ScreenUpdating = 0
  For Col = 50 To 8 Step -1
    If Cells(2, Col) <> [J14] Then Columns(Col).Delete
  Next Col
End Sub

dhany

j'avais oublié Application.ScreenUpdating = 0 : ça évite la mise à jour de l'écran, et donc l'exécution de la macro est plus rapide ; mais il y a 2 autres différences primordiales :

1) comme il s'agit de supprimer des colonnes au lieu de simplement les masquer, l'opération doit obligatoirement se faire de droite à gauche pour que le compteur de la boucle, ici Col, ne soit pas faussé par rapport à la suppression d'une colonne.

2) comme avec Step -1 le pas est négatif, le type de Col ne peut plus être un Byte : ce doit être un Integer (ou un Long).

dhany

Rechercher des sujets similaires à "probleme selectionner vba"