IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

association d'une constante et de listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 30
    Par défaut association d'une constante et de listbox
    Bonjour,

    Malgré les recherches faites sur certains tutoriels, je n'arrive pas à savoir si je peux associer une constante avec la valeur d'un listbox. En effet dans le cadre d'un formulaire, je demande à l'utilisateur autorisé de s'identifier par le biais d'une liste box. Pour forcer la sélection d'une valeur "z" j'ai mis dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private Sub userform_initialise ()
    .....
    With avocat immobilier
    .listPerslot5.value = "z"
    et dans la validation de la saisie du formulaire j'avais mis au départ une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Valider_Click()
    Dim collaborateur as string
    if collaborateur ="Z" then
    MsgBox "Vous devez sélectionner votre nom"
    ListPerslot5.SetFocus
    exit sub
    end if 
    .....
    Ceci ne fonctionnant pas systématiquement, je m'étais dit que je pourrais peut-être non pas mettre une variable mais une constante mais le code suivant n'est pas accepté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cons Collaborateur = ListPerslot5.value
    if Collaborateur = (Null) or (empty) or ("Z") then 
    ........
    sans me permettre de savoir si la dernière ligne de codes est bonne ou non le système me refuse d'associer la constante avec la valeur de LisPerslot5.

    Je reste persuadé qu'il doit y avoir des solutions surtout plus simples et qui fonctionnent.

    C'est pourquoi, je remercie toute personne qui prendra le temps de me répondre et de m'expliquer mes erreurs.

    Cordialement

    Guy

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Par défaut
    Une constante est une valeur constante...
    Si tu y affecte le contenu d'une textbox, cette valeur peut varier, donc elle n'est plus constante. CQFD.

    Pour forcer un utilisateur à s'identifier, c'est à dire tester si une textbox ne contient rien, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if textbox_collaborateur="" then
      MsgBox "Vous devez sélectionner votre nom"
    end if
    JM

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 30
    Par défaut oui mais il ne s'agit pas d'un textbox mais d'un listbox
    Je te remercie de ta réponse mais avec la solution d'un texbox, l'utilisateur peut mettre n'importe quelle valeur et pas forcément son nom qui doit être contenu dans une liste de personnes autorisées

    Cordialement
    GUY 59960

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    A supposer que l'on puisse le faire, ce qui n'est pas le cas, cela supposerait que ce serait toujours le même utilisateur qui ouvre le fichier. Donc, pourquoi créer une liste puisque de toute façon, l'utilisateur ne pourra jamais choisir autre chose que la constante...

    A mon avis, ton problème est mal posé. Peux-tu expliquer en français ce que tu souhaites réaliser? C'est parfois la façon la plus simple de laisser le maximum de pistes ouvertes.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 30
    Par défaut
    Bonjour,

    Le projet à développer sous excel est le suivant :

    Pour un établissement public, donc soumis au code des marchés publics, il a été décidé de mettre à la disposition de certains juridiques ( pouvant travailler dans de nombreux domaines du droit comme le droit fiscal, droit des sociétés, droit pénal, droit immobilier et ....) un fichier unique excel à partir duquel ils doivent choisir l'avocat afin de lui adresser le nouveau dossier dont il s'agit. Le choix de l'avocat s'impose lot par lot selon un ordre précis à respecter; chacun des lots étant des lots multi-attributaires.

    Cela suppose donc :

    Un fichier excel unique accessible par un seul juriste en même temps (ce qui sera bien le cas).
    Des accès autorisés à certains juristes et non à tous (notamment pour des raisons de confidentialité de certaines affaires traitées). C'est pourquoi j'avais imaginé qu'ils puissent s'identifier en sélectionnant leur nom par le biais d'une listbox. Pour éviter que par oubli, ils laissent sélectionner un nom qui ne serait pas le leur, j'ai imaginé de mettre un utilisateur appelé Z qui s'affichait dès l'ouverture du formulaire.

    Contrairement aux variables dont la valeur peut changer pendant le déroulement du programme et ce sans une quelconque manifestation d'un utilisateur ou développeur, pour les constantes, je pensais que l'on pouvait attribuer une valeur pouvant changer en fonction de certaines circonstances voulues par l'utilisateur ou le développeur.

    J'espère m'être exprimé cette fois-ci plus correctement

    Cordialement

    Guy

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu peux utiliser ceci, dans le code du userform, en adaptant les noms à ta situation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
      ComboBox1.Text = "z"
    End Sub
    Cela dit, n'oublie pas qu'il suffit de désactiver les macros pour que ton classeur puisse être ouvert sans passer par ton code...

    Un classeur Excel n'est pas du tout le bon outil pour réaliser ce que tu souhaites obtenir, en fonction notamment du niveau de sécurité et de confidentialité dont tu parles.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Par défaut
    Citation Envoyé par guy59960 Voir le message
    Je te remercie de ta réponse mais avec la solution d'un texbox, l'utilisateur peut mettre n'importe quelle valeur et pas forcément son nom qui doit être contenu dans une liste de personnes autorisées

    Cordialement
    GUY 59960
    Cette solution fonctionne aussi avec une combobox ou une listbox
    Mais si tu indiques dans une listbox tous les noms qui peuvent se loguer, qu'est-ce qui empêchera les utilisateurs de se connecter avec un faux nom ?

    JM
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plage associative dans une ListBox
    Par danbo52 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/02/2010, 06h56
  2. récupérer le contenu de listbox associe a une groupbox
    Par MrRebel dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 20/07/2009, 16h14
  3. ajout d'une constante dans un select
    Par Shabata dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 18h24
  4. Réponses: 10
    Dernier message: 19/02/2004, 12h58
  5. Partage d'une constante entre 2 fichiers en C
    Par elsargento dans le forum C
    Réponses: 6
    Dernier message: 29/09/2003, 22h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo