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

  • Initiateur de la discussion Initiateur de la discussion Steinner
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
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

Dernière édition:
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 ?
 
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 ?
Re..
Une proposition avec des cases à cocher
Elle peuvent être déplacées
 

Pièces jointes

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 ?
 
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:
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.
 
@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. 🙂
 
@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. 🙂
Re,

Oui sache que pour le VBA, le précision est l'une des choses les plus importantes. 🙂
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour