Lancer un userform en fonction de l'onglet

Résolu
ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai un fichier de factures avec un onglet récapitulatif et des onglets respectifs pour chaque vendeur ayant généré une facture.

A l'ouverture du classeur, suivant le nom d'utilisateur et le mdp, différents onglets sont voyants.

Pour moi tous les onglets sont voyants
Pour chaque vendeur, seul leur onglet respectif est voyant

J'aimerai lancer automatiquement un userform quand le vendeur à renseigné utilisateur + mdp et qu'il arrive sur l'onglet. J'aimerai que cet userform soit lancé une seul fois.

J'aimerai ne pas lancer d'userform quand je renseigne utilisateur + mdp et que j'ai accès à tous les onglets

Seulement si je charge l'userfom dans Private Sub Worksheet_Activate() et bien cela fonctionne logiquement pour les vendeurs qui n'ont qu'un seul onglet actif mais pour moi, ça se charge au début et à chaque changement d'onglet.

Si quelqu'un à la gentillesse de m'aider je suis preneur :)

3 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    Apparemment ton userform s'ouvre lorsque la feuille vendeur est activée
    Comme le mdp entré à l'identification doit être déclaré comme public (sinon il faut le faire) il peut être récupéré dans tous les macros; il suffit donc dans la macro liée à l'activation d'une feuille de mettre au début un
    IF mdp="tonmotdepasse" then exit sub
    avant la ligne du style USerform1.show

    Cdlmnt
    Via

    1
    1. ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour via 55 et merci de ton aide.

      J'ai bien déclaré mdp en public comme ceci

      Option Explicit
      Public mdp as string


      Et dans worksheet activate

      If mdp = "anne4" Then
      Exit Sub
      end if
      Load UserForm2
      UserForm2.Show
      Unload UserForm2


      là l'userform s'ouvre tout le temps

      OU la même chose mais le end if tout à la fin et pas au milieu = l'userform ne s'ouvre jamais

      OU

      If mdp ="abracadabra" then
      Load UserForm2
      UserForm2.Show
      Unload UserForm2

      else if mdp="obrocodobro"
      exit sub
      end if


      OU les deux même sans " Load UserForm2" et "Unload UserForm2"

      Sans réussite.
      0
    2. ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai cette ligne là dans la macro d'ouverture de classeur, peut-être que ça influence mais ça ne semble pas logique : mdp = InputBox("Veuillez saisir votre mot de passe", "Mot de passe")
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Public mdp as string
    doit être déclaré dans un module Standard.
    eric
    1
    1. ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      C'était bien ça, merci !
      0
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Sans connaitre ton fichier je ne peux pas voir ce qui cloche

    Poste ton fichier sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici en m'indiquant aussi le mdp administrateur et le mdp d''au moins un utilisateur (et les pseudos de chacun s'ils sont à rentrer aussi bien sûr)
    0
    1. ricnoynoy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      C'est bon eriiic à résolu mon problème :)
      0