Affichage colonnes selon

Résolu
Bonjour,
Une question hard pour moi, que j'adresse aux doués que vous êtes.
Je voudrais que la correspondance du Nom saisi dans le TextBox1 de l'Userform1 et reporté en D7 de la feuille Param, que ça recherche dans les tableaux les différentes colonnes à afficher selon le Nom saisi et la feuille active.
Mon fichier :
https://www.cjoint.com/c/HBAmkkxqqbO

19 réponses

  1. Je comprends que vous m'en vouliez.
    0
    1. Contributeur
      Bonjour,

      décidément

      1/ tu répond à coté aux questions que je te pose et, notamment, tu ignores mes remarques sur l'absence de la feuille "accueil" ...

      2/ Pour "Private Sub Workbook_BeforeClose(Cancel As Boolean) "
      tu me dis que tu ne comprends pas pour ne pas dire que tu ne cherches pas à comprendre ; note qu'il y a l'aide en ligne sur VbA

      Il y a aussi plein de documentation sur VBA: voir google ou autres moteurs. Ce n'est en pompant à droite et à gauche que tu arriveras à quelque chose

      3/Vraiment désolé, car je suis parti sur des données erronées.
      En plus tu fais très mal et très légèrement ton boulot de Maître d'ouvrage: Pas grave, les bénévoles sont là pour passer des heures à faire et à refaire des codes :-(((

      Bonne continuation
      1
      1. Mon point de départ a été :
        https://www.commentcamarche.net/faq/37104-vba-excel-mot-de-passe-et-utilisateurs
        pour l'affichage des feuilles selon l'utilisateur.
        Je souhaitais le même principe, si possible, pour les colonnes.
        Je répète que je ne maitrise pas le vba

        Tu écris : regarde bien la procédure "before close" dans le module thisworkbook
        Private Sub Workbook_BeforeClose(Cancel As Boolean)
        'Saved = False 'en cours de réalisation ou d'essais
        Saved = True
        End Sub

        Je ne comprends pas, désolé.
        Je te remercie Michel de t'impliquer autant pour me rendre ce service, ainsi que Julia.
        0
        1. Contributeur
          Cela ne répond pas à mes questions... :-/

          après vérif et re-re-re vérif pour déjouer les nombreux pièges ci joint proposition (il pleuvait cet aprem et ça m'a occupé!

          https://mon-partage.fr/f/RuQq1LYx/

          avant d'essayer, regarde bien la procédure "before close" dans le module thisworkbook

          comme annoncé un peu + haut post12
          0
          1. Bonjour Julia, Michel,
            Julia, je vais regarder ton classeur.
            Michel, oui les utilisateurs mettent à jour la base, donc ils écrivent, rectifient et supprime éventuellement dans toutes les colonnes dont ils ont accès pour chacun d'eux.
            Le fait de masquer des colonnes tient essentiellement à la confidentialité des renseignements très pointus.

            La feuille Accueil sera nommée Choix et toujours visible, toutes les autres feuilles en xlSheetVeryHidden visible seulement si autorisé.

            En vous remerciant.
            0
            1. Contributeur
              Bonjour Julia, Jean

              pour Jean

              1/Dans les colonnes que l'on montre ( par ex: D,G,K)dans une feuille: peut-on écrire ou seulement Lire ?
              2/ Dans les Colonnes A & B, l'opérateur écrit il qqchose et si oui dans dans quelles(s) colonne(s) ?


              Pour faire du VBA, il faut des renseignements précis et exhaustifs
              J'attends ces renseignements pour pouvoir terminer.

              Pour Julia et Jean:

              Puis je caresser l'espoir que vous lisiez le post 10 de cette discussion?

              0
              1. Contributeur
                Bonsoir,

                c'est fait pour ne faire apparaitre que les feuilles du nom donné par D7 et afficher les colonnes suivant le nom et la feuille (ma bidouille permet des changements de feuille visible et de colonne apparente.

                je vérifie dès que possible cette bidouille Si Ok, je te la poste

                Ensuite , j'attaquerai la fermeture du classeur pour rendre le classeur en l'état de départ pour le prochain intervenant.
                je te laisserai un topo sur du pdf. quand, je ne sais pas...
                0
                1. Bonjour
                  je suis sure que ton souhait est faisable .Mais fais un petit effort dans les explications , parce que là depuis une demie heure j'ai beau retourner ta demande , je séche..
                  alors
                  Selon le nom accès aux seules feuilles autorisées (X dans le 1er tableau)
                  c'est quoi le x ?
                  affichage des colonnes selon le nom et si (X dans le second tableau)
                  Pas clair du tout
                  Du coup j'attends plus d'explications...
                  cdlt
                  0
                  1. Contributeur
                    bonjour

                    l'erreur a été de ne pas mettre la feuille "accueil". il faut donc la créer et transporter le bouton "accès" dans cette feuille
                    le lancement des procédures doit masquer toutes les feuille sauf "accueil" en "veryhidden"

                    Private Sub Workbook_Open()
                    Dim Ws As Worksheet
                    '--------------------cache toutes feuilles hormis acceuil
                    For Each Ws In ThisWorkbook.Worksheets
                    With Ws
                    If .Name <> "acceuil" Then
                    'MsgBox "ok" 'test
                    '.Visible = xlSheetVisible pour essais et maintenance
                    .Visible = xlSheetVeryHidden
                    End If
                    End With
                    Next Ws
                    '-------------------Affiche l'Userform
                    Userform1.Show
                    End Sub


                    Mais il y a de nombreuses incohérences et inutilités dans les codes de la demande initiale de Jean ----> boulot piégé pour Julia et moi :-/
                    0
                2. Re,
                  Bonjour Julia,
                  J'ai regardé ton classeur, mais les colonnes ne se masquent pas... ?
                  0
                  1. Bonjour à vous,
                    Je vais regarder ton travail Julia.
                    Pour te répondre Michel, la réponse est non le classeur se trouve dans le bureau d'un responsable dont plusieurs personnes se servent de l'ordinateur.
                    Merci à vous deux.
                    0
                    1. Contributeur
                      Bonjour,

                      Désolé, malgré le dégel, il faut que j'aille aider à déneiger les maisons de personnes agées. donc, je n'aurais guère de temps aujourdhui.

                      le gros problème est qu'il semble qu'il y a eu plusieurs personnes qui ont écrit des codes et la cohérence en pâtit.

                      question: le classeur se trouve t'il sur le serveur de la société?
                      0
                      1. Contributeur
                        Ok je vais m'y mettre demain, sois patient...

                        0
                        1. Bonjour julia, michel,
                          Je vous remercie de vous intéresser à ma demande (pas facile à expliquer), je vais essayer.
                          julia : ton fichier est parasité chez moi.

                          Les noms sont appeler à changer ainsi que les colonnes à afficher; mais mise à jour dans la feuille Param.
                          Au maximum 5 noms.
                          Au l'ouverture du fichier, toutes les feuilles seront bien very hidden sauf la feuille Accueil et toutes les colonnes masquées à l'exception des colonnes A:B

                          Ce que je voudrais obtenir :
                          Selon le nom accès aux seules feuilles autorisées (X dans le 1er tableau)
                          affichage des colonnes selon le nom et si (X dans le second tableau) et impossibilité d'afficher les colonnes masquées.

                          Le classeur devra être protégé par Vba

                          Difficulté, les noms sont appelés à changer, mais il suffit de mettre la feuille (Param) à jour.
                          Je souhaiterai la même chose pour les colonnes (là ça fait 5 mois que je sèche pour faire l'association).
                          Cependant, il est fort probable que ces colonnes ne bougerons plus.

                          ps: je travail avec Excel 2003

                          Avec ce code, je met le nom de la feuille active en G7 pensant que c'est utile.
                          Sub feuil()
                          'Nom feuille active en G7
                          Dim nom As String
                          nom = ActiveSheet.Name
                          If nom = "Param" Then
                          Exit Sub
                          Else
                          Sheets("Param").Select
                          Cells(7, 7) = nom
                          End If
                          End Sub
                          0
                          1. Contributeur
                            Bonjour Jean, Julia

                            Bonjour,

                            ce que j'ai compris de ta demande

                            lorsque tu ouvres le classeur, on est sur la (future) feuille "acceuil" , l'admin a toutes les feuilles visibles, les autres toutes les feuilles fermées (very hidden)

                            si je m'appelle Jean, je n'ai accès qu'aux feuilles 1,2,5 et dans ces 3 feuilles aux colonnes marquées d'une croix. par ex: feuil1 colonnes A, B, E à J etc...
                            l'affectation de ces colonnes est elle variable (évolution du logiciel) ?
                            la solution de Julia considère que c'est inamovible et elle a peut-^tre raison?

                            je crois avoir lu sur un autre post, que tu voulais interdire "d'ouvrir" les colonnes non sélectionnées ?

                            0