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 :

Macro pour alimenter un tableau à partir d'un planning et d'un tableau contenant un calendrier perpetuel [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 56
    Par défaut Macro pour alimenter un tableau à partir d'un planning et d'un tableau contenant un calendrier perpetuel
    Bonjour à tous,

    Je dois réaliser plusieurs macros.
    Voici la première que je souhaite faire.
    Je dois effectuer une macro pour alimenter une feuille Excel "Suivi hebdo" à partir de deux autres feuilles "Saisie" vision journalière de l'activité et de la feuille "Planning". J'arrive à me débrouiller pour alimenté un tableau à partir d'un autre mais ici la difficulté réside dans le fait que la Feuille "Saisie et Planing" contiennent un calendrier qui se met à jour en changeant l'année.
    Ce ne sais pas comment faire pour réaliser une macro capable de récupérer les données en fonction du numéro de semaine.
    Pas facile à expliquer...
    Présentation.xlsm

    Merci d'avance pour votre aide.

    Cordialement,
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Déjà, tu joins deux classeurs; est-ce qu'ils sont identiques ? Ce serait bien aussi que tu donnes un exemple parce que je ne vois pas comment utiliser la feuille "Planning".

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 56
    Par défaut
    Pour chaque semaine (du lundi au vendredi) je souhaite que la macro fasse addition dans la partie Flux de chaque activitées : des entrées, des traités et qu'elle recopie le solde de fin de semaine (vendredi) de la feuille "Saisie" pour compléter la feuille "Suivi hebdo" au fil des semaines.

    Pour la partie planning se souhaite extraire pour chaque semaine les totaux des cellules calculées (en bleu) Régul, Prod et Back ligne 15 à 17 et valoriser les cellules en colonne I pour le Pôle Régul, en Colonne R pour le pôle Prod et en colonne AW pour le pôle Back.

    En résumé cette macro permet d'obtenir donc une vision hebdomadaire et de connaitre la productivité de l'équipe sur ces 3 pôles en obtenant la moyenne de dossier traités par demie-journée.

    J'espère avoir été plus claire dans mes explications...

    Pour le classeur il faut prendre le format XLSM, je pensais avoir suprimé l'autre au format XLSX.

    Cordialement,

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'ai traité "Résiliation PCK", est-ce que tu comprends la macro ci-dessous et est-ce que tu peux la continuer, au moins pour ce qui concerne le transfert de la feuille Saisie vers la feuille Saisie hebdo ? Juste un truc dont je ne suis pas sûr, j'ai pris le maximum du solde comme étant le solde du dernier jour de la semaine; est-ce toujours vrai ? S'il y a quelque chose que tu ne comprends pas, n'hésite pas à le dire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub test()
        Dim Plage As Range, L1 As Integer, L2 As Integer, Ligne As Long
        With Sheets("Saisie")
            'N° de ligne de la feuille Saisie hebdo
            Ligne = 3
            'calcul des pplages hebdo sur la feuille Saisie
            For i = 1 To 53
                Ligne = Ligne + 1
                'L1 est la première ligne de la semaine et L2 la dernière
                If i = 1 Then
                    L1 = 5
                    L2 = 7 - Weekday(.Cells(L1, 3), 2) + L1
                ElseIf i = 53 Then
                    L1 = L2 + 1
                    L2 = Application.Match("Global", .[B:B], 0) - 1
                Else
                    L1 = L2 + 1
                    L2 = L1 + 6
                End If
                'définition de la plage hebdo
                Set Plage = .Range("B" & L1 & ":B" & L2)
            With Sheets("Suivi hebdo")
                'recopies
                .Cells(Ligne, 2) = Application.Sum(Plage.Offset(, 7))
                .Cells(Ligne, 3) = Application.Sum(Plage.Offset(, 8))
                .Cells(Ligne, 4) = Application.Max(Plage.Offset(, 9))
            End With
            Next i
        End With
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 56
    Par défaut
    Bonjour Daniel,

    j'arrive à comprendre la macro, il y a juste "with" et "application.match" que je ne connais pas.
    Pour le solde il faut vraiment prendre celui de vendredi qui ne correspond pas forcement au maximum du solde.

    -Est-il possible d'inclure dans la boucle toutes les activités avec un For Each ce qui permettra de valoriser chaque semaine d'un coup?

    -Est-il également possible que la macro soit "intélligente" , c'est à dire qu'elle ne recommence pas depuis le départ mais qu'elle puisse valoriser le tableau "suivi hebdo au fur et à mesure de l'avancement dans le temps.
    exemple :Le lundi de la semaine 3 je fais tourner la macro et elle ne valorise que S-1 est ainsi de suite chaque semaine?

    Cordialement,

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    "With" est une instruction qui permet de ne pas reprendre ce qui est précisé après. Tout ce qui commence par un point reprend ce qui est précisé dans "with". Par exemple, au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Saisie").Cells(Ligne, 2) = Application.Sum(Plage.Offset(, 7))
    Sheets("Saisie").Cells(Ligne, 3) = Application.Sum(Plage.Offset(, 8))
    Ce qui est plus long et ralentit l'exécution du code, il est plus rapide d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Suivi hebdo")
        .Cells(Ligne, 2) = Application.Sum(Plage.Offset(, 7))
        .Cells(Ligne, 3) = Application.Sum(Plage.Offset(, 8))
    End With
    Le "." devant "Cells" signifie que la cellule appartient à la feuille "Suivi hebdo"

    "Application.Match" est l'équivalent de la fonction Excel EQUIV.

    -Est-il possible d'inclure dans la boucle toutes les activités avec un For Each ce qui permettra de valoriser chaque semaine d'un coup?
    Pas sûr de bien comprendre de que tu veux. Si tu penses à quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("Suivi hebdo")
        For Each C In .Range("B" & Ligne & ":BA" & Ligne)
            If C.Column = 2 Then C.Value = Application.Sum(Plage.Offset(, 7))
        Next C
    End With
    tu es quand même obligé de mettre une ligne par colonne et, de plus, tu dois tester la valeur de la colonne pour savoir ce qu'on doit mettre.

    -Est-il également possible que la macro soit "intélligente" , c'est à dire qu'elle ne recommence pas depuis le départ mais qu'elle puisse valoriser le tableau "suivi hebdo au fur et à mesure de l'avancement dans le temps.
    exemple :Le lundi de la semaine 3 je fais tourner la macro et elle ne valorise que S-1 est ainsi de suite chaque semaine?
    Aucun problème, sauf éventuellement en semaine 1. Est-ce que tu peux avoir une semaine 53 en tête de liste ?

    J'attends ta réponse sur les deux derniers points pour continuer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/03/2015, 12h04
  2. [XL-2010] Macro pour filtrer un TCD à partir d'une cellule
    Par Chrislezoud dans le forum Excel
    Réponses: 5
    Dernier message: 22/03/2013, 10h38
  3. [XL-2010] Macro pour renommer des fichiers à partir d'une liste de nom de fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/01/2013, 17h03
  4. macro pour créer plusieurs tcd à partir d'access
    Par 78580400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/05/2011, 10h13
  5. Macro pour envoyer un mail à partir d'un formulaire
    Par aurore1008 dans le forum IHM
    Réponses: 2
    Dernier message: 17/06/2008, 16h16

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