Affichage colonnes selon

Résolu
jean300 Messages postés 382 Statut Membre -  
jean300 Messages postés 382 Statut Membre -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. jean300 Messages postés 382 Statut Membre 14
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Ok je vais m'y mettre demain, sois patient...

    0
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. jean300 Messages postés 382 Statut Membre 14
     
    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
  8. jean300 Messages postés 382 Statut Membre 14
     
    Re,
    Bonjour Julia,
    J'ai regardé ton classeur, mais les colonnes ne se masquent pas... ?
    0
  9. julia Namor Messages postés 532 Statut Membre 33
     
    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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  10. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  11. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  12. jean300 Messages postés 382 Statut Membre 14
     
    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
  13. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  14. jean300 Messages postés 382 Statut Membre 14
     
    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
  15. jean300 Messages postés 382 Statut Membre 14
     
    Bonjour Julia, Michel,
    Vraiment désolé, car je suis parti sur des données erronées.
    Le classeur joint rectifie cela.
    En vous priant de bien vouloir m'excuser.

    https://www.cjoint.com/c/HCev4APksI3
    0
  16. jean300 Messages postés 382 Statut Membre 14
     
    Je comprends que vous m'en vouliez.
    0