Microsoft 365 Besoin de conseil - extraire des données pour mettre dans un tableau

Gen Rose

XLDnaute Impliqué
Supporter XLD
Bonjour le forum,

Dans un classeur, j'ai plusieurs plages dans une feuille (Planif) remplies hebdomadairement pour une équipe. À chaque semaine je veux exporter les données de cette feuille vers une autre (Donnees) sous forme de tableau qui me permettra de faire un TCD (voir feuille nommée TCD) pour des statistiques.

J'avais commencé dans le document original à extraire les données par formule matricielle... mais c'est un travail de moine à n'en plus finir et les cellules étant liées, tout serait effacé la semaine suivante. Je devais ajouter des colonnes manuellement et faire du copié-collé en valeur pour retirer les matricielles. L'idée ici est de garder chaque semaine de l'année pour les statistiques. J'ai aussi ajouté des colonne temps, date et mois. C'est contre-productif et je dois trouver une vraie méthode viable.

J'ai donc besoin de vos conseils à savoir si je dois me diriger vers VBA ou Power Query. Dans les 2 cas, j'aurai une grande courbe d'apprentissage et je ne veux pas passer du temps sur une méthode pour réaliser que j'aurais du faire autrement. Dans les 2 cas, je vais certainement solliciter encore l'aide du forum pour m'aider car ce projet me semble complexe.

Néanmoins, je veux gagner en autonomie mais je dois avancer vite car le besoin est maintenant.

Ce sera plus limpide avec le fichier joint.
Merci beaucoup
 

Pièces jointes

  • Donnees_pour_TCD.xlsm
    46.2 KB · Affichages: 11
Dernière édition:
Solution
La nuit portant conseil, à la vue de ta méthode, et pour gagner en rapidité.
J'ai changé la compilation, qui traitait toutes les lignes .
Elle a lieu maintenant à chaque adjonction de ligne, et j'ai ajouté une couleur sur la dernière ligne de chaque semaine, pour une meilleur visibilité

sousou

XLDnaute Barbatruc
Bonjour
Voici un essai a vérifier la validité.
J'utilise la feuille planif pour constitué la base de données (mesdonnées)
le TCD(2) est affilié au tableau de cette base de données.
A voir
 

Pièces jointes

  • Donnees_pour_TCD.xlsm
    96.5 KB · Affichages: 6

Gen Rose

XLDnaute Impliqué
Supporter XLD
Bonjour
Voici un essai a vérifier la validité.
J'utilise la feuille planif pour constitué la base de données (mesdonnées)
le TCD(2) est affilié au tableau de cette base de données.
A voir
Bonjour @sousou et merci pour la soluce. Je vois que ce serait facile à adapter dans mon document même pour moi :)

La date donnent toujours le mois de février, comment corriger?

Et comment rendre le tout cumulatif lorsque l'on fait un nouvel horaire? J'ai besoin de faire un TCD pour les statistiques sur une année
 
Dernière édition:

sousou

XLDnaute Barbatruc
Si je comprend, tu veux que la base de données ne soit pas raz à chaque fois.
Il existe dans le code une variable lignedonnées, qui représente à partir de quelle ligne les données sont insérées.
Dans le fichier joint, j'ai modifié pour que cette variable ne soit pas remise à 2.
Les données seront donc insérées à la suite de celles déjà présentent
Et j'ai ajouté une procédure raz pour vider la feuille
 

Pièces jointes

  • Donnees_pour_TCD.xlsm
    97.1 KB · Affichages: 2

Gen Rose

XLDnaute Impliqué
Supporter XLD
Si je comprend, tu veux que la base de données ne soit pas raz à chaque fois.
Il existe dans le code une variable lignedonnées, qui représente à partir de quelle ligne les données sont insérées.
Dans le fichier joint, j'ai modifié pour que cette variable ne soit pas remise à 2.
Les données seront donc insérées à la suite de celles déjà présentent
Et j'ai ajouté une procédure raz pour vider la feuille
@sousou Oui, ça semble très bien fonctionner 😊

Il reste le soucis de la date; est-ce possible de tenir compte de la date située en J2?
En ce moment, c'est toujours le mois de février

**EDIT: je viens de réaliser que la colonne date est extrapolée par les heures des horaires, qui est fausse. Je vais tenter de voir si ces cellules peuvent suivre la commande "AUJOURD'HUI".
 
Dernière édition:

sousou

XLDnaute Barbatruc
Et oui, c'est que j'utilise la date qui se trouve sur les lignes ou tu affiches les heures ( c'est plus propre)
J'ai mis des formules ( en référence à j2) dans la première ligne de chaque zone afin d'obtenir la bonne date
 

Pièces jointes

  • Donnees_pour_TCD.xlsm
    97.8 KB · Affichages: 7

Gen Rose

XLDnaute Impliqué
Supporter XLD
Et oui, c'est que j'utilise la date qui se trouve sur les lignes ou tu affiches les heures ( c'est plus propre)
J'ai mis des formules ( en référence à j2) dans la première ligne de chaque zone afin d'obtenir la bonne date
Merci, j'étais justement en train de me figurer comment faire cette formule 😊

Question personnelle @sousou , combien de temps cela t'a pris pour en arriver au niveau expert en Excel?
Est-ce que tu as fait une formation dans une école, au travail ou encore autodidacte?
J'aimerais beaucoup arriver comme toi à créer une telle macro.

J'apprécie sincèrement ton aide pour ce fichier, ton travail est impeccable.
Merci
 

sousou

XLDnaute Barbatruc
Ça fait longtemps que je bricole sur excel, les (années 2000) autodidacte, mais une très ancienne expérience à l'époque ou les pc n’existaient pas:confused:
Mais il y a bien plus fort sur ce site,
Tout ceci n'est pas très difficile, un peu de temps, et d'étude des possibilités d'excel.
Le plus important me semble-t'il est de bien définir ce qu'on veux, et d'avoir une réflexion logique.
Pas de hasard avec la programmation et ceci est valide pour tous les langages, le reste c'est de la syntaxe
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
@sousou merci je crois qu'il n'y a rien qui équivaut à la pratique et l'étude mais je vais bien retenir ton point sur la réflexion logique.

Concernant l'affectation de la macro au bouton, j'ai 3 choix et je ne suis pas certaine si vraiment il faut passer par là? Il me semble que chaque macro sert à l'autre alors en choisir juste une...🤔
1679507811322.png
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Bonjour @sousou
J'ai adapté la macro à mon document et testé le tout.

Ça fonctionne bien sauf que j'ai oublié que les journées vides ne doivent pas être comptabilisées car cela fausse les statistiques au niveau du TCD.

Comment dire à la macro:

Exclus les cellules vide de la feuille Planif (plages des tâches):

VBA.PNG


VB:
Sub construire(mazone, emp)
Dim table(7)
With Sheets("Planif")
    For lg = 1 To mazone.Rows.Count
        For c = 1 To mazone.Columns.Count
        table(0) = emp.Value

        table(1) = .Cells(mazone.Row + lg, mazone.Column)
        table(3) = .Cells(mazone.Row + lg, mazone.Column + c)
        Set d = .Cells(mazone.Row, mazone.Column + c)
       table(5) = Format(d, "dddd dd mmmm yyyy")
        table(2) = Format(d, "hh:mm:ss")
        table(4) = 0.5
        table(6) = Format(d, "mmmm")
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 072
Messages
2 085 054
Membres
102 768
dernier inscrit
clem135164