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 :

Formulaires : contrôles dans une variable [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Par défaut Formulaires : contrôles dans une variable
    Bonjour,
    Je bute sur un pb depuis plusieurs jours.
    Dans un usf appelé par un autre, j'essaye de remplir une chaîne avec des valeurs de listbox.
    Mes 4 listbox comportent des rowsources sur 2 colonnes qui s'affichent correctement sur 2 colonnes (un libellé et un code correspondant)
    (Columncount :2 , Boundcolumn:2, textcolumn: 1, ColumnWidth : 100pt ; 20pt...)
    Je comptais donc récupérer les morceaux de chaîne par la fonction .value, mais j'obtiens une chaîne nulle,
    il en est de méme par la fonction .Text...
    Je boucle sur mes listbox avec le code joint, en commentaires quelques MsgBox utilisés pour débogage.
    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Je n'ouvre pas les fichiers joints avec macros...
    Le texte d'une listbox se lit comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Listbox1.List(Ligne, Colonne)
    La ligne peut être définie avec ListIndex si c'est la ligne sélectionnée qu'on veut lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Listbox1.List(Listbox1.Listindex, Colonne)
    PS: si tu veux recevoir de l'aide, évite de joindre des fichiers et inscris ton code dans le message en utilisant le bouton # pour le formater.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Par défaut userform .valeur d un contrôle
    Merci Parmi,
    Effectivement, sans le code vba joint il était plus difficile de voir mon problème.
    Le voici joint dans le texte...
    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
    24
    25
    26
    27
    28
     
    Private Sub Retour_Click()
    Dim Ctrl As Control, i As Byte, Premier As Boolean
    Dim Valeur As String
        GrilleSaisie.CIM10_DR = ""
        Valeur = ""
     
        Premier = True
        For Each Ctrl In Me.Controls
            If TypeOf Ctrl Is MSForms.ListBox Then
    ' MsgBox Ctrl.Name ' affiche correctement le non de la listbox
    ' MsgBox Ctrl.RowSource ' affiche correctement ma définition de la source (dynamique, définie dans le tableur)
                For i = 0 To Ctrl.ListCount - 1 ' fonctionne correctement : détecte les lignes sélectionnées
                    If Ctrl.Selected(i) = True Then
    ' MsgBox i ' affiche le bon listindex
                        If Premier = False Then Valeur = " / " ' passe
    ' MsgBox Ctrl.Value ' -> erreur me renvoie une chaine "" nulle
    ' Msgbox Ctrl.Object.Value ' idem
                        Valeur = Valeur & Ctrl.Object.Value
                        GrilleSaisie.CIM10_DR = GrilleSaisie.CIM10_DR & Valeur ' chaine du formulaire appelant.
                        Premier = False
                    End If
                Next
            End If
        Next
        Unload Me
        GrilleSaisie.Show
    End Sub
    Comme tu peux constater, je récupère sans problème les attributs ".name" et ".RowSource", mon compteur i s'arrète correctement sir les items sélectionnés de la listbox.
    En revanche : j'obtiens des chaînes vides pour les ".value" et ".Text"

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Par défaut userform un contrôle dans une variable
    Re-bonjour parmi,
    Pour compléter; la solution que tu proposes,
    qui donne en vba :fonctionne !!!
    J'avais essayé :qui m'avait renvoyé une erreur 424 (objet) !!!
    Merci encore de ton aide.

  5. #5
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Comme dit par parmi il te faut récupérer la valeur grâce à List(i) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        If Premier = False Then Valeur = Valeur & " / " ' passe
    ' MsgBox Ctrl.Value ' -> erreur me renvoie une chaine "" nulle
    ' Msgbox Ctrl.Object.Value ' idem
                        Valeur = Valeur & Ctrl.List(i)
                        Premier = False
                    End If

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Par défaut listbox dans une variable
    Merci à tous,
    Pb résolu.

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

Discussions similaires

  1. [AC-2007] Récupérer le nom d'un contrôle dans une variable.
    Par gerarddurand dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/05/2012, 11h26
  2. chercher les contrôles dans un usf lorsque son nom est dans une variable
    Par Jean-Pierre49 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/04/2008, 08h14
  3. Réponses: 3
    Dernier message: 05/02/2007, 09h41
  4. [formulaire] Récuperer la valeur d'un select dans une variable
    Par Despec dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/11/2006, 15h45
  5. Réponses: 2
    Dernier message: 18/05/2006, 15h28

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