VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucle

clochete

XLDnaute Nouveau
Bonjour le Forum,

Je souhaite alimenter un tableau dynamique à 2 dimensions avec les résultats d'une boucle. Il s'agit d'une mini RechercheV qui récupère et concatène plusieurs colonne d'un coup avec un séparateur. Je redivise ensuite cette chaîne avec la fonction split et je voudrais alimenter mon tableau avec le résultat de cette division. Le but étant de récupérer par la suite le tableau sur la feuille.

Après les boucles, j'arrive à définir la dimension de mon tableau mais je n'arrive pas à l'alimenter.

Je joins un fichier pour plus de compréhension.

Il y a certainement un moyen plus rapide d'arriver au résultat souhaité mais la logique doit m'échapper.

Merci d'avance pour l'aide que vous pourrez m'apporter.

:confused:
 

Pièces jointes

  • AlimTab.xlsm
    26.1 KB · Affichages: 99

Staple1600

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Bonsoir à tous


Pas trop compris ce que tu veux faire, ni pourquoi tu ne mets toute ta plage directement dans un array
(voir ce petit exemple en guise d'illustration ci-dessous basé sur ton fichier joint)
Code:
Sub test2()
Dim t, i As Byte, x
t = [A1].CurrentRegion.Value
x = t(5, 1)
MsgBox x
MsgBox Application.Index([A1].CurrentRegion, Application.Match(x, Range("A1:A13"), 0), 5)
End Sub
 

clochete

XLDnaute Nouveau
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Bonjour Staple1600,

Merci de ta réponse :D

Je suis désolé, je ne comprends pas. Je ne suis pas très doué en manipulation de tableau. Mes valeurs cherchées et ma table matrice ne sont pas forcément dans le même ordre d'où mes boucles. Je dois ensuite récupérer les valeurs des colonnes selon l'index et le nombre spécifiés pour ensuite les renvoyer sur ma feuille au départ de la cellule active. D'où ma construction d'un tableau dynamique (que par ailleurs je n'arrive pas à alimenter:().

Je ne comprends pas comment appliquer ton illustration. Peux-tu m'expliquer svp ? Je suis larguée.

Merci pour tes réponses. :eek:
 

Staple1600

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Re

clochete
Comme nous sommes désormais deux à ne pas comprendre, attendons qu'un troisième larron se joigne à nous pour démêler cet écheveau d'arrays sur le côté ;)

PS: De toute façon, en ce qui me concerne ma couette trépigne d'impatience...
 

Dranreb

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Boujour.

Il me semble que Staple veut seulement dire que vous auriez tout intérêt à commencer par charger au moyen d'une seule instruction toutes vos données dans un tableau de Variant (même s'il préfère le stocker aussitôt dans un unique Variant) pour optimiser un traitement de ce genre dont la finalité visée serait compréhensible par quelqu'un d'autre que vous… et par vous aussi d'ailleurs pour commencer…
 

Staple1600

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Bonjour troisième larron (Dranreb ;) )

Tu as compris l’essentiel de mon précédent message ;)
(ouf je me sens moins seul)
vous auriez tout intérêt à commencer par charger au moyen d'une seule instruction toutes vos données dans un tableau de Variant

Bon maintenant il nous reste à comprendre après quelle idée court clochete ;)
 

Paf

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Bonjour clochete, Staple1600, Dranreb

Je vais tenter de faire la cinquième roue du carrosse.

Pas compris grand chose!

Suivant le tableau
A1:H13 de la feuille Feuil1 et le code de la Sub test(), pour chaque cellule de la colonne H si une cellule de la colonne A est identique, on veut récupérer les cellules B,C et D de la ligne où A est identique.
En l'occurrence le résultat serait les valeurs de B1: D13, ce que ne confirme pas l'exemple fournit en A20:A30.

Dans l'attente de validation où d'invalidation de mon hypothèse...

A+
 

clochete

XLDnaute Nouveau
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Bonjour à tous,

Merci de vos réponses.

Paf, c'est exactement ça (la plage A20:A30 n'intervient pas, j'ai oublié de la retirer. Désolé :eek:). Mon but est de faire une RechercheV qui récupère plusieurs colonnes d'un coup. Il semblerait que je n'utilise pas la bonne approche. J'ai commencé par la fin. :rolleyes:

Dranreb, Staple1600, J'ai saisie, je charge tout mon fichier source dans un tableau et ensuite je travaille directement dans ce tableau pour récupérer les valeurs qui m'intéressent. Du coup ton illustration devient limpide Staple. C'était pourtant clair.
Faut que j'arrête de bucher les samedis soir après 23 h :cool:

Merci à tous pour votre aide :D
 

Paf

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

Re bonjour

une proposition qui répond peut-être à l'attente :
Code:
sub clochete()
Dim TabloIni, TabloFin(), TabloE
Dim DerLig As Long
Dim i, j, k

'DerLig = Range("A" & Rows.Count).End(xlUp).Row supprimer la ligne suivante si rien après tableau
DerLig = 13

k = 0
TabloIni = Range("A1:D" & DerLig)
TabloE = Range("H1:H" & DerLig)

For i = LBound(TabloE) To UBound(TabloE)
    For j = LBound(TabloIni) To UBound(TabloIni)
        If TabloIni(j, 1) = TabloE(i, 1) Then
            k = k + 1
            ReDim Preserve TabloFin(1 To 3, k)
            TabloFin(1, k) = TabloIni(j, 2)
            TabloFin(2, k) = TabloIni(j, 3)
            TabloFin(3, k) = TabloIni(j, 4)
            
        End If
    Next
Next

' G18 = coin supérieur gauche du tableau où seront copiées les données
[G18].Resize(UBound(TabloFin, 2), UBound(TabloFin, 1)).Value = Application.Transpose(TabloFin)
End Sub

seul souci , les doublons de la colonnes H. par exemple arbre contenu deux fois en colonne H et en colonne A, renverra 4 lignes (une suppression de doublons colonne H serait sans doute nécessaire)

A+
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : VBA - Remplir un tableau dynamique à 2 dimensions avec les résultats d'une boucl

salut

autre exemple (avec la fonction Tableau). Supprimer la dernière partie si... les doublons sont utiles.
 

Pièces jointes

  • Concatene Split(VBA).xlsm
    22.9 KB · Affichages: 141

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 226
Membres
103 159
dernier inscrit
FBallea