[VBA] Variable "raccourci" vers une ListBox

MrOizo

XLDnaute Nouveau
bonjour tout le monde !

Je suis nouveau sur le forum et je seche vraiment sur un probleme en VBA

J'ai cherché sur le forum une solution mais je pense que je dois pas employer les bons mots clés ...

mon probleme est le suivant :

j ai deux listbox :

Feuil1.ListBox1
Feuil1.ListBox2

selon un parametre, il faut traiter la listBox1 puis la ListBox2, ou bien le contraire

ce que je souhaite c'est pouvoir mettre dans une variable les ListBox et traiter la variable comme on peut traiter une ListBox

C'est a dire en gros :
ListA=Feuil1.ListBox1
ListB=Feuil1.ListBox2
(ou le contraire si je dois les traiter dans l'autre ordre)

et ensuite je traite les ListA et ListB dans cette ordre la
et que je puisse faire des ListA.Value, ListA.AddItem, etc...

est ce possible ?
si oui quel doit etre le type de ListA ?
J'ai essayé en tant que ListBox
mais quand je fais
ListA=Feuil1.ListBox1

il me sort comme erreur :

Utilisation incorrecte de Null

et en effet en passant la souris sur Feuil1.ListBox1 il me dit qu il a comme valeur "Null"

Merci d'avance pour votre aide !
Greg
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Voila c'est exactement ca !

Pour plus de precisions :

ListBox1 et ListBox2 sont configurés a choix multiples

et ca fait :

Code:
[COLOR="Blue"]Sub OrdreDesListbox()
If Feuil1.OptionButton1 = True Then
ListeA = ListBox1
ListeB = ListBox2
Else
ListeA = ListBox2
ListeB = ListBox1
End If

For i = 0 to ListeA.ListCount - 1
    If ListeA.selected(i) = True Then
        [COLOR="SeaGreen"]'traitement de ListeA.List(i)[/COLOR]
         For j=0 to ListeB.ListCount - 1
             If ListeB.selected(i) = True Then
             [COLOR="SeaGreen"]'traitement de ListeB.List(j)[/COLOR]
             End If
         Next j
    End If
next i

End Sub[/COLOR]

On voit mieux l importance de l'ordre entre les deux ListBox

Merci !

PS : merci ;) et pour moi c'est pas tout de suite la nuit ;-)
 
Dernière édition:

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : [VBA] Variable "raccourci" vers une ListBox

Bonjour

essaies ainsi

Code:
Private Sub CommandButton1_Click()
Dim ListeA As String
Dim ListeB As String
Dim i As Byte, j As Byte

If OptionButton1 = True Then
    ListeA = ListBox1.Name
    ListeB = ListBox2.Name
Else
    ListeA = ListBox2.Name
    ListeB = ListBox1.Name
End If

For i = 0 To Controls(ListeA).ListCount - 1
    If Controls(ListeA).Selected(i) = True Then
        'traitement de ListeA.List(i)
         For j = 0 To Controls(ListeB).ListCount - 1
             If Controls(ListeB).Selected(i) = True Then
             'traitement de ListeB.List(j)
             End If
         Next j
    End If
Next i

End Sub

Bon courage
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : [VBA] Variable "raccourci" vers une ListBox

Re

Et bien perso j'avais compris comme toi José qu'il avait réussi et avec le dernière intervention je me suis dit qu'en fait il devait toujours chercher

Y a plus qu'à attendre pour voir

Bonne journée
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Bonjour José et Pascal,

non non je n'avais pas reussi
tu me demandais si tu avais bien compris mon probleme et je repondais que c'etait bien ca en donnant plus de details sur le code

mais la partie d'affectation de ListA et ListB ne marchait pas c'etait juste une maniere de montrer ce que je souhaitais faire ;)


Par contre je viens d'essayer ta méthode Pascal, mais la fonction Controls() n'est pas définie chez moi ...
je dois activer une référence dans le menu Outils de VBA pour qu'elle soit prise en compte ?

Merci !
A bientot
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : [VBA] Variable "raccourci" vers une ListBox

Re

Tu as un message d'erreur ??

Regarde dans la liste si il y en a eu manquante

A titre indicatif j'ai fait un test avec des listbox et j'ai cela de cocher en références

Visual Basic for applications
Microsoft excel 9.0 Object library
OLE AUtomation
Microsoft Office 9.0 Object Library
Microsoft Forms 2.0 Object Librrary

Le 9.0 peut varier chez toi car il correspond à la version 2000

Bonne journée
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Re

Je suis sur excel 2003 et j'ai toutes ces références cochées
ma version est la 11.0

L'erreur que j'ai se fait à la compilation :

Erreur de compilation :
Sub ou Function non définie

et il me surligne "Controls"

a tte
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Re

euh non ...

ils sont dans une feuille de calcul redesigné pour que ca ressemble a un formulaire ...

C'est d'ailleurs pour ca que leurs noms sont Hoja1.Listbox1
Hoja = Feuille en espagnol (et je suis sur un ordi espagnol)


Pourquoi c'est mal de pas faire de UserForm ?

A vrai dire Excel j'ai appris tout seul a coup d'enregistreur de macro et de site internet alors je me suis pas trop interessé aux UserForm vu que je savais pas trop comment s'en servir, pourquoi,etc etc...

En restant sur la feuille de calcul, c'est pas possible d'adapter ce code ?

Merci !

A tte
Greg
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Ah bah en effet ca marche ... !! Merci beaucoup José !!

C'est bizarre car je me rappelle avoir essayé hier avec les "Set"


aah

je crois voir pourquoi j'avais pas continuer avec les sets

En fait je vous ne l'avais pas dit, mais je cachais une 3eme ListBox ...

Mon code c'est ca :

Code:
    Dim ListA, ListB, ListC As ListBox
    If Hoja1.OptionButton5.Value = True Then
        Set ListA = Hoja1.ListBox3
        Set ListB = Hoja1.ListBox2
    Else
        Set ListA = Hoja1.ListBox2
        Set ListB = Hoja1.ListBox3
    End If
    Set ListC = Hoja1.ListBox1

Et bizarrement, Set ListA et Set ListB passe sans probleme, mais il me met une erreur sur Set ListC en me disant "incompatibilité de type"

****

Apres des tests :
si je fais :
Dim ListA,ListB As ListBox
Dim ListC As ListBox
Il met l'erreur sur Set ListB

et si je fais

Dim ListA As ListBox
Dim ListB As ListBox
Dim ListC As ListBox

il met l'erreur sur ListA

D'où ça peut venir ?

a tte
Greg
 

MrOizo

XLDnaute Nouveau
Re : [VBA] Variable "raccourci" vers une ListBox

Hello !

Deja je ne suis pas espagnol :rolleyes:
mais Francais et en stage en colombie ;-)

alors j ai mis des As Variant et apperement ca marche !

je ne m'etais pas encore attaqué au code qui suivait donc je vais bien voir mais a priori ca a l'air de marché !

en tout cas merci bcp !!!!

Greg as español ;)
 

Discussions similaires

Réponses
8
Affichages
354
Réponses
25
Affichages
603

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25