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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
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.