[RESOLU]création tableau (combinaison array et dico)

cathodique

XLDnaute Barbatruc
Bonjour,

Dans la suite de mon précédent post, je voudrai créer à partir d'un tableau et d'un dictionnaire un nouveau tableau.

le tableau de départ Tr a 4 lignes et 2 colonnes, le dico contient 3 dates. le but est de distribuer ces dates aux 4 lignes du tableau Tr. Le tableau final aura 12 lignes et 3 colonnes.
Une image vaut mieux qu'un long discours.

resultat.jpg
En vous remerciant par avance.
 

Pièces jointes

  • resultat.jpg
    resultat.jpg
    37.8 KB · Affichages: 61
  • Multiplier nbLigne.xlsm
    64.6 KB · Affichages: 32
Dernière édition:

gosselien

XLDnaute Barbatruc
Re : création tableau (combinaison array et dico)

re bonjour,

tu ne donnes pas le lien entre BD et date ... comment lier AB-BB et une date , quelle date ? sur base de quoi ?
ce serait les 3 même date tout le temps ?

P.
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : création tableau (combinaison array et dico)

Bonjour cathodique, gosselien

a priori en rajoutant ce code en fin de Sub test()

Code:
Dim TabFin(), Dat, x, y

ReDim TabFin(1 To dico.Count * Ddate.Count, 1 To 3)
For i = 1 To dico.Count
    For Each Dat In Ddate.keys
        x = x + 1
        y = y + 1
        If y > dico.Count Then y = 1
        TabFin(x, 1) = Tr(y, 0)
        TabFin(x, 2) = Tr(y, 1)
        TabFin(x, 3) = Dat
    Next
Next

Sheets("resultat").[I2].Resize(UBound(TabFin), 3) = TabFin

A+
 

cathodique

XLDnaute Barbatruc
Re : création tableau (combinaison array et dico)

Bonsoir,

Merci à vous deux c'est très gentil de votre part.
Le code de Paf répond exactement au résultat que j'attendais. C'est absolument impeccable.
Je dois maintenant, comprendre puis adapter à mon fichier.

Bonne Soirée à vous.
 

laetitia90

XLDnaute Barbatruc
Re : création tableau (combinaison array et dico)

bonjour tous :):):) ou rebonjour

on pourrait ecrire le tablo final directement ???
attention il faut activer la ref microsoft scrinpting runtine.. passe pas une liaison tardive plus rapide enfin pas toujours!!

Code:
Dim m As New Dictionary, n As New Dictionary, t(), t1(), w As Long, i As Long, x As Long, z, k
Sub es()
 t = Feuil3.Range("a1:A" & Feuil3.Cells(Rows.Count, 1).End(3).Row)
 For i = 1 To UBound(t): n(t(i, 1)) = "": Next i
 k = n.keys
 t = Feuil1.Range("a2:f" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
 ReDim t1(1 To UBound(t), 1 To 6)
 For i = 1 To UBound(t)
 z = t(i, 3) & t(i, 4)
 If Not m.Exists(z) Then
 m.Add z, z
 For w = 0 To n.Count - 1
 x = x + 1
 t1(x, 1) = t(i, 3): t1(x, 2) = t(i, 4): t1(x, 3) = k(w)
 Next w
 End If
 Next i
 Feuil2.[i2].Resize(x, 3) = t1
 Set n = Nothing: Set m = Nothing: Erase t, t1: x = 0
 End Sub
 

cathodique

XLDnaute Barbatruc
Re : création tableau (combinaison array et dico)

Très gentil de ta part Laetitia. Mes connaissances sont des plus basiques et ça fait un bon bout de temps que j'essaie de trouver une solution à un problème sur une autre discussion.
J'ai pas mal chercher, j'ai surtout parcouru les exemples de Boisgontier (où j'ai retrouvé tes traces).
J'avoue que ça me dépasse. Donc je tente de solutionner d'après un raisonnement très simpliste.
Au train où ça va, j'ai peur de me retrouver avec une procédure d'1 Km.
Je teste et mets ton code dans mes archives, on ne sait jamais. Mais doute de pouvoir l'adapter à mon besoin aujourd'hui.
 

Discussions similaires