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

XL 2016 Masquer / Afficher une colonne en modifiant la valeur dans une cellule

Steinner

XLDnaute Nouveau
Bonsoir,

Je cherche à faire une macro qui me permette de masquer/afficher certaines colonnes en fonction d'une valeur par exemple si ça vaut 1 la colonne est masqué et si elle vaut 2 elle ne l'ai pas, mais le code que j'ai réaliser ne fonctionne pas et je n'arrive pas à trouver la solution. Si quelqu'un à une idée je suis preneur

VB:
Sub Afficher_Masquer()
    Dim i As Integer
    For i = 38 To 39                    'Colonne à cacher
        If Cells(3, i + 26) = 2 Then    'Valeur déterminant si la colonne est cachée
            Cells(1, i).EntireColumn.Hidden = True
        Else
            Cells(1, i).EntireColumn.Hidden = False
        End If
    Next i
End Sub
 

Jacky67

XLDnaute Barbatruc
Bonjour,
La macro pourrait ressembler à ceci
VB:
Sub Afficher_Masquer()
    Columns(38).Hidden = [bL3] = 1
    Columns(39).Hidden = [bm3] = 1
End Sub
S'il faut masquer au changement de BL3 et BM3, il faudra s'y prendre autrement
Exemple en PJ, le code se trouve dans le module de "feuil1"
 

Pièces jointes

  • masquer.xlsm
    20.2 KB · Affichages: 15
Dernière édition:

Steinner

XLDnaute Nouveau
Merci beaucoup ça fonctionne super bien .

Si je peux abuser je cherche à faire un raccordement entre une case d'option qui sort justement des valeurs types 1,2,etc.. dans une cellule et la valeur indiquée dans la macro. Quand je fais différents tests j'ai l'impression qu'il faut toujours saisir la valeur manuellement est-ce que tu aurais une alternative ?
 

Jacky67

XLDnaute Barbatruc
Re..
Une proposition avec des cases à cocher
Elle peuvent être déplacées
 

Pièces jointes

  • masquer V2.xlsm
    20.2 KB · Affichages: 4

Steinner

XLDnaute Nouveau
Merci pour la solution avec des cases à cocher, et encore désolé de te déranger, j'ai essayer de bricoler pour utiliser des cases à options ce qui donne le code suivant :
VB:
Option Explicit

Sub Casdoption245_Cliquer()
    Sheets("Eléments - MTO").Columns(38).Hidden = ActiveSheet.OptionButton(245) = 1
    Sheets("Eléments - MTO").Columns(39).Hidden = ActiveSheet.OptionButton(245) = 1
    Sheets("Eléments - MTO").Columns(43).Hidden = ActiveSheet.OptionButton(245) = 1
    Sheets("Eléments - MTO").Columns(44).Hidden = ActiveSheet.OptionButton(245) = 1
End Sub

Mais décidément j'ai du mal avec la VBA tu saurais où j'ai fais une erreur ?
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir Steinner, le fil,

une proposition d'optimisation de ton code VBA :

VB:
Sub Casdoption245_Cliquer()
  Sheets("Eléments - MTO").Range("AL:AM, AQ:AR").Columns.Hidden = ActiveSheet.OptionButton(245) = -1
End Sub

note qu'en VBA : False = 0 et True = -1 ; alors que sur une feuille de calcul : FAUX = 0 et VRAI = 1 ➯ c'est pareil pour False et FAUX : 0 ; mais pour True et VRAI, c'est différent : -1 ou 1 respectivement ; donc ne pas confondre les deux !

soan
 
Dernière édition:

Steinner

XLDnaute Nouveau
Justement, il me dit que la correspondance est introuvable, pourtant quand je clique sur la case d'option il me lance le code (puis bug ) et quand je regarde ce qui est spécifier on a bien la page et les colonnes concernées.
 

Etoto

XLDnaute Barbatruc
Justement, il me dit que la correspondance est introuvable, pourtant quand je clique sur la case d'option il me lance le code (puis bug ) et quand je regarde ce qui est spécifier on a bien la page et les colonnes concernées.
Re,

Ha oui en effets, vive Microsoft !!

Peut-être parce que tu as privatisé l'objet en question mais je ne suis pas si bon que ça, alors pas sûr.
 

soan

XLDnaute Barbatruc
Inactif
@Steinner : je pourrais essayer de t'aider davantage, mais seulement si tu joins ton fichier actuel sans données confidentielles ; dis-moi aussi où ça se passe : sur quel feuille ? dans quel éventuel UserForm (= formulaire) ? dans quelle sub ? quelle ligne de code VBA de cette sub est mise en jaune ? quelle est la case d'option sur laquelle tu cliques ? il faudra que je puisse reproduire ton erreur pour pouvoir arriver à (peut-être) la corriger.
 

Etoto

XLDnaute Barbatruc
Re,

Oui sache que pour le VBA, le précision est l'une des choses les plus importantes.
 

Steinner

XLDnaute Nouveau
Alors déjà merci beaucoup de m'aider et désolé pour le pavé. Normalement le fichier est épuré. Dans l'idée tout se passe dans l'onglet "hypothèses" qui me sert un peu de menu de réglage pour l'ensemble du fichier. En M21 et M22 j'ai mis 2 cases d'option (237 et 238) qui me permettent de faire la bascule entre 2 hypothèses et j'essaye de faire en sorte que dans l'onglet "Elément - MTO" En colonne AL,AM,AQ et AR si je click sur la première case d'option (237) que les colonnes disparaissent et qu'a l'inverse en cliquant sur la seconde (238) qu'elles réapparaissent.

Alors je n'utilise pas de userform mais j'ai des modules et c'est dans le 7 que j'ai mis les lignes de code d'ailleurs c'est la deuxième qui clignote en jaune
 

Pièces jointes

  • Projet C.xlsm
    979.1 KB · Affichages: 4

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…