VBA - Utiliser la fonction Array pour une ComboList

Bonjour tout le monde,

Alors voila j'ai un problème avec un programme que je suis entrain de développer et je cherche à utiliser la Fonction Array pour une liste de données.

La chose est simple : de base j'avais utilisé la fonction Array de cette manière :

Par la suite j'ai mes les donnée de shs par exemple dans une ListBox directement lié à un Excel et du coup j'ai changé pour faire :

cbs = Array(ListBox1)
shs = Array(ListBox1)

Mais à priori ça ne marche pas. Auriez-vous une alternative svp ?

PS: Je suis nouveau dans la programmation.

Je vous remercie d'avance

Voici le code

Private Sub Import_Click()

    ' two arrays they must be in the same order.  ie the third checkbox in cbs is associated
    ' with the third sheet name in shs
    cbs = Array(ListBox1)
    shs = Array(ListBox1)

    Dim j
    ReDim Arr(0)
    For j = 0 To UBound(cbs)    'Build an array of selected sheet names
        If cbs(j, 2) = True Then
            Arr(UBound(Arr)) = shs(j, 2)
            ReDim Preserve Arr(UBound(Arr) + 1)

        End If
    Next j

Dim i

Bonjour,

Essayez :

'Public Cbs as Variant

With Usf
         Cbs = .ListBox1.Column
End With

ça me sort une erreur d'exécution. Je dois spécifier de quelle colonne il s'agit non ?

ca

Vous avez déclaré votre variable ? Votre ListBox est chargée ?

Oui j'ai déclaré les variables plus haut. La ListBox 1 est toujours chargé, en tout cas je lance la Macro, y'a bien les données voulues dans la ListBox1 et je peux les sélectionner.

Elle est constituée de deux colonnes et c'est surtout les valeurs de la deuxième colonne que je veux utiliser.

Pourriez-vous mettre un fichier exemple en ligne ?

11ela-2-0.zip (542.06 Ko)

Voila le fichier, en tout cas merci pour ton aide ! ^^

Salut,

J'ai pas trop compris ce que tu veux faire mais pour affecter une ListBox à une variable utilises la propriété List

Private Sub UserForm_Initialize()
    With Me
        .ListBox1.List = VBA.Array("Option 1", "Option 2", "Option 3", "Option 4")
        cbs = .ListBox1.List
        cbs = Application.Transpose(.ListBox1.List)
    End With
End Sub

si tu mets un point d'arrêt sur la deuxième affectation de cbs regardes ce que cela donne, puis tu fait un pas à pas avec F8

Dans la première affectation de cbs tu as un tableau à plusieurs dimensions

Maintenant deuxième affectation de cbs tableau à une dimension

cela peut-il t'aider ?

Maintenant concernant le code

    With Usf
        cbs = .ListBox1.Column
    End With
    With Usf
        shs = .ListBox1.Column
    End With

Ici usf n'est pas déclaré

    With Me
        cbs = Application.Transpose(.ListBox1.List)
        shs = Application.Transpose(.ListBox1.List)
    End With

Je n'ai pas réussi à charger la matrice comme prévu. Je suis revenu à une solution plus classique.

Ce serait mieux de déclarer toutes vos variables.

12ela-2-0.zip (523.16 Ko)
Rechercher des sujets similaires à "vba utiliser fonction array combolist"