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 :

Répartition de couples sur périodes


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut Répartition de couples sur périodes
    Forum,

    La question est simple : comment feriez-vous si vous étiez à ma place ?
    Pour le moment, je n'arrive à rien de concret. Donc, si vous avez un début de piste, je suis preneur.

    Je pars de cette situation :
    • J'ai toujours une ligne Proprio.
    • Je peux avoir une ou plusieurs lignes Partenaire. Pour chaque partenaire du Proprio, j'ai une ligne par période non interrompue de ménage.


    Nom : Image 1.png
Affichages : 93
Taille : 25,9 Ko

    Ce à quoi je veux arriver :
    • Avoir les différents couples avec la période correspondante. Le proprio sera toujours présent.


    Nom : Image 2.png
Affichages : 89
Taille : 67,1 Ko

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 122
    Points : 2 235
    Points
    2 235
    Par défaut
    Bonjour,

    Ce que je ferais est une méthode assez laborieuse, peut-être quelqu'un aura-t-il quelque chose de plus élégant.

    Je parcours le tableau ligne par ligne, si je trouve "Proprio" dans la première cellule je renvoie au traitement d'un proprio, si je trouve "Partenaire" je renvoie au traitement d'un partenaire.

    Le traitement d'un proprio consiste ... à stocker le nom du proprio.

    Le traitement d'un partenaire consiste à créer une nouvelle ligne, écrire le nom du proprio, celui du partenaire, et les dates de la période.

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Merci Gluups pour cette piste. Je creuse mais n'arrive toujours à rien.

  4. #4
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 057
    Points : 2 522
    Points
    2 522
    Par défaut
    Bonsoir
    Je n'ai pas excel sous la main mais ce doit être possible avec Power Query.
    Afin de partir sur de bonnes bases, vos données sont elles structurées exactement comme vous l'indiquez ?
    Avec une seule ligne proprio et des périodes qui ne sont pas des dates mais au format mm/aaaa ? N'y a t'il pas plusieurs lignes proprio ?
    Stéphane

  5. #5
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour Raccourcix,

    Je suis effectivement ouvert à toute suggestion, comme PwQ.

    Les données sont structurées comme montré.
    • Une et une seule ligne pour le Proprio (qui va toujours du 1er janvier au 31 décembre).
    • Il peut y avoir un ou plusieurs partenaires.
    • Les dates sont des dates mais présentées en MM/AAAA. Il faut partir du principe que ce sont des dates (premier jour du mois pour la première et dernier jour du mois pour la seconde).


    Je mets un fichier en PJ au cas où.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 057
    Points : 2 522
    Points
    2 522
    Par défaut
    Bonjour

    voici une proposition avec PQ

    1. création d'une fonction pour filtrer la liste des mois (avec 2 paramètres début et fin)

    2. le traitement des données avec les grandes étapes
    - appel à la fonction pour avoir tous les mois entre StartDate et EndDate
    - regroupement par mois
    - récupération du nom du proprio et de la liste des partenaires
    - dépivot des colonnes proprio et partenaires
    - fractionnement de la liste des partenaires

    Stéphane
    Fichiers attachés Fichiers attachés

  7. #7
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Raccourcix !
    Je suis content : j'ai encore appris un truc aujourd'hui.
    Bon, je tâche de comprendre toutes les étapes.

  8. #8
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 057
    Points : 2 522
    Points
    2 522
    Par défaut
    Je pense à l'instant à un problème avec ma solution s'il y a deux fois la même configuration à deux périodes disjointes
    Je pense qu'il faut ajouter l'argument GroupKind.Local dans le Table.Group.pour obtenir le min et le max de chaque période et non le min et le max de l'ensemble des périodes.
    J'essaierai demain
    Stephane

  9. #9
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    J'ai ajouté Blibli de 10/2020 à 12/2020 et le résultat semble correct.
    Peut-être penses-tu à autre chose ?

  10. #10
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 057
    Points : 2 522
    Points
    2 522
    Par défaut
    En effet mais ça ne fonctionne pas lorsqu'on rajoute Bublu sur Janvier par exemple

    Comme indiqué hier soir, il faut bien ajouter GroupKind.Local dans l'étape de regroupement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Table.Group(#"Personnalisée ajoutée1", {"Proprio", "Partenaires"}, {{"Début", each List.Min([Mois]), type date}, {"Fin", each List.Max([Mois]), type date}},GroupKind.Local)
    Stéphane

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/11/2008, 14h31
  2. Réponses: 8
    Dernier message: 10/10/2008, 15h11
  3. Réponses: 1
    Dernier message: 27/06/2008, 09h34
  4. [MySQL] actualité sur période définie
    Par SpaceFrog dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/12/2007, 13h11
  5. Total Cumulé sur période glisante en CR9
    Par nanouille56 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 12/07/2005, 15h07

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