XL 2016 [RESOLU] VBA - Masquer des lignes sur une feuille + Masquer des colonnes sur d'autres feuilles en fonction d'une liste déroulante

JMUJMU

XLDnaute Nouveau
Bonjour à tous,

Je me permets de vous écrire pour que vous puissiez m'aider sur VBA.

Je suis totalement débutant et je n'arrive à trouver une solution pour mon problème suivant :
1. Masquer des lignes en fonction d'une liste déroulante
Dans l'onglet 0, j'ai une liste déroulante qui me permet de sélectionner des valeurs de personnes de 1 à 10 (dans le fichier, cellule C3)
Je souhaiterai :
- Si sélection de 1 personne dans la liste déroulante, alors on masque les lignes avec les noms de 2 à 10 (dans le fichier, les lignes 6 à 14)
- Si sélection de 2 personnes dans la liste déroulante, alors on masque les lignes avec les noms de 3 à 10 (dans le fichier, les lignes 7 à 14)
- ...
- Si sélection de 9 personnes dans la liste déroulante, alors on masque la ligne avec le nom 10 (dans le fichier, la ligne 14)
- Si on sélectionne 10, alors ne rien faire

2. Masquer des colonnes en fonction de la même liste déroulante
Dans l'onglet 0, j'ai une liste déroulante qui me permet de sélectionner des valeurs de personnes de 1 à 10 (dans le fichier, cellule C3)
Dans les onglets A, B et C j'ai des colonnes avec les noms des personnes
Je souhaiterai :
- Si sélection de 1 personne dans la liste déroulante, alors on masque les colonnes "Nom 1" des onglets A, B et C
- Si sélection de 2 personnes dans la liste déroulante, alors on masque les colonnes "Nom 1" et "Nom 2" des onglets A, B et C
- ...
- Si sélection de 9 personnes dans la liste déroulante, alors on masque la colonne "Nom 10" uniquement des onglets A, B et C

Si quelqu'un pourrait SVP m'aider, ce serait top.

Voir en PJ le fichier d'exemple.

Merci à vous tous pour votre aide.

Bonne journée

Julien
 

Pièces jointes

  • Classeur1.xlsb
    11 KB · Affichages: 4

JMUJMU

XLDnaute Nouveau
Bonjour Pierre Jean,

Merci à toi pour le retour.

Dans le fichier, cela marche à merveille mais je n'arrive pas à transposer le code dans mon fichier, je ne m'y retrouve pas pour modifier les cellules, lignes, colonnes.

Ci-dessous mes questions :) :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then >> Devient "$H$18" dans mon fichier
Application.ScreenUpdating = False >> Aucune modification ?
Rows.Hidden = False >> Aucune modification ?
For n = Target.Value + 5 To 14 >> Dans mon fichier ce sont les lignes 21 à 30 mais si je remplace par "For n = Target.Value + 21 To 30" c'est KO
Rows(n).Hidden = True
Next
Application.ScreenUpdating = True
For n = 1 To 3 >> 1 to 3 correspond aux onglets ? Comment puis je transposer ?
Sheets(Chr(64 + n)).Columns.Hidden = False >> Aucune modification ?
For m = Target.Value + 3 To 12 >> A quoi cela correspond t'il ? Les colonnes à masquer sans doute ?
Sheets(Chr(64 + n)).Columns(m).Hidden = True >> Aucune modification ?
Next
Next
End If
End Sub

Pourrais-tu STP adapter le code afin que je puisse modifier les noms des onglets si besoin, des celulles, colonnes et lignes.

Pas grave si c'est un peu plus lourd mais ce sera sans doute plus simple pour moi à maintenir car le fichier risque de bouger.

Merci à toi.

Julien
 
Dernière édition:

JMUJMU

XLDnaute Nouveau
Pierre Jean,

Merci à toi mais impossible pour moi de transposer.

Ci-joint le fichier test :
Onglet 0 >> C'est ici qu'il y a mon tableau
Onglets 1 à 6 : Masquer les colonnes non concernées (/!\ les colonnes ne sont pas toutes au même endroit dans les onglets :) )

Dans tous les onglets, il y a des colonnes à masquer (il y a les intitulés des colonnes pour t'y retrouver).

NB : Pour des soucis de volume du fichier, j'ai supprimé des onglets (mais tous les modèles d'onglets sont présents dans le fichier, donc en fonction du code je pourrais COPIER/COLLER pour les autres onglets que j'ajouterai plus tard).

Merci à toi pour ton aide précieuse.

Cordialement.

Julien
 

Pièces jointes

  • TEST FICHIER.zip
    633.4 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo