Masquer des colonnes dans une autre feuille Excel

Salut à tous,

Je suis en pleine prise de tête: j'ai un fichier sur lequel j'ai un souci. Je souhaiterais faire ceci:

  • Sur la feuil2, si je mets un 1 dans une cellule, ça me masque dans la feuil3 du même fichier un certain nombre de colonnes (exemple de la colonne R à AI)
  • Si je mets un 2 dans la cellule, ça me masque plus que de la colonne X à AI... et ainsi de suite jusqu'au chiffre 4. Et il faut que si je change le chiffre, ça affiche les colonnes ou ça les masque en fonction. Est-ce que quelqu'un a une idée?

Merci!

Bonjour

n'ayant pas plus d'information...

si je mets un 1 dans une cellule

Laquelle ??

et ainsi de suite jusqu'au chiffre 4

très bien

Ci joint une proposition ou la cellule a modifier est en B3 de la feuil 2 et je ne fais que 1 et 2 ...

a toi de faire pour 3 et 4

Fred

19blackkho.xlsm (15.78 Ko)

Bonjour

n'ayant pas plus d'information...

si je mets un 1 dans une cellule

Laquelle ??

et ainsi de suite jusqu'au chiffre 4

très bien

Ci joint une proposition ou la cellule a modifier est en B3 de la feuil 2 et je ne fais que 1 et 2 ...

a toi de faire pour 3 et 4

Fred

Hello, effectivement, j'aurais pu donner plus de détails, ou mettre en pièce jointe un exemple de fichier. Désolé. En tout cas, merci pour le tuyau, ça marche bien et ça fera exactement ce dont j'ai besoin. Merci beaucoup!

Bonjour BlackKho,

Juste une petite question pour Fred,

N'aurais-tu pas dû remettre le screen updating en true à la fin de ta procédure ?

D'avance merci,

Girodo,

Bonjour Girodo

Non cela n'est pas nécessaire... car à la fin de l’exécution du code... il revient de lui même à true...

mais on peut le mettre aussi... cela ne change rien.. juste éventuellement une écriture un peu plus propre (et encore... )

Fred

Re,

Je me permets de revenir vers vous parce que je n'ai pas réussi à faire que ça fonctionne. Du coup, je glisse ici mon fichier de travail (qui contient une première petite macro qui affiche des onglets en fonction du chiffre dans une cellule. Si quelqu'un a la gentillesse de me montrer ce qui ne va pas. Merci beaucoup!

Bonjour,

Nous sommes plein de bonne volonté mais il faut nous dire ce que tu souhaites... Je ne sais pas quelles cellules tu souhaites masquer, dans quel onglet et en fonction de quelle cellule source.

Girodo,

Bonjour,

Nous sommes plein de bonne volonté mais il faut nous dire ce que tu souhaites... Je ne sais pas quelles cellules tu souhaites masquer, dans quel onglet et en fonction de quelle cellule source.

Girodo,

C'était écrit plus haut dans le fil. Mais désolé, je reprécise ma demande. Dans la feuille "Devis", j'ai créé une macro qui affiche les feuilles Financeurs en fonction du chiffre que je mets en cellule B22.

Ce que je souhaiterais, c'est qu'en fonction du chiffre que je mets dans cette même cellule B22, ça m'affiche ou masque des colonnes (de R à AI pour le cas où je mets 1, de X à AI si je mets 2...)

Voilà, je pense avoir fait le tour. Merci!

Bonjour

la feuille "Feuil8" n'existe pas sous ce nom là.. mais seulement le codeName d'une feuille porte ce nom...

donc soit tu écris

Feuil8.Range("R:AI")

soit comme la feuil8 pote le nom "calcul coût horaire" tu utilises :

sheets("calcul coût horaire").Range("R:AI")

c'est pas du tout la même chose...

ci joint ton fichier en retour

fred

Re, vous allez me prendre pour un relou (ou un pas doué, au choix), mais quand je mets 1, ça ne me masque pas ce que ça devrait. Alors j'ai essayé de modifier ce que je pensais être juste, mais ça ne change pas.

J'ai compris le problème du codename. En fait, si je mets 1 en B22 de la feuille devis, je veux que dans la feuille facturation les colonnes R à AI soient masquées. J'ai mis ça dans le code et ça ne marche pas.

Re

Dans ton fichier Feuil8 = "calcul horaire Globale"... donc si tu veux travailler sur la feuille facturation il faut replacer feuil8 par feuil7

dans le module 1 => fonction masquer colonne :

capture
Sub masquer_colonnes(ByVal Target As Range)
 If Intersect(Target, [B22]) Is Nothing Then Exit Sub
Application.ScreenUpdating = True
 Feuil7.[A1].CurrentRegion.EntireColumn.Hidden = False
 Select Case Target
 Case 0:
 Case 1: Feuil7.Range("R:AI").EntireColumn.Hidden = True
 Case 2: Feuil7.Range("X:AI").EntireColumn.Hidden = True
 Case 3: Feuil7.Range("AD:AI").EntireColumn.Hidden = True

 End Select

End Sub

Fred

Salut à tous,

J'ai bien fait les modifications mais il y a toujours un truc qui me chagrine: si en B22, je mets un 3, mais que finalement je mets un autre chiffre, genre un 4, et que je remets un 2, la macro ne suit pas le changement de chiffre. Elle ne fonctionne pas à tous les coups.

Bonjour

ton fichier en retour.

l’exécution du code ne s'effectue que quand tu valide la cellule B22 ... soit entrer, soit le choix d'une autre cellule

Fred

Salut à tous,

Merci pour vos retours et indications. Je n'arrivais pas à avoir le résultat que je souhaitais, ça m'affichait toujours une feuille de plus que je voulais. Du coup, j'ai changé d'approche et je me suis dit que d'un point de vue ergonomique, ça pourrait être sympa de mettre des boutons pour sélectionner l'option choisie. J'ai donc mis des boutons de commande de 1 à 4, auxquels j'ai assigné mes macros d'affichage de feuille "Financeur" ET de colonne dans la feuille "Facturation". Et de cette manière, ça fonctionne parfaitement.

Une fois encore, merci pour les conseils, c'est en échangeant avec vous que j'ai trouvé ma solution.

Rechercher des sujets similaires à "masquer colonnes feuille"