1 pièce(s) jointe(s)
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.
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:
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"
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é :
Code:
Ctrl.list(i,1).Value
qui m'avait renvoyé une erreur 424 (objet) !!!
Merci encore de ton aide.:D
listbox dans une variable
Merci à tous,
Pb résolu.:D