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 :

Verrouiller saisie d'une textbox qui récupère valeur d'une listbox [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Apprenti Ingénieur énergie électrique
    Inscrit en
    Novembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti Ingénieur énergie électrique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2020
    Messages : 9
    Par défaut Verrouiller saisie d'une textbox qui récupère valeur d'une listbox
    Bonsoir à toutes et à tous,

    Veuillez m'excuser par avance pour mon médiocre niveau en VBA et aussi pour mon intitulé qui n'est peut-être pas très clair. J'ai commencé un projet dans le cadre de mon activité professionnel en autodidacte, en surfant sur la toile, grâce à l'aide d'expert passionné comme certains d'entre vous. Mon projet est composé d'une feuille : base de données composée de 15 colonnes dont 14 sont récupérées dans une listbox multicolonnes.

    Lorsque je sélectionne une ligne dans ma listbox, les données de mes 14 cellules sont récupérées par 11 label et 3 textbox. Mon but est de pouvoir modifier certaines information de ma base de données via ce formulaire, jusqu'à là ça va. Mon problème est que je souhaiterai que la saisie dans ma textbox12 (colonne 12) soit verrouillé lorsqu'une valeur (non nul, bien sûr) s'y trouve.

    J'ai d'abord essayé via une msgbox qui afficherait un message d'erreur lors de la validation de la modification mais il reste possible de supprimer la valeur de cette textbox et ainsi valider la modif.

    Voilà où j'en suis arrivé : soit j'arrive à verrouiller la textbox12 à chaque fois, soit jamais. Voici dessous mon code, je ne sais pas si j'ai la bonne méthode pour le joindre au forum, je m'en excuse par avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub ListBox1_Click()
      
      For i = 1 To NbCol
    
      Me("textbox" & i) = Me.ListBox1.Column(i - 1)
      
      Next i
    
      Me.Enreg = Me.ListBox1.Column(i - 1)
    
    
      
       If ListBox1.List(ListBox1.ListIndex, 12) <> "" Then
       
       TextBox12.Locked = False
       
       Else
       
       TextBox12.Locked = True
       
       End If
      
    End Sub
    Je vous remercie par avance pour votre aide qui me sera plus que précieuse !

    Bonne soirée à tous

    Maxgui

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    Citation Envoyé par Maxgui Voir le message
    soit j'arrive à verrouiller la textbox12 à chaque fois, soit jamais.
    Je pense que ta ligne de test devrait être comme ceci car tu ne testes pas la douzième ligne de ta liste mais la douzième colonne de la ligne sélectionnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If TextBox12 <> "" Then

  3. #3
    Membre habitué
    Homme Profil pro
    Apprenti Ingénieur énergie électrique
    Inscrit en
    Novembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti Ingénieur énergie électrique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2020
    Messages : 9
    Par défaut
    Bonjour Anasecu,

    Mille Mercis !! je suis passé par tellement de choses complexes (pour moi ). La solution me parait tellement simple et ça marche ! Par contre j'avais fait une inversion dans les fonctions locked du code. Le code qui fonctionne pour mon problème est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       If TextBox12 <> "" Then
     
       TextBox12.Locked = True
     
       Else
     
       TextBox12.Locked = False
     
       End If

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour éviter le bloc If/End If

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox12.Locked = TextBox12.Text <> ""

  5. #5
    Membre habitué
    Homme Profil pro
    Apprenti Ingénieur énergie électrique
    Inscrit en
    Novembre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti Ingénieur énergie électrique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2020
    Messages : 9
    Par défaut
    Bonjour Joe.levrai,

    Encore plus simple ! Je te remercie pour l'info. Fascinant le codage ...

    Je mets le post en résolu.

    A bientôt sûrement et merci pour vos supers aides !

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Il faut juste comprendre que l'interpréteur va lire de gauche à droite

    Donc par décomposition

    1) TextBox12.Locked = [TextBox12.Text <> ""]
    ==> évaluation de l'inégalité à gauche

    2) TextBox12.Locked = [True/False]

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/01/2019, 23h20
  2. Forcer la saisie d'une valeur numerique dans Textbox
    Par rampage92 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2016, 23h14
  3. [Débutant] Créer autant d'enregistrements que la valeur saisie dans une textbox
    Par AfroDurf dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 16/06/2015, 19h13
  4. Saisie dans tableau plusieurs fois meme valeur d'une textbox
    Par marsutof dans le forum Général VBA
    Réponses: 1
    Dernier message: 05/03/2015, 00h14
  5. Zone de saisie dans une listbox
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/03/2006, 11h54

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