Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Condition avec Select case

pat66

XLDnaute Impliqué
Bonsoir Le forum
Voila une macro qui fonctionne bien, mais est il possible de masquer la colonne AT en recliquant sur le bouton
même si AE5 contient 6,9,12, c'est peut être incohérent ?
Sub Bouton1_QuandClic2()
Application.ScreenUpdating = False
Select Case [AE5]
Case 6, 9, 12
Range("AT1").EntireColumn.Hidden = False
Case Else
Range("AT:AT").Columns.Hidden = True
End Select
End Sub

dans le genre de celle ci
If Range("AT1").EntireColumn.Hidden = True Then ' La colonne est deja cachée
Range("AT1").EntireColumn.Hidden = False ' je les montre
Else
Range("AT1").EntireColumn.Hidden = True ' je les cache
End If

merci
 
Solution
Bonsoir


Ah je reconnais mon oeuf
Essaie ainsi
Code:
Sub Bouton1_QuandClic2()
Application.ScreenUpdating = False
Select Case [AE5]
Case 6, 9, 12
Range("AT1").EntireColumn.Hidden = Not Range("AT1").EntireColumn.Hidden
End Select
End Sub

Staple1600

XLDnaute Barbatruc
Bonsoir


Ah je reconnais mon oeuf
Essaie ainsi
Code:
Sub Bouton1_QuandClic2()
Application.ScreenUpdating = False
Select Case [AE5]
Case 6, 9, 12
Range("AT1").EntireColumn.Hidden = Not Range("AT1").EntireColumn.Hidden
End Select
End Sub
 

job75

XLDnaute Barbatruc
Bonsoir pat66, JM,

Application.ScreenUpdating = False ne sert à rien ici :
VB:
Sub Bouton1_QuandClic2()
If IsNumeric(CStr([AE5])) Then If InStr("6|9|12", [AE5]) Then Columns("AT").Hidden = Not Columns("AT").Hidden
End Sub
A+
 

patricktoulon

XLDnaute Barbatruc
re
bonjour à tous
oui effectivement le select case est superflu ainsi qu'une condition(isnumeric) d'ailleurs
'faire un like absolu (pas de jocker) ("|"="ou")
'comme le like est absolu et les nombre sont séparés par un "ou" dans le motif ,on a pas besoins de tester si il y a éventuellement autre chose EST!!! avec un de ses chiffres
VB:
Sub Bouton1_QuandClic2()
If [AE5] Like "[6|9|12]" Then Columns("AT").Hidden = Not Columns("AT").Hidden
End Sub


en gros "Like "[6|9|12]"" veut dire "[=6 ou =9 ou =12]"
 

job75

XLDnaute Barbatruc
En hexadécimal 12 s'écrit C donc on peut utiliser :
Code:
Sub Bouton1_QuandClic2()
If IsNumeric([AE5]) Then If Hex([AE5]) Like "[69C]" Then Columns("AT").Hidden = Not Columns("AT").Hidden
End Sub
ou aussi :
VB:
Sub Bouton1_QuandClic3()
On Error Resume Next
If Not Hex([AE5]) Like "[69C]" Then Else Columns("AT").Hidden = Not Columns("AT").Hidden
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, pat66, job75, patricktoulon

Si cette version n'a pas été proposée, je suppose qu'il y a une faille que je n'ai point vue.
VB:
Sub Bouton1_QuandClic4()
On Error Resume Next
Columns(46).Hidden = Hex([AE5]) Like "[69C]" = Not Columns(46).Hidden
End Sub
 

Discussions similaires

Réponses
12
Affichages
414
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…