transposer une BD en tableau

erics83

XLDnaute Impliqué
Bonjour,

J'ai une BD avec en colonne : des noms, dates, demi-journées, activités, commentaires.

A la vue des (très bons, encore merci pour cette source d'inspiration !) tutos de JB, j'ai vu qu'il était possible de transposer via Dictionary une BD en tableau :
1027753

Je pourrais ré-utiliser ce code : la colonne "éléments" serait mes "Nom", "propriétés" serait mes dates, les "valeurs" seraient mes activités, mais j'ai un souci avec les demi-journées....j'ai essayé de mettre un d3, mais rien ne fonctionne....

Une petite piste ?

Merci pour votre aide,
 

Pièces jointes

  • Classeurtestdictionary.xlsm
    358 KB · Affichages: 12

erics83

XLDnaute Impliqué
Re-bonjour,

J'ai essayé de contourner le problème en compilant le jour et la demi journée (exemple B2= 43467Matin), mais le code bloquait car le nombre de ligne dépasse l'exemple de JB, j'ai donc mis
VB:
Dim Tbl(1 To 20000, 1 To 20000)
car j'ai environ 20000 lignes, mais Excel plante...et là, je pense que c'est les 20000 colonnes.....mais si je laisse à 100, cela ne fonctionne pas....

Merci pour votre aide,

 

erics83

XLDnaute Impliqué
J'ai aussi essayé de passer par des tableaux (j'ai mis une feuil3 avec tous les noms pour pouvoir boucler dessus) :
Code:
Sub eric()
Dim i As Integer
Dim n As Long

tblnom = Feuil3.Range("A2:A" & Feuil3.[A68000].End(xlUp).Row).Value
tblr = Feuil1.Range("A2:F" & Feuil1.[A68000].End(xlUp).Row).Value
tbldate = Feuil2.Range("D5:TA6")
ReDim tblo(100, 518)

For i = 1 To UBound(tblnom)
    For j = 1 To 518 'UBound(tbldate)
        For k = 1 To UBound(tblr)
         
            If (tblr(k, 1) = tblnom(i, 1) And tblr(k, 2) = tbldate(1, j) And tblr(k, 3) = tbldate(2, j)) Then tblo(i, j) = tblr(k, 4)
         

        Next k
    Next j
Next i
End Sub
Mais c'est "plus long" avec les 3 boucles....

Merci pour votre aide,
 

zebanx

XLDnaute Accro
Re-

Je m'étais trompé de fichier. Là c'est mieux. Problème avec les cellules fusionnées, je vais modifier la formule à partir de votre fichier.
Un instant... voilà.
Une problématique avec un dictionnaire /table comprenant des dates à restituer de BD à tableau vient que dans le tableau on recense toutes les dates de l'agenda. Je passe par des formules pour contourner mais ne travaille pas sur une base aussi grande non plus.

@+
 

Pièces jointes

  • Classeurtestdictionary.xlsm
    345.9 KB · Affichages: 5
Dernière édition:

erics83

XLDnaute Impliqué
Super merci zebanx, c'est parfait !!
Je vais le tester avec mon fichier source, qui comporte plusieurs lignes....pour voir si rapidité OK.....(je viens de faire un test avec mon fichier source et ....c'est nettement plus rapide qu'avec mon code Tblo, et j'ai trouvé sur un site un dictionary qui pourrait correspondre, et...le gain de temps n'est pas super visible...., donc je vais rester sur votre proposition, qui me permettra d'aménager comme je veux ma feuille Planning (car pas très à l'aise avec les Resize...lol)

En plus, je viens de découvrir une utilisation de EQUIV que je ne connaissais pas...:
VB:
EQUIV(1;(nom=$A9)*(date=F$5)*(periode=F$6)
un peu comme du SOMMEPROD....par contre le "1" correspond à quoi ? habituellment j'utilise le duo INDEX/EQUIV et en EQUIV, c'est cellule;plage et là, c'est "1", c'est pour désigner la colonne A (=1) pour la matrice ? c'est ça ?

et toute dernière petite question : la taille (nb lignes) des BD peut varier, y aurait-il un moyen pour que le gestionnaire de noms (=tables) se mette "automatiquement" à jour avec la "bonne" taille ?

Merci pour votre aide,
@+
 
Dernière édition:

zebanx

XLDnaute Accro
Re-

Pas d'explication pour le "1". C'est plus compliqué en utilisant la référence "valeur" classique d'une formule EQUIV classique quand on combine en matriciel avec INDEX.

Pour les champs dynamiques pour les noms, un essai. Ca a l'air de fonctionner.

@+
 

Pièces jointes

  • Classeurtestdictionary.xlsm
    346.1 KB · Affichages: 9

erics83

XLDnaute Impliqué
Bonjour et Merci JB,

Naturellement je rejoins les propos de zebanx !! Merci !

Juste une dernière petite question : lorsque l'on clique sur "crée BD avec Plan", si je crée un commentaire dans planning, le commentaire n'est pas repris/rapatrié dans la BD...je fais une fausse manipulation et/ou cela n'est pas possible ?

Merci pour votre aide,
et encore merci pour tous vos apports !!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 020
Membres
103 097
dernier inscrit
Benduch