Liste déroulante et colonnes masquées
Résolu/Fermé
A voir également:
- Liste déroulante et colonnes masquées
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Google sheet liste déroulante - Accueil - Guide bureautique
- Word colonnes indépendantes - Guide
3 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
18 mai 2017 à 17:35
18 mai 2017 à 17:35
Bonjour Lilas, bonjour le forum,
Essaie avec la macro événementielle Change à placer dans l'onglet Structure :
C'est plus court mais normalement tout aussi efficace (si je ne me suis pas planté)...
Essaie avec la macro événementielle Change à placer dans l'onglet Structure :
Private Sub Worksheet_Change(ByVal Target As Range) Dim O As Worksheet Dim CD As Integer Dim CL As String Set O = Worksheets("Méthode Exposition") If Target.Address <> "$B$16" Then Exit Sub CD = IIf(Target.Value = "1", 18, 18 + (CInt(Target.Value) - 1) * 7) CL = Split(Columns(CD).Address(0, 0), ":")(0) O.Columns.Hidden = True O.Columns(CL & ":DI").Hidden = False If Target.Value = "15" Then O.Columns.Hidden = True O.Columns("K:DI").Hidden = False End If End Sub
C'est plus court mais normalement tout aussi efficace (si je ne me suis pas planté)...
jordane45
Messages postés
38286
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 novembre 2024
4 697
18 mai 2017 à 17:36
18 mai 2017 à 17:36
Bonjour,
Dans ton fichier excel, tu peux déclencher l'appel à une macro en utilisant Private Sub Worksheet_Change(ByVal Target As Range)
NB: Code à placer dans l'objet Worsheet correspondant ....
Un truc du genre :
Dans ton fichier excel, tu peux déclencher l'appel à une macro en utilisant Private Sub Worksheet_Change(ByVal Target As Range)
NB: Code à placer dans l'objet Worsheet correspondant ....
Un truc du genre :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$16" Then ' de là .. tu peux appeller ton code pour afficher/masquer tes colonnes Dim sh_b16 As Worksheet Dim sh_expo As Worksheet Dim b16Val As Integer Dim colVisible As String 'Définit la taille du tableau Dim listCol(15) As String 'Alimente les éléments du tableau (dans l'ordre des valeurs de la liste déroulante...) listCol(0) = "R:DI" listCol(1) = "Y:DI" listCol(2) = "AF:DI" listCol(3) = "AM:DI" 'etc... 'maintenant on affiche toutes les colonnes par défaut Set sh_expo = Worksheets("Méthode Exposition") For i = 0 To UBound(listCol) If listCol(i) <> "" Then sh_expo.Columns(col) = True End If Next 'On affiche les colonnes voulues en fonction du choix en b16 Set sh_b16 = Worksheets("Structure") sh_expo.Columns(sh_b16.Range("B16").Value - 1) = True End If End Sub