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 d'organisation des feuilles de temps


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    comptable
    Inscrit en
    Avril 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut macro d'organisation des feuilles de temps
    Bonjour,
    J'ai un logiciel fait maison pour la saisi des heures employées. J'en extrait toutes les heures en fonction des semaines de paies dans un fichier excel 1 ligne = 1 temps saisi.

    La fonction de sous-total intégré à excel me permet une organisation de base, mais j'aimerais pousser plus loin.
    J'ai quelques macros que j'ai combiné pour m'approcher de mon résultat, mais je ne suis pas très fort en optimisation de macro. Elle est donc très longue pour peu de travail

    Information:
    Le fichier est de longueur variable allant de 1000 à 1500 lignes
    le format est identique à l'exemple
    Le fichier extrait n'a aucun tri de fait au départ, j'ai donc manuellement fait un tri par employé
    Une colonne complémentaire sera ajouté en A contenant les numéros de projet ce qui décalera vers la droite les colonnes actuelles.


    Mon objectif:
    À l'aide d'une macro, j'aimerais automatiser une mise en page plus conviviale
    J'ai besoin d'un total par employé et d'un sous-total par date pour chaque jour de travail de l'employé
    Le contenu de la colonne "note" peut devenir très long alors elle nécessite un renvoie à la ligne
    Le contenu de l'ensemble du classeur doit-être aligné en-haut
    Le dossier doit être trié par employé>date>projet
    Le classeur doit être imprimable à une échelle de 75% minimum, sur un papier format légale, marge étroite
    Et la portion sur laquelle je bogue le plus, créer un onglet pour chaque employé


    Classeur1.xlsx

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Première remarque : http://www.developpez.net/forums/d84...s-discussions/

    Seconde remarque : je ne vois pas de question dans ta demande.
    Est-ce que la question est "Pouvez-vous faire le boulot à ma place ?" ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    comptable
    Inscrit en
    Avril 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci pour le lien, je n'avais jamais vu cette "discussion". Sur nombre de forum, le fichier est demandé ou fournit de façon quasi automatique.

    Pour le reste, je ne suis pas programmeurs professionnels je me débrouille, mais c'est tout. J'ai actuellement une macro qui m'évite tout plein de manipulation et c'est pratique, mais je dois toujours faire des ajustements qui j'en suis sure peuvent être réglé par une macro.

    Je ferai avec ce que l'on m'offre et je peux difficilement fournir une question précise alors que je cherche justement comment y arriver. En VBA, je suis à l'étape de comprendre et décortiquer un code écrit, mais je ne peux ni l'écrire de toute pièce ni le "parler".
    Donc non pas d'histoire de faire à ma place quoi que ce soit. Je vais de toute façon jouer avec ce que l'on va me fournir et en tirer un apprentissage. Et il m'est inutile de partir de ce que j'ai en ce moment, car vu la mauvaise optimisation de mes macros, les 100 lignes que j'utilise deviendront surement 10 dans les mains de celui qui est efficace.


    J'ai par le passé utilisé ce forum et obtenu de très bon retour d'un membre.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 784
    Points
    5 784
    Par défaut
    Bonjour
    Citation Envoyé par kemherar Voir le message
    J'ai besoin d'un total par employé et d'un sous-total par date pour chaque jour de travail de l'employé
    Pourquoi ne pas faire un tableau croisé dynamique?

    Le contenu de la colonne "note" peut devenir très long alors elle nécessite un renvoie à la ligne
    Le contenu de l'ensemble du classeur doit-être aligné en-haut
    Le dossier doit être trié par employé>date>projet
    Le classeur doit être imprimable à une échelle de 75% minimum, sur un papier format légale, marge étroite
    L'enregistreur de macro te donnera 90% de ce que tu cherches, si besoin il y un tuto sur le site.

    Et la portion sur laquelle je bogue le plus, créer un onglet pour chaque employé
    Il y a plusieurs possibilité, avec des connaissances de base sur les boucles.
    Une fois les données triées une boucle et quelques copier-coller.
    Ou bien via les filtres avancé.

    un exemple: tiré d'une autre discussion donc il y a surement des modifs a faire
    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
    Sub copie()
    col = 4
    ligne = Range("D" & Rows.Count).End(xlUp).Row
    'numero de la colonne de test et calcul du nb de ligne
    Dim d, f As Integer 'debut et fin de zone de copie
     
    For i = 6 To ligne
        d = i 'initialisation de la plage a copier
        If Not (Cells(i, col) = Cells(i + 1, col)) Then
            Sheets.Add 'ajout de feuille
            'ici il faut renommer la feuille
            f = i 'valeur différente donc fin de la plage a copier
            Sheets("Sheet1").Rows("1:5").Copy 'copie des en-têtes
            Sheets("Sheet2").Rows("1:5").PasteSpecial 'changer sheets par le nomveau nom
            Sheets("Sheet1").Rows(d & ":" & f).Copy 'copie des données
            Sheets("Sheet2").Rows("6:" & 6 + f - d).PasteSpecial 'changer sheets par le nomveau nom
            d = i + 1 'début de la plage suivante
        End If
    Next i
    End Sub
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    comptable
    Inscrit en
    Avril 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Le tableau croisé n'offre pas l'information de la façon dont on doit l'utiliser.
    Le problème étant principalement que je dois garder le détail de chaque ligne. Il ne me sert à rien de savoir que quelqu'un à fait 5 heures dans une journée sans savoir ce qu'il a fait dedans par exemple.

    L'enregistreur de macro est justement un de mes bons outils. J'enregistre des partiels et je les imbriquent comme je peux, mais j'ai lu des documents de formations VBA et je comprends que je pourrait faire tellement plus avec une utilisation de variable pour faire des références ou autres. Malgré mes lectures, je n'ai pas réussis à maitriser la chose. c'est sure qu'il m'est difficile de me concentrer à bien apprendre la programmation alors que j'ai des semaines bien remplis déjà.

    Pour ce qui est de ton petit bout de code, je vais essayer de comprendre le moyen de lui donner ses balises. Je n'ai pas eu encore le temps de m'y attarder, mais je l'ai enregistré dans mon "personal.xlsb".

Discussions similaires

  1. [XL-2010] Macro pour Regrouper des feuilles de plusieurs classeurs dans un seul
    Par Seth2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/08/2016, 07h47
  2. [Débutant] Gestion des feuilles de temps
    Par Mpgam2 dans le forum Configuration
    Réponses: 3
    Dernier message: 28/04/2014, 09h26
  3. Réponses: 0
    Dernier message: 22/03/2013, 13h21
  4. Organisation des feuilles de style
    Par Jiraiya42 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 30/08/2007, 22h04
  5. [VBA-E] Lancement de la macro avant l'ouverture des feuilles
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h07

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