IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Numéro de semaine dans TCD (conception?)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut Numéro de semaine dans TCD (conception?)
    Bonjour,

    Je stocke des dates provennant de plusieurs sources dans une base de données Access.
    J'ai fait la procédure d'extraction qui consiste à générer un fichier Excel et à créer automatiquement un Tableau Croisé Dynamique avec ces données.

    Ma procédure d'extraction prend en données d'entrée la date de début & date de fin de mes différents éléments.

    Le problème est que j'ai besoin d'avoir ces informations dans le TCD par semaine.
    Ma procédure extraie donc 1 ligne avec le numéro de semaine sur l'intervalle date de début / date de fin (l'idée est de copier un array vers la feuille Excel pour ensuite créer le TCD à partir de la feuille Excel).

    Le problème est que cela me crée beaucoup de lignes, et il y a un sacré problème de performance (le traitement prend bcp de temps).

    Y aurait il une facon simple de résoudre ce problème ? (de par la manipulation du tableau croisé dynamique (champ calculé "nb semaine" ??? ... ou en exécutant les choses autrement).

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu as la possibilité de grouper les données de ton TCD. (Clique droit sur ton la colonne de tes dates du TCD et faire grouper...)

    Pour l'exemple par macro du groupement 7 jour (=1 semaine)
    A5 appartient à la colonne des dates de ton TCD qui est sur Feuil4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test()
     
    Worksheets("Feuil4").Range("A5").Group Start:=True, End:=True, By:=7, Periods:=Array(False, False, False, True, False, False, False)
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour avoir un TCD groupé par semaine.
    J'imagine que tu as placé un champs date dans le TCD.
    Il faut grouper les dates par semaine et prendre 7 jours comme écart et comme date de début la première date commençant un lundi.
    Il faut donc connaître le jour de la semaine de la première date qui se trouve dans la base de donnée.
    Tu peux trouver le jour de la semaine avec la formule =JOURSEM(A5;2)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Merci de vos réponses,

    J'ai 2 champs dates dans mon TCD : un champ date_debut & un champ date_fin.
    Par ex : sur un enregistrement : date_debut = 02/04/2102 ; date_fin = 27/04/2012.

    J'aimerai avoir comme résultat un champ "week" m'indiquant que l'élément traité s'applique sur la week 14 / 15 / 16 / 17.
    J'aimerai pouvoir traiter ce champ "week" comme n'importe quel autre champ du TCD (donc pouvoir le mettre en ligne, colonne, champ de page pour faire des sélections dessus etc).

    J'ai essayé de grouper, mais je ne sais pas si votre proposition (mercatog & corona) va m'aider dans ce contexte...

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai essayé de grouper, mais je ne sais pas si votre proposition (mercatog & corona) va m'aider dans ce contexte...
    Non effectivement ce que j'avais suggéré et je pense également Mercatog, c'est un groupement par semaine et pas par n° de semaine.
    Il est possible évidemment de placer une formule dans le TCD, je le fais rarement.
    Moi je placerais la formule dans la source mais ce n'est peut-être pas intéressant pour toi.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Merci de ta réponse Corona,

    Oui ma procédure d'extraction VBA va créer une ligne par semaine (je copie les infos dans un array).
    Puis ensuite je copie l'array dans excel - c'est surtout ca qui prend du temps.

    Je ne sais pas si la méthode transferspreadsheet peut s'appliquer sur un array (gain de temps d'exécution?), je vais regarder.
    Mais à part ca je ne vois pas d'autre solution.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Oui ma procédure d'extraction VBA va créer une ligne par semaine (je copie les infos dans un array).
    Puis ensuite je copie l'array dans excel - c'est surtout ca qui prend du temps.
    Je n'ai pas vu ton code mais charger une variable tableau d'un range Excel cela prend une seconde
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [PHP 5.2] Numéros de semaine dans calendrier annuel
    Par p4ndore dans le forum Langage
    Réponses: 5
    Dernier message: 01/08/2011, 17h15
  2. Connaitre le numéro du jour dans la semaine
    Par Calarith dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2010, 22h48
  3. Numéro de jour dans la semaine
    Par tsrsi2006 dans le forum Débuter
    Réponses: 6
    Dernier message: 13/04/2009, 14h30
  4. Numéro de semaine dans le nom du fichier
    Par scofield69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/02/2008, 16h33
  5. Récupérer le numéro du jour dans la semaine
    Par alliance dans le forum MFC
    Réponses: 1
    Dernier message: 19/10/2007, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo