Formulaire de saisie de données pour TCD


#1

Bonjour,
Je travaille pas mal avec des Tableaux Croisés dynamiques (TCD).

Est-il possible de créer avec un fichier Excel un onglet d’accueil, écran, page de formulaire permettant que les nouvelles informations à insérer dans la plage de données [du TCD] y soient intégrées automatiquement après avoir validé l’ensemble des infos saisies (je me doute aussi que ma demande est à la limite entre Excel et une application dédiée de base de donnée, voire de la programmation en VBA [que je ne maitrise absolument pas :disappointed:]).
En effet, la saisie ligne par ligne dans la plage de données en avançant dans chaque colonne vers la droite correspondant à chaque champ du TCD peut vite devenir fastidieuse, d’autant plus s’il y a beaucoup de colonnes.

L’idée serait que les données à inscrire correspondantes à chaque ligne et champ (colonne) puissent être saisies au travers d’un écran spécifique avec des cases à remplir dont l’intitulé serait plus compréhensible par l’utilisateur [que le nom de colonnes], et renvoyant ces informations directement dans la plage de données (si 15 colonnes de champs, alors 15 cases à remplir).
Je ne sais pas si ma demande est compréhensible, mais j’ai par exemple un fichier de données sur des agents pour lesquels j’établis une répartition de leur coût salarial avec des ratios de temps appliqués en fonction de leur service d’appartenance, de leur statut, lieu de travail et type d’activité (sachant que de nombreux agents travaillent sur des lieux différents en exerçant des tâches différentes !). Dans ma plage de données, certaines colonnes permettent de choisir par listes déroulantes de nombreuses options, par exemple pour la colonne lieux, je peux choisir parmi une liste de 20 endroits différents ; pareil pour les tâches.)

Pour ce fichier, l’écran d’accueil devrait permettre de saisir ces informations afin qu’elles se "placent "automatiquement au bon en droit dans la plage de données. (je peux joindre mon fichier excel, mais il faut avant que je l’anonymise).

Merci de me dire si ce projet semble trop ambitieux (je n’ai pas non plus une forte expertise dans Excel) et/ou ce qu’il requiert comme connaissances (à acquérir, en ce qui me concerne).

NB : j’ai déjà eu connaissance des astuces et tutos de formuleexcel.com avant de m’inscrire sur ce forum, et les informations mises à disposition sont de qualité, bravo à votre équipe !


#2

Bonjour
A priori il est possible de créer une macro qui ajoute des données dans une table puis mette à jour un tableau croisé dynamique, cependant un fichier permettrait de mieux visualiser ton problème!


#3

Bonjour,

Merci pour ta réponse rapide, je me doutais bien de l’utilité de fournir un fichier.

J’anonymise ce fichier (il s’agit de données personnelles, nom prénom et salaires) et le poste dès que possible. Par contre, en ce qui me concerne, je suis loin de connaître le langage macro.


#4

Re-bonjour,

Voici le fichier ci-joint (j’ai juste changé les noms des personnes et arrondi les montants pour éviter des rapprochements avec des sources réelles).

PS : je vais m’absenter de France pendant deux mois d’ici début févier. Il y a donc peu de chances que je donne des nouvelles entretemps.
Je resterais cependant attentif à mon retour à savoir comment avancer et progresser dans mon fichier (en terme de connaissances à acquérir) sans attendre toutefois que tout me soit mâché (je ne pense d’ailleurs pas que ce soit la philosophie du site ! :blush:)

merci encore.

PS 2 : j’ai l’impression que le fichier joint ne veut pas se télécharger (il pèse 12 Mo !..) Je l’ai donc mis en partage sur ma boite DropBox, dont voici le lien : https://www.dropbox.com/sh/w8bi2bekxbocmqo/AACf6mm5s1xYxfHl3Gpm755la?dl=0


#5

Il me semble que tu souhaites coller les informations qui sont en colonne dans ton écran de saisie, les transformer en ligne puis les ajouter à la dernière ligne de ton tableau Coûts salariaux données ?

Pour cela quelques pistes

  • Enlever tous les calculs en dessous de ton tableau: ils seront effacés lorsque ta table de données grandira

  • Choisir entre un champ Nom de famille + Prénom ou 2 champs : 1 champ Nom et un Champ Prénom de manière à ce que chaque colonne dans ton tableau aie exactement une ligne dans ton tableau de saisie

  • Pour choisir à quelle ligne écrire, il faut pouvoir accéder à la dernière ligne remplie du tableau, tu peux le faire avec le raccourci Ctrl+ Bas

  • Pour transformer une ligne en colonne et vice-versa, il suffit d’utiliser le collage transposé:
    Cliquer sur la cellule de destination, collage spécial (Raccourci Ctrl+Alt+V) et coche la case transposé

  • Pour faire tout ça en VBA, tu peux utiliser l’enregistreur de macros

  • Pour que tes tableaux prennent en compte les nouvelles données, ils doivent utiliser comme source les colonnes et non une plage de cellules (eg A:Z et non A1:Z246)


#6

Bonjour,

Merci pour ces premières pistes, qui induisent déjà quelques autres questions.

