Macro masquer/afficher colonnes avec bouton

Tintin64

XLDnaute Nouveau
Bonjour,

Je travaille actuellement sur fichier Excel, qui comporte des données exprimées en euros et en $. Certains destinataires du fichier ont besoin de visualiser les données en euros et d'autres souhaitent les visualiser en $. C'est pourquoi je souhaiterais faire une macro qui, au moyen d'un bouton, permette en un seul clic de basculer d'un affichage en euros à une affichage en $ (et vice versa) en masquant à chaque fois les colonnes de la devise qui n'est pas nécessaire.
Par exemple, on aurait par défaut à l'ouverture du fichier les colonnes en euros - E et F dans le fichier joint -, les colonnes en $ - C et D - étant masquées. En cliquant sur le bouton, les colonnes euros deviendraient masquées et les colonnes $ apparaitraient. Un nouveau clic ramenerait à la situation initiale.

Pourriez-vous me donner un coup de main là-dessus, je suis un grand débutant en macros!

Merci bcp!
 

Pièces jointes

  • Test macro.xls
    28 KB · Affichages: 144
  • Test macro.xls
    28 KB · Affichages: 164
  • Test macro.xls
    28 KB · Affichages: 180

Staple1600

XLDnaute Barbatruc
Re : Macro masquer/afficher colonnes avec bouton

Bonsoir à tous

Avec un Ce lien n'existe plus
Code:
Private Sub ToggleButton1_Click()
Dim DOLL$, EUR$
DOLL = "C:D": EUR = "E:F"
If ToggleButton1.Value Then
Columns(DOLL).Hidden = True
Columns(EUR).Hidden = False
End If
If Not ToggleButton1.Value Then
Columns(EUR).Hidden = True
Columns(DOLL).Hidden = False
End If
End Sub

PS: C'est le 10ème contrôle sur la BO -> Bouton Bascule

Merci à Thierry pour sa copie d'écran ;)
 
Dernière édition:

Tintin64

XLDnaute Nouveau
Re : Macro masquer/afficher colonnes avec bouton

Bonsoir à tous

Avec un Ce lien n'existe plus
Code:
Private Sub ToggleButton1_Click()
Dim DOLL$, EUR$
DOLL = "C:D": EUR = "E:F"
If ToggleButton1.Value Then
Columns(DOLL).Hidden = True
Columns(EUR).Hidden = False
End If
If Not ToggleButton1.Value Then
Columns(EUR).Hidden = True
Columns(DOLL).Hidden = False
End If
End Sub

PS: C'est le 10ème contrôle sur la BO -> Bouton Bascule

Merci à Thierry pour sa copie d'écran ;)


Super, merci Staple, tu m’as mis sur la bonne voie ! J’ai juste une petite difficulté supplémentaire : contrairement au fichier simplifié joint, les colonnes qui doivent être masquées en même temps ne se suivent pas toutes (c’est notamment pour ça que je ne pouvais pas utiliser le mode plan (cf.remarque de Dugenou)).
Du coup, je n’ai pas réussi à définir les variables DOLL et EUR avec des ensemble de colonnes qui ne se suivent pas (par exemple DOLL = "C:D,G,M" ne marche pas). J’ai contourné la difficulté en supprimant les variables et en faisant autant de lignes de programmation qu’il y a de colonnes à masquer mais je me retrouve avec 50 lignes… je pense qu’il y a plus simple, non ?
Merci
 

Si...

XLDnaute Barbatruc
Re : Macro masquer/afficher colonnes avec bouton

salut

Si... tu veux garder le bouton bascule, tu peux essayer par exemple :
Code:
Private Sub ToggleButton1_Click()
  Range("C:D, G:L").Select
  Selection.Columns.Hidden = ToggleButton1
  Range("E:F,N:P").Select
  Selection.Columns.Hidden = Not ToggleButton1
End Sub
 

Tintin64

XLDnaute Nouveau
Re : Macro masquer/afficher colonnes avec bouton

salut

Si... tu veux garder le bouton bascule, tu peux essayer par exemple :
Code:
Private Sub ToggleButton1_Click()
  Range("C:D, G:L").Select
  Selection.Columns.Hidden = ToggleButton1
  Range("E:F,N:P").Select
  Selection.Columns.Hidden = Not ToggleButton1
End Sub


Merci pour cette proposition, mais quand j'essaye ça il me masque des plages de colonnes beaucoup plus larges que ce qui est défini dans Range(...).
A defaut sinon je vais rester sur la solution dérivée de celle de Staple, qui fonctionne bien mais qui me prend bcpde lignes:

Private Sub ToggleButton1_Click()
If ToggleButton1.Value Then
Columns("O:O").Hidden = False
Columns("Q:Q").Hidden = False
Columns("S:S").Hidden = False
etc. (bcp de lignes!)

Columns("P:p").Hidden = True
Columns("R:R").Hidden = True
Columns("T:T").Hidden = True
etc. (bcp de lignes!)

End If

If Not ToggleButton1.Value Then
Columns("P:p").Hidden = False
Columns("R:R").Hidden = False
Columns("T:T").Hidden = False
etc. (bcp de lignes!)

Columns("O:O").Hidden = True
Columns("Q:Q").Hidden = True
Columns("S:S").Hidden = True
etc. (bcp de lignes!)

End If
 

Si...

XLDnaute Barbatruc
Re : Macro masquer/afficher colonnes avec bouton

re

et ainSi... ?
Code:
Private Sub ToggleButton1_Click()
 Range("O1,Q1,S1").Select
 Selection.Columns.Hidden = Not ToggleButton1
 
 Range("P1,R1, T1").Select
 Selection.Columns.Hidden = ToggleButton1
 
End Sub
 

Tintin64

XLDnaute Nouveau
Re : Macro masquer/afficher colonnes avec bouton

re

et ainSi... ?
Code:
Private Sub ToggleButton1_Click()
 Range("O1,Q1,S1").Select
 Selection.Columns.Hidden = Not ToggleButton1
 
 Range("P1,R1, T1").Select
 Selection.Columns.Hidden = ToggleButton1
 
End Sub

Parfait, ça marche nickel! En plus la bascule se fait bcp plus rapidement (car la programmation est plus légère j'imagine).

Merci à tous!
 

Discussions similaires

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 750
dernier inscrit
fred13340