inhibe des boutons sous conditions.

baclet

XLDnaute Nouveau
Bonjour a tous
je viens faire appel a vos talents.
j'ai une appli qui s'ouvre avec un mot de passe ( jusqu'ici tout va bien)
Mais mon souci est que j'aimerai que en fonction du nom de l'utilisateur certains boutons sur ma feuille "acceuil" soit inhibe afin de restreindre l'utilisation.
Par exemple : utilisateur "toto" 2 boutons sont inhibés
utilisateur " toto1" 1 bouton est inhibé
enfin utilisateur " moi" tous les boutons sont actifs.
merci d'avance de votre aide
nb: le nom utilisateur est toto le pasword toto1
merci a vous
 

Pièces jointes

  • gestion mag.zip
    43.9 KB · Affichages: 34
  • gestion mag.zip
    43.9 KB · Affichages: 35
  • gestion mag.zip
    43.9 KB · Affichages: 34
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

Bonjour baclet,

Tu ne précises pas si tu manipules les macros, mais n'ayant pas ton fichier sous les yeux, je suppose que oui.

Voici donc une possibilité :

Code:
Private Sub Workbook_Open()
With [COLOR="Red"]UserForm1[/COLOR]
  Select Case UserName
    Case "Toto1"
      [COLOR="Red"]CommandButton1.[/COLOR]Enabled = False
      [COLOR="Red"]CommandButton2[/COLOR].Enabled = False
      [COLOR="Red"]CommandButton3[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton4[/COLOR].Enabled = True
    Case "Toto1"
      [COLOR="Red"]CommandButton1[/COLOR].Enabled = False
      [COLOR="Red"]CommandButton2[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton3[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton4[/COLOR].Enabled = True
    Case "Toto1"
      [COLOR="Red"]CommandButton1[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton2[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton3[/COLOR].Enabled = True
      [COLOR="Red"]CommandButton4[/COLOR].Enabled = True
  End Select
End With
End Sub

Remplaces les noms de contrôles en rouge par ceux que tu as choisis.

Espérant avoir répondu.

Cordialement.
 

baclet

XLDnaute Nouveau
Re : inhibe des boutons sous conditions.

bonjour
et merci pour ta reponse
le fichier en piece joint
j'espere avoir ete clair dans ma demande
a bientot
 

Pièces jointes

  • gestion mag.zip
    43.9 KB · Affichages: 32
  • gestion mag.zip
    43.9 KB · Affichages: 27
  • gestion mag.zip
    43.9 KB · Affichages: 34

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

Bonsoir baclet,

Ci-joint une copie de ton fichier avec la macro du bouton Valider complétée.

Je te laisse le soin de vérifier si j'ai bien compris le problème, et reste à ta disposition le cas échéant.

Bonne soirée.

Cordialement.


Cijoint.fr - Service gratuit de dépôt de fichiers
 

baclet

XLDnaute Nouveau
Re : inhibe des boutons sous conditions.

bonjour à toi Papou-net et a tous les autres
j'ai essaye ton code mais cela ne marche pas.
en effet quelque soit le nom d'utilisateur entrer tous les boutons de ma page "accueil" reste activé. Alors que j'aurai bien aimé restreindre l'acces à certains boutons en fonction du nom de l'utilisateur.
Mais encore une fois merci pour ton boulot cela m'a servi a avancer un peu
à tres bientot
 

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

j'ai essaye ton code mais cela ne marche pas.
en effet quelque soit le nom d'utilisateur entrer tous les boutons de ma page "accueil" reste activé. Alors que j'aurai bien aimé restreindre l'acces à certains boutons en fonction du nom de l'utilisateur.

Bonjour baclet,

J'ai omis de modifier une erreur dans les lignes suivantes :

Code:
    ' Si oui, on vérifie le mot de passe
    RMdp = Sheets("Users").Range("C" & Lig)
    [COLOR="Red"][B]UserT = Sheets("Users").Range("[COLOR="Blue"]B[/COLOR]" & Lig)[/B][/COLOR]
    ' <<< Modif le 23/12
    varProtect = False
    If Sheets("Users").Range("D" & Lig).Value = "Oui" Then varProtect = True
...
...
...
        ' >>> Modif le 23/12
        [B][COLOR="Red"]Sheets("accueil").[COLOR="Blue"]Activate[/COLOR][/B][/COLOR]
'    End If
    ' Si tous les tests sont passés
    ' on ferme la boite de dialogue

Le "B" remplace le "A", "Activate" remplace "Visible = True".

Je te joins donc le fichier mis à jour.

Cijoint.fr - Service gratuit de dépôt de fichiers

Espérant avoir résolu.

Cordialement.
 

baclet

XLDnaute Nouveau
Re : inhibe des boutons sous conditions.

merci à toi Papou-net
Cela marche nickel
Mais j'ai une derniere question
Comment je fais si j'ai plusieurs utilisateurs , droit je entrer a chaque fois le nom de l'utilisateur.
j'aurai simplement voulu entrer le nom des utilisateurs dans la feuille "USERS" et pas dans le code
Merci à toi. Promis juré je ne t'embeterai plus avec mes questions , mais cela m'aide aussi à evoluer en VBA
à bientot
 

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

merci à toi Papou-net
Cela marche nickel
Mais j'ai une derniere question
Comment je fais si j'ai plusieurs utilisateurs , droit je entrer a chaque fois le nom de l'utilisateur.
j'aurai simplement voulu entrer le nom des utilisateurs dans la feuille "USERS" et pas dans le code
Merci à toi. Promis juré je ne t'embeterai plus avec mes questions , mais cela m'aide aussi à evoluer en VBA
à bientot

Pas de problème, baclet, tu ne m'ennuies pas du tout.

Voici comment modifier le code, pour répondre à ta demande :

Code:
    ' Vérifie le type d'utilisateur
    With Sheets("accueil")
      Select Case [COLOR="Red"][B]Lig[/B][/COLOR]
        Case [B][COLOR="Red"]2[/COLOR][/B]
          .CommandButton8.Enabled = False
          .CommandButton10.Enabled = True
          .CommandButton14.Enabled = False
          .CommandButton9.Enabled = True
          .CommandButton11.Enabled = False
        Case [B][COLOR="Red"]3[/COLOR][/B]
          .CommandButton8.Enabled = False
          .CommandButton10.Enabled = True
          .CommandButton14.Enabled = True
          .CommandButton9.Enabled = True
          .CommandButton11.Enabled = False
        Case [B][COLOR="Red"]4[/COLOR][/B]
          .CommandButton8.Enabled = True
          .CommandButton10.Enabled = True
          .CommandButton14.Enabled = True
          .CommandButton9.Enabled = True
          .CommandButton11.Enabled = True
      End Select
    End With

A +, et bonne journée.

Cordialement.
 

baclet

XLDnaute Nouveau
Re : inhibe des boutons sous conditions.

merci à toi cela marche tres tres bien.
j'ai bien avance grace à toi mais j'ai un autre souci
1) j'ai sur ma page d" accueil" plusieurs boutons j'aimerai que quand j'active ma feuille tous les boutons soient visible avant l'apparition du mot de passe.
2) d'autre part je voudrait que quand je clique sur le bouton "changer d'utilisateur" tous les controles de usf "users" se mettre à zero c'a dire qu'ils ne garde pas les anciens mots de passe ni le nom de l'utilisateur.
3) enfin sur le clic du bouton " nouvel article" l'usf qui s'ouvre droit me permettre d'entrer des articles et les ajouter à la suite dans ma feuille "interventions" avec le bouton " valider".
NB: le mot de passe est "ADMINISTRATEUR le password "CDE"
Merci d'avance
 

Pièces jointes

  • gestion mag.zip
    44.8 KB · Affichages: 32
  • gestion mag.zip
    44.8 KB · Affichages: 34
  • gestion mag.zip
    44.8 KB · Affichages: 36

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

1) j'ai sur ma page d" accueil" plusieurs boutons j'aimerai que quand j'active ma feuille tous les boutons soient visible avant l'apparition du mot de passe.

Sur ton fichier joint, il n'y a que 2 boutons sur la feuille "accueil" : <Nouvel article> et <Changer d'utilisateur>. Les autres ont disparu, et l'application plante au démarrage.

2) d'autre part je voudrait que quand je clique sur le bouton "changer d'utilisateur" tous les controles de usf "users" se mettre à zero c'a dire qu'ils ne garde pas les anciens mots de passe ni le nom de l'utilisateur.

Pour celà, il suffit de transférer le code de l'événement "UserForm_Initialize" dans l'événement "UserForm_Activate". Ainsi, le code se déroulera à chaque affichage du formulaire, et la limitation aux 3 essais également. Voir ci-dessous :

Code:
Private Sub UserForm_Activate()
    ' Essai saisie nom Utilisateur
    EssaiU = 0
    ' Essai saisie Mot de Passe
    EssaiM = 0
    Me.[COLOR="Red"][B]TBNom[/B][/COLOR].Value = ""
    Me.TBMdP.Value = ""
    Me.TBNom.SetFocus
End Sub

Private Sub UserForm_Initialize()


End Sub

Pour le 3ème point, j'y regarderai quand le fichier sera opérationnel.

A bientôt.

Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

Bonjour à toi
desole pour le fichier je l'envoie, j'ai reparer les bugs et bien avancé
encore merci pour ton aide precieuse
à bientot

Bonjour baclet,

Désolé à mon tour, mais il m'est impossible d'ouvrir ton fichier.

Un message m'informe qu'il qu'il est endommagé ou que le format est inconnu.

Si tu es passé par "Cijoint", peut-être as-tu mal recopié le lien ?

A bientôt.

Cordialement.
 

baclet

XLDnaute Nouveau
Re : inhibe des boutons sous conditions.

voila un nouveau lien avec quelques corrections que j'ai apporte à mon fichier
Mais je bloque toujours sur les memes problemes
bien à vous et bonnes coontinuations.
Cijoint.fr - Service gratuit de dépôt de fichiers
 

Papou-net

XLDnaute Barbatruc
Re : inhibe des boutons sous conditions.

voila un nouveau lien avec quelques corrections que j'ai apporte à mon fichier
Mais je bloque toujours sur les memes problemes
bien à vous et bonnes coontinuations.
Cijoint.fr - Service gratuit de dépôt de fichiers

OK, ça marche, j'ai pu ouvrir le fichier.

Par contre, j'aurais besoin que tu me précises certaines choses, car je suis entré dans une nébuleuse. En effet, tu as défini 4 userforms de gestion (presque identiques) :

Lequel faut-il prendre pour la saisie d'un nouvel article ? Actuellement, c'est le premier ("gestion") qui s'ouvre. Je pense que dans ce cas, le nouvel article peut s'inscrire dans une textbox au lieu de la liste déroulante.

Dans quelle feuille le bouton Valider doit-il inscrire le nouvel article : "INTERVENTIONS" ou "Params" ?

Quelle est l'utilité de ces 2 feuilles, identiques à première vue ?

Peux-tu me confirmer si tous les Userforms sont utiles, ou si ce sont des essais ?

Dans l'attente de te lire.

Cordiales salutations.

PS : j'ai remanié la macro événementielle de la liste déroulante, afin d'afficher tous les éléments de l'article sélectionné .

Code:
Private Sub CB_ARTICLES_Change()
Dim Lg As Integer

If Me.CB_ARTICLES.Value <> "" Then 'condition : si CB_ARTICLES n'est pas vide
  With Sheets("Params")
    Lg = Me.CB_ARTICLES.ListIndex + 2
    Me.TB_ELEMENTS.Value = .Cells(Lg, 1) 'affiche le nom de l'élement
    Me.TB_NELEMENTS.Value = .Cells(Lg, 2) 'affiche le code de l'élement
    Me.TB_ARTICLES.Value = .Cells(Lg, 4) 'affiche le code de l'article
    Me.TB_ESPACES.Value = .Cells(Lg, 5) 'affiche l'espace
    Me.TB_ILOTS.Value = .Cells(Lg, 6) 'affiche l'ilot
    Me.TB_STOCK.Value = .Cells(Lg, 7) 'affiche le stock
    Me.TB_REFFAB.Value = .Cells(Lg, 8) 'affiche le fabricant
    Me.TB_FOURNISSEURS.Value = .Cells(Lg, 15) 'affiche le fournisseur
    Me.TB_SORTIE.SetFocus 'place le curseur dans la TB_SORTIE
    
    Répertoire = ThisWorkbook.Path
    If Dir(Répertoire & "\" & Me.CB_ARTICLES & ".jpg") <> "" Then
      Me.Image1.Picture = LoadPicture(Répertoire & "\" & Me.CB_ARTICLES & ".jpg")
      Else
      On Error Resume Next
      Me.Image1.Picture = LoadPicture(Répertoire & "\" & "TRAVAUX.gif")
    End If
    End With
  End If 'fin de la condition
End Sub

Pour simplifier et l'écriture et la lecture du code, J'ai créé une variable "'Lg" qui récupère le numéro de lignes de l'article sélectionné, et jai ajouté la référence de la feuille "Params", sinon la lecture des éléments se faisaient sur la feuille active ("accuei"l en l'occurence),
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12