* Pour les calculs sous la base de données; je les virerais sans problème, il me servent surtout pour des contrôles rapides que je pourrais placer ailleurs ; là, c'est Ok, 
* Pour les les champs noms et prénoms, cela signifie-t-il que ce sera cette information qui, si j'ai bien compris, servira de point de départ pour le collage transposé ? 
    * Mais mon problème, pour que le TCD puisse exploiter mes ratios de temps de W en fonct° des lieux ou des tâches, c'est que cela "m'impose" de répéter à chaque fois sur des lignes différentes les noms des personnes autant de fois qu'elles ont une mission différente ou de ratio différent, 
    * Faudrait-il que je revoie l'architecture globale de la base pour que les différentes données de lieux et ratio de la même personne s'affichent sur la même ligne (j'avais un tableau de ce genre mais avec plusieurs dizaine de colonnes, en fonction du Nb de ratios donc, ce qui devenait difficile à vérifier par le suite), 
    * Si je n'ai pas "d'obligation" de modifier en profondeur ma base de données (selon l'hypothèse exposée juste avant),cela ne devrait pas poser de problème pour continuer à insérer des lignes avec les mêmes noms de personnes ? (ce sont notamment les % de temps affectés aux diverses tâches selon les lieux et/ou les missions qui vont différer), 
* Ce que je souhaiterais aussi, c'est que le collage transposé (que j'envisagerais de valider par un bouton macro, ne soit rendu possible que dans la mesure où toutes les informations de la grille de saisie sont remplies. J'imagine quelque chose comme un contrôle (pas forcement visible pour l'utilisateur) sur la cellule adjacente validant par Ok le fait qu'une information soit saisie pour chaque champ, et que ce sera par une vérification l'ensemble de ces validations OK que le bouton macro pourrait s'activer : cela te semble-t-il une piste être une bonne piste de travail ? 
* Si j'ai bien compris, on peut construire un TCD en lui demandant en quelque sorte de prendre en compte que les en-têtes de colonnes (de l'ongle base de données), ce qui intégrerait toutes les données qui sont tout simplement situées en dessous (et qui donc agrandis automatiquement la sélection de la plage de données) ? 

Je vais donc tenter l’ensemble de ces manipulations sur un fichier extrêmement simplifié pour progresser petit à petit, mais il est assez probable que je ne m’y attelle qu’au retour de mon voyage (fin mars ) et aussi en fonction du temps que j’arriverais à me libérer au boulot pour creuser toutes ces pistes. Je donnerais donc des nouvelles en fonction de mon avancée, et quelle qu’elle soit, je te ferais un retour.

Par rapport au fonctionnement du site, est-il préférable que je continue de te répondre directement, ou vaut-il mieux passer par l’intermédiaire du forum pour retracer l’historique des échanges (et je l’espère) des avancées de mon questionnement ?

Merci,

Charly BERNARD


#7

Déjà peux tu répondre à ce que tu souhaites faire exactement stp…


#8

Ayant reçu un message retour à ma réponse signalant qu’il ne fallait pas plus de 2 pièces jointes pour répondre, je renvoie ce mél en espérant que cela marche.

Charly BERNARD


#9

Bonjour
Peux tu confirmer le résultat que tu souhaites obtenir stp?
Sinon il est difficile de t’aiguiller…
Merci


#10

Bonjour,

Ce que je veux arriver à faire, c’est faciliter la saisie des informations dans un genre d’interface “visuellement agréablet” et que les informations nécessaires au traitement s’intègrent automatiquement dans la base de données, afin qu’elles puissent être exploitées au travers des TCD.
Pour l’instant, je suis le seul à travailler sur ce fichier, et je voudrais pouvoir en déléguer l’utilisation (si j’arrive à cela, j’ai aussi en tête pour plus tard la constitution [voire amélioration] d’autres fichiers pour des activités un peu complexes à gérer, subventions aux associations, prévisions du nombre d’enfants en fonction de livraisons de programmes de construction…).

Cordialement,
Merci


#11

Peux-tu confirmer que c’est bien ce que tu veux faire?


#12

Bonjour,

Oui, effectivement, c’est ce à quoi je voudrais parvenir, avec les contraintes que j’exposais, à savoir qu’une même personne peut avoir plusieurs missions différentes sur des quotités de temps différentes également.
Je présuppose que c’est là où se situe toute la difficulté du collage transposé.
Si tu regardes bien le tableau de données, il n’y a qu’une seule colonne par agent qui spécifie une tâche particulière et la part de temps que cette personne y consacre (en % sur l’année). Pour une autre tâche de la même personne, cela apparait sous la ligne suivante, et ainsi de suite (c’est comme cela que j’ai appris à construire un tableau de données pour le rendre exploitable par TCD ensuite ; mais peut-être existe-t-il d’autres façons de faire ?).

Charly BERNARD


#13

Bonjour

La macro suivante permet d’ajouter les données du formulaire dans la base de données

Sub ajouter()

    Range("C7:C30").Select
    Selection.Copy
    Sheets("Coûts salariaux données").Select
    Range("A1048576").Select
    Selection.End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True

End Sub

Si tu as plusieurs activités, sois tu fais une entrée dans la base de données par activité, soit tu peux ajouter plusieurs champs d’activités sur ton formulaire d’entrée


#14

Bonjour,

Je te remercie pour l’exemple de macro, mais je n’en suis même pas encore à ce stade là ! J’améliore mon fichier en fonction du temps que j’arrive à me dégager de mes autres missions (ce qui n’est pas évident du tout !). De plus, comme je vais m’absenter deux mois (voyage en New Zéland), je vais tout mettre en suspend à partir de maintenant.

→ J’envisage donc de faire mes recherches (d’améliorations numériques) d’avril à juin (voir l’été), il ne faudra donc pas s’étonner que je ne donne aucune nouvelles entretemps, sauf si j’avance de façon plus rapide que je ne l’escompte. De toutes façons, quelles soient mes avancées, je te tiens au courant.

Merci encore, et à un peu plus tard !

e noho ra ! (“au revoir” en Maori)

Charly BERNARD