Intégrer plusieurs tableau distinct dans une même ListBox

Hiei972 - 22 mars 2013 à 16:13
 Hiei972 - 25 mars 2013 à 10:13
Bonjour,

je développe un petit (enfin de moins en moins petit) programme (sous VBA excel 2003) dans le cadre de mon stage et je suis tombé sur un os.

Je voudrai recupperer les données disons

des cellules A1:D10 puis A20:D26 puis A32:D50

et les renvoyer dans une listbox

j'ai fini par trouver une solution avec quelque chose comme ça:


' Déclaration des variables pour les boucles
    Dim i, j, k As Integer

' Déclaration de tableaux
    Dim Tab3, Tab2, Tab1 As Variant
    Dim Tabtot As Variant
        
'Chargement d'une plage de cellules dans chaque tableaux
    Tab1 = Range("A1:D10").Value
    Tab2 = Range("A20:D26").Value
    Tab3 = Range("A32:D50").Value
    
'Définit le nombre de colonnes (basé sur Tab1) pour la ListBox.
   UserForm2.ListBox1.ColumnCount = UBound(Tab1, 2)


''''''''''''''''''''''''''''''''''''''''''''''
'' Exécution du code
''''''''''''''''''''''''''''''''''''''''''''''


ReDim Tabtot(1 To UBound(TabAirbus, 1) + UBound(TabEmbraer, 1), 1 To UBound(TabAirbus, 2)) As Variant

For i = 1 To UBound(Tab1, 1)
    For j = 1 To UBound(Tab1, 2)
        For k = UBound(Tab1, 1) + 1 To UBound(Tab1, 1) + UBound(Tab3, 1)
        
       Tabtot(i, j) = Tab1(i, j)
       Tabtot(k, j) = Tab3(k - UBound(Tab1, 1), j)
       
        Next k
    Next j
Next i

    UserForm2.ListBox1.List = Tabtot


ça fonctionne très bien quand j'ai pas trop de tableau à lier (jusqu'à 4 sur).
Parcontre quand je lie 6 tableau (costo quand même) je bug. je risque d'avoir besoin d'en liéer plus.

Quelqu'un a t'il une idée pour que je mange moins de mémoire et que je ça passe ?

Une idée de code plus simple serai aussi la bien venu.

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 mars 2013 à 17:04
Bonjour,
Il faut deviner d'où sortent tes tableaux ici mentionnés ?
ReDim Tabtot(1 To UBound(TabAirbus, 1) + UBound(TabEmbraer, 1), 1 To UBound(TabAirbus, 2)) As Variant
et le rapport qu'ils ont avec Tab1; Rab12 et Tab3 ?
Je ne sais plus où j'ai mis ma boule de cristal.
Je vais donc de ce pas à la pêche au bar.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 mars 2013 à 17:07
Une seconde raison de te préférer la pêche au bar :
Tapez le texte de l'url ici.
Cela t'amuse peut-être, de multiplier tes demandes ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
désolé j'ai oubié de modifier

Tab1 = TabAirbus
Tab3 = TabEmbraer
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 mars 2013 à 18:49
L'orage m'a chassé de la pêche.
Tu veux de l'aide ? OK === >> sors de cette discussion et continue dans l'autre, ouverte sur le même sujet et laissée en plan, hein !
Ce ne sera qu'après cette marque de bonne volonté et de respect pour ce forum que j'y jetterai un coup d'oeil.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je ne sais pas trop comment on abandonne une discution, mais je suis bien sur disposé à continuer sur l'autre. désolé si je t'ai froissé se n'était pas mon intention, je voulais juste renommé avec un titre plus explicite mon sujet et comme je n'ai pas reussi j'ai créé un nouveau.
Cela étant dis continuons la discution sur le poste d'origine, si tu es toujours disposé à m'aider.
0
Rejoignez-nous