Tableau dynamique à plusieurs dimensions

Bonjour,

Actuellement, mon projet utilise des boucles imbriquées avec des tests. Le tout en faisant référence à des cellules. A mesure que le nombre de lignes augmente, le code devient chronophage.

Pour gagner du temps, je voudrais créer un tableau dynamique à plusieurs dimensions afin de faire mes tests sur celui-ci.

J’ai commencé à écrire un code. Macro nommée tableau dans le module sousprogramme. Bien évidemment il ne fonctionne pas .

Vous pouvez lancer ce code par le bouton tableau.

L’utilisation de ce tableau devrait me permettre d’aller écrire dans l’onglet Suivi CCF_BEP, en face de chaque élève, le nombre de fois où il aura abordé les compétences en tenant compte des absences.

Les présences et les absences sont gérées dans l’onglet SGF à partir de la colonne AA.

X=présent et 0 = absent.

S’il subsiste des questions sur le fonctionnement attendu je me ferai un plaisir de vous répondre.

Merci d’avance à ceux qui pourront consacrer un peu de temps à mon problème.

Cordialement

Bonjour

J’ai regardé avec beaucoup d’intérêt ta macro associée au bouton « Tableau »

Tu m’as l’air de bien maitriser VBA et les variables tableau. Je ne pourrais donc certainement pas t’aider beaucoup : pas assez fort pour cela.

J’ai toutefois décelé une erreur, me semble-t-il. Je t’en fais part pour que tu vérifies.

Il s’agit de cette instruction :

Tablo(a, b, c) = Cells(5 + b, 18 + c).Value 'liste des compétences par date

A mon avis, au lieu de 18, il te faut 19.

Non ?

Bye !

Bonjour Gmb,

Merci déjà d'avoir consacré du temps sur mon souci.

Tablo(a, b, c) = Cells(5 + b, 18 + c).Value 'liste des compétences par date

Effectivement tu as raison, il faut bien mettre 19 au lieu de 18.

Néanmoins, l'écriture dans la fenêtre d'exécution avec

Debug.Print Tablo(1)
Debug.Print Tablo(1, 1)
Debug.Print Tablo(1, 1, 1)

ne donnent rien. Est-ce qu tu aurais une idée?

Ou quelqu'un d'autre aurait une idée?

Merci

Bonjour,

J'ai également tenté de restituer les données dans une nouvelle feuille mais comme avec debug.print rien ne se passe.

Pourtant en suivant pas à pas la macro, le tableau semble se compléter correctement.

Je pense que je commets une maladresse dans le redimensionnement du tablo.

Le code que j'ai utilisé pour restitué les noms et prénoms au cas où l'erreur proviendrait de celui-ci:

' vers feuille Es
ReDim Tablo(UBound(Tablo))
For a = LBound(Tablo) To UBound(Tablo)
    Feuil1.Cells(a, "A") = Tablo(a)
Next a

merci à ceux qui pourront me conseiller.

ddetp88

Bonjour,

Avant de plonger dans le code à proprement parler ... quel est ton objectif final ?

Quelles sont les 3 dimensions dont tu parles ? Comment la date intervient-elle ?

Est-ce- que la feuille Résultat contient ... ou pas ... ce que ton tableau devrait restituer ...???

Bonjour James,

Merci de te pencher sur mon souci.

Dans l'ordre de tes questions.

La date du cours intervient pour deux choses.

1) savoir si l'élève est présent ce jour là et qu'il est encore comptabilisé dans l'effectif de la classe. (Date de sortie vide ou non. Exemple en AD4 l'élève Nom Prénom 04 est sortie le 14/12/2014. Auquel cas les compétences liées à la date du cours ne devraient pas être prises en compte pour lui dès lors que la date du cours est postérieure à la date de sortie.)

2) si la date du cours et postérieure ou égale à la date du jour, les compétences seront comptabilisées et si le point 1 est vérifié.

La feuille résultat "Suivi CCF_BEP" est la feuille accueillant les données collectées dans le tablo.

En fonction des absences aux différents cours, le nombre de compétence varie d'un élève à un autre. C'est de l'individualisation du parcours scolaire.

Je ne sais si c'est clair

Merci encore

Re,

Je viens de regarder avec attention les formules mises en place dans la feuille Résultat, je suis interloqué.

 =SOMMEPROD((INDIRECT("'Strat Globale'!"&SUBSTITUE(ADRESSE(1;EQUIV($A2;'Strat Globale'!$5:$5;0);4);1;"")&"6:"&SUBSTITUE(ADRESSE(1;EQUIV($A2;'Strat Globale'!$5:$5;0);4);1;"")&"104")="X")*('Strat Globale'!$T$6:$X$104=B$1))

J'ai de grosses interrogations sur le fondement d'utiliser le vba pour faire le point du suivi individuel.

Re,

Très sincèrement ... je ne suis pas du tout de ta partie ... et je te félicite si tu arrives en t'en sortir ... sans t'appuyer dès le départ sur une base de données correctement structurée ...

As-tu jeté un oeil à la Feuille Résultat que j'ai ajouté à ton fichier ...???

Que veux-tu dire ... par interloqué ...???

Le résultat de la formule est-il juste ou faux ...???

C'est tout simplement spectaculaire (respect). Tout est juste et c'est en cela que je suis interloqué.

Si j'arrive à un fonctionnement juste avec sommeprod, je laisse tomber le vba pour cette partie de mon projet

Ensuite j'aurai le souci de reproduire cette fonction en vba au cas où un élève intègre l'effectif en cours d'année.

On peut avoir un élève qui quitte le cursus mais désormais et c'est de plus en plus fréquent un élève qui intègre le cursus en cours d'année.

Si je n'y arrive pas seul, je ferai appel à ce moment là aux compétences du forum!

Merciiiiiii James

Bonjour à tous

@James : Si ddetp est" interloqué", moi, je suis "scotché".

Bravo James !

Bye !

gmb a écrit :

Bonjour à tous

@James : Si ddetp est" interloqué", moi, je suis "scotché".

Bravo James !

Bye !

@gmb ... Un grand Merci pour ton message ...!!! C'est vraiment très sympa de ta part ...

@ddetp ... Merci pour tes remerciements ...

Il faut tout de même t'assurer d'avoir les références uniques des personnes ainsi que toutes les références uniques des compétences ... pour que ta formule fonctionne ...

Rechercher des sujets similaires à "tableau dynamique dimensions"