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 :

Aide pointeuse sous excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut Aide pointeuse sous excel
    Voici mon probleme, il m'a été demander de creer des commande macro sous excel, afin de faciliter le travail au niveau d'une pointeuse au travail.

    Quand j'ouvre le dossier de la pointeuse, je vois une liste de ceux qui ont pointé, quel jour, quel matricule, a quelle heure etc......

    Le gros du probleme est que pour la commande demandé, ils voudraient qu'en appuyant sur un bouton, en sachant qu'il y a 10 employés, que 10 nouvelles pages soit crées pour chaque employé, avec leur nombre d'heure, cumulée sur le jour, la semaine et le mois.
    J'espere que vous pourrez m'aider car je débute en excel+vba, et j'aimerais savoir si c'est faisable surtout

  2. #2
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    oui, c'est faisable. Avec de l'organisation. (OUI je sais, le mots organisation venant de moi fais bizarre)

    si toute les donné de chaque employer sont trié sur le première feuil, tu n'a qu'un seul employer à faire, tu fais une boucle et sa te' fais tout les employer

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Eh bien au tout départ j'ai une liste des employés, dans les premiers colonne A B C D on voit respectivement
    En A1 : entrées
    En B1 : la date
    En C1 : l'heure
    En D1 : le matricule de chaque employé

    Mais il y a plusieurs problemes, d'abord il y a 4 entrées par employé par jour, le matin quand il arrive, puis quand il part manger, l'aprem quand il revient et quand il part.

    Ensuite ce classement est vertical, c'est a dire on voit les heures en colonnes, et eux voudraient que cela se fasse en ligne et sur une page pour chaque matricule, ou pour mieux expliquer, par exemple pour le matricule 4127 on aurait
    EN A1 la date
    En B1 l'entrée 1
    En C1 la sortie 1
    En D1 l'entrée 2
    En E1 la sortie 2

    et donc en dessous, on verrait la date et les heures pour chacun sur un mois, avec par la suite le total des heures cumulées.

    Est ce toujours réalisable ?

    et voici à titre d'exemple
    Fichiers attachés Fichiers attachés

  4. #4
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    oui c'est réalisable, les donné sont bien rangé des le début, il n'y qu'a lire et réécrire sur une nouvel page.

    le plus dure sera de définir les semaine et les mois

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Oui mais peux tu m'expliquer, car je me sens completment perdu la, je ne sais pas vraiment comment faire

    et pour les semaines et les mois, je pensais creer une macro en vba

  6. #6
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    et pour les semaines et les mois, je pensais creer une macro en vba
    a partir du moment ou tu créé un bouton, l'action derrière le bouton sera du vba

    je ne sais pas comment créé une nouvel feuil mais je peux d'aidé pour le reste

    peut tu me donné un peux plus de détaille sur l'organisation de la première page (ou il y a toute les information)

    je t'es fais cette petite macro (mais elle n'est pas encore au point)

    elle ne créé pas de nouvel feuil, elle n'indique pas le semaine et mois, j'ai un problème au niveau du copier coller d'heur (sa me mais des valeur entre 0 et 1)

    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
    31
    32
    33
    34
    35
    36
    Dim NomEmployer(10) As String
     
    'création d'une boucle pour le jestion de tout le employer
     
    'for i=1 to 10 ' début de la boucle
    i = 1 'pour simplifier (je ne fais l'exemple que sur une personne
     
    NomEmployer(i) = ActiveWorkbook.Worksheets("Données brute").Cells(1, 1).Value 'emplacement des nom
     
    'créé une nouveal feuil avec pour nom le contenu de la variable NomEmployer(i)
    NomEmployer(i) = "employer"
     
    With ActiveWorkbook.Worksheets(NomEmployer(i))
        .Range("A1").Value = "Date"
        .Range("B1").Value = "entrée 1"
        .Range("C1").Value = "sortie 1"
        .Range("D1").Value = "entrée 2"
        .Range("E1").Value = "sortie 2"
        .Range("F1").Value = "Total"
        .Range("i1").Value = "Matricule"
        .Range("i2").Value = NomEmployer(i)
    End With
     
    j = 2
    k = 2
    While ActiveWorkbook.Worksheets("Données brute").Cells(2, 1).Value <> "" 'boucle tent qu'il y a des valeur, on ne sort pas de la boucle
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 2).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 3).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 4).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 5).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        k = k + 1
    Wend
    mais sa peut te servir de base pour créé ta macro

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    et comment dois je la faire fonctionner cette macro ? je ne suis pas ?

    et pour l'heure, il faut mettre Range("F5").NumberFormatLocal = "hh:mm" sur la cellule qui indique les heures =)

  8. #8
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    tu est plus douer que moi

    créé un bouton, double clic dessu et copie se code dedans la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
     
    End Sub
    code :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Dim NomEmployer(10) As String
     
    'création d'une boucle pour le jestion de tout le employer
     
    'for i=1 to 10 ' début de la boucle
    i = 1 'pour simplifier (je ne fais l'exemple que sur une personne
     
    NomEmployer(i) = ActiveWorkbook.Worksheets("Données brute").Cells(1, 1).Value 'emplacement des nom
     
    'créé une nouveal feuil avec pour nom le contenu de la variable NomEmployer(i)
    NomEmployer(i) = "employer"
     
    With ActiveWorkbook.Worksheets(NomEmployer(i))
        .Range("A1").Value = "Date"
        .Range("B1").Value = "entrée 1"
        .Range("C1").Value = "sortie 1"
        .Range("D1").Value = "entrée 2"
        .Range("E1").Value = "sortie 2"
        .Range("F1").Value = "Total"
        .Range("i1").Value = "Matricule"
        .Range("i2").Value = NomEmployer(i)
    End With
     
    j = 2
    k = 2
    While ActiveWorkbook.Worksheets("Données brute").Cells(2, 1).Value <> "" 'boucle tent qu'il y a des valeur, on ne sort pas de la boucle
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 2).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 2).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 3).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 3).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 4).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 4).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 5).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 5).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        k = k + 1
    Wend

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Eh bien il me dit erreur d'execution 9, l'indice n'appartient pas a la selection, puis il m'affiche en jaune
    With ActiveWorkbook.Worksheets(NomEmployer(i))

    Tu aurais une idée ?
    Petite précision, ça fait meme pas une semaine que je me suis mis sous excel ^^

    Bon j'ai cru a un miracle quand je l'ai lancé, mais le programme a bouclé ^^

  10. #10
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    oui excuse, j'ai fais cette macro pour qu'elle s'exécute sur la feuil employer (si tu ne la pas créé c'est normal que sa ne marche pas)

    je ne sais pas ou le nom de l'employer aparé sur ta page.

    mais le nom de l'employer en F1 pour cette macro (j'ai corrigé quelque bug)

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Dim NomEmployer(10) As String
     
    'création d'une boucle pour le jestion de tout le employer
     
    'for i=1 to 10 ' début de la boucle
    i = 1 'pour simplifier (je ne fais l'exemple que sur une personne
     
    NomEmployer(i) = ActiveWorkbook.Worksheets("Données brute").Cells(1, 6).Value 'emplacement des nom
     
    On Error Resume Next 'créé une feuil
       Sheets(NomEmployer(i)).Delete
       On Error GoTo 0
       Sheets.Add
       ActiveSheet.Name = NomEmployer(i)
     
     
     
    With ActiveWorkbook.Worksheets(NomEmployer(i))
        .Range("A1").Value = "Date"
        .Range("B1").Value = "entrée 1"
        .Range("C1").Value = "sortie 1"
        .Range("D1").Value = "entrée 2"
        .Range("E1").Value = "sortie 2"
        .Range("F1").Value = "Total"
        .Range("i1").Value = "Matricule"
        .Range("i2").Value = NomEmployer(i)
    End With
     
    j = 2
    k = 2
    While ActiveWorkbook.Worksheets("Données brute").Cells(j, 1).Value <> "" 'boucle tent qu'il y a des valeur, on ne sort pas de la boucle
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 2).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 2).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 3).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 3).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 4).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 4).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 5).NumberFormatLocal = "hh:mm"
        ActiveWorkbook.Worksheets(NomEmployer(i)).Cells(k, 5).Value = ActiveWorkbook.Worksheets("Données brute").Cells(j, 3).Value
        j = j + 1
        k = k + 1
    Wend

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    En fait sur mon fichier, ou tu peux voir mat ( c'est pour les matricules)ils voudraient ensuite sur les pages, voir le nom du type a qui correspond le matricule
    genre faire une foction

    if (nom de la cellule) = 47 then nomdelacellule="Toto"

  12. #12
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    se n'est pas un problème, nom employer n'est qu'une variable on peux parfaitement entré des matricule dedans

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Peux tu m'expliquer étape par étape comment tu fais ? Parce que là je n'y comprends rien du tout ^^ en sachant que étape 1 ce serait ouvrir le document

  14. #14
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    Comment je fais quoi ?

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    Comment dois je faire pour que la macro fonctionne, sur quelle page dois je aller ? qu'y dois je écrire ? Dans quelle cellule ? Parce qu'apres plusieurs tests, ça ne marche pas de mon coté

  16. #16
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    voissi le fichier que tu ma passé avec la macro
    Fichiers attachés Fichiers attachés

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    ça fonctionne presque, ^^ pourrais tu me dire, comment correspondre les matricules au nom ?

    Tu sais par exemple :
    Pour le matricule 4127, le nom en F1 est Toto
    Pour le matricule 4128, le nom en F2 est Tata

    et comment faire pour qu'ils lisent F1,F2,F3 etc..... et placer les nouvelles pages ?

  18. #18
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    il faut faire une boucle qui encadre la globalité de ma macro (les nouvel page se créeront toute seul)
    pour la correspondance entre le matricule et le nom je ne peux pas t'aider car je ne sais pas comment c'est disposé sur ta feuil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i=1 to nombre_Demployer
    nomEmployer = 'emplacement varient suivent la valeur de i
    matriculeEmployer = 'emplacement varient suivent la valeur de i
     
    .... macro précédente
     
    next i

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut
    que veux tu dire par
    nomEmployer = 'emplacement varient suivent la valeur de i
    matriculeEmployer = 'emplacement varient suivent la valeur de i
    je dois mettre a la place, l'emplacement des cellules, ou juste un chiffre ?

  20. #20
    Membre très actif Avatar de gourmand
    Homme Profil pro
    dessinateur projeteur mécanique
    Inscrit en
    Avril 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur mécanique

    Informations forums :
    Inscription : Avril 2011
    Messages : 153
    Par défaut
    il faux mètre l'emplacement des la cellule mais faire en sorte que l'or ce que i = 1 sa prend le premier employer et que si i = X ( X = DERNIER EMPLOYER), sa prend le dernier employer

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Aide pour de la base de données sous excel
    Par eleanor62200 dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 19/04/2011, 10h30
  2. Réponses: 2
    Dernier message: 29/05/2008, 11h13
  3. Réponses: 4
    Dernier message: 06/01/2008, 02h05
  4. [VBA-E][débutant]aide pour macro sous excel
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/06/2006, 23h42

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