VBA, compteurs et nouvelles pages

Bonjour à tous les forumeurs et forumeuses,

je requiers votre aide, on m'a confié pour mon stage un projet de pointeuse sous excel, en effet dans les fichiers ci-joint, vous verrez, une liste de matricules, de dates et d'heures, ils voulaient que cela soit rangé par matricule, et faire un nouvel onglet pour chaque matricule, jusque la je n'ai eu aucun probleme, il m'a suffi de créer un compteur, malheureusement il voudrait avant cette étape, voir les données brutes un peu plus ordonnées, et pour mieux vous expliquer voici donc le fichier joint.

-- 14 Juin 2011, 10:57 --

J'ai le code précédant, c'est a dire celui qui pour chaque matricule crée un nouvel onglet mais je n'arrive pas a le retransformer pour une seule page, donc si quelqu'un a une idée ? =(

84fichier-joint.xlsx (11.62 Ko)

Bonjour et bienvenue

Je ne comprends pas bien. Tu veux 1 page du genre "ce qu'ils veulent obtenir" mais avec tous les matricules à l'intérieur ET 1 page par matricule ?

colpasus a écrit :

J'ai le code précédant, c'est a dire celui qui pour chaque matricule crée un nouvel onglet

Tu peux le donner ?

Amicalement

Nad

Non ils veulent juste la page ce qu'ils veulent obtenir, comme tu l'a vu, pour chaque matricule il y a 4 lignes pour la meme journée, 4 lignes qui prennent les entrées et les sortiles, et celà ils voudraient le voir sous la forme que tu vois.

  Dim NomEmployer(10) As String
Dim NumereauMatricule(10) As String
Dim K As String
Dim enplacementEmployer(10) 'je ne savais pas comment appeler la variable

NomEmployer(1) = "toto" ' nom employer et matricule qui corespond
NumereauMatricule(1) = 4127
NomEmployer(2) = "tata"
NumereauMatricule(2) = 4144
NomEmployer(3) = "tarzen"
NumereauMatricule(3) = 4145
NomEmployer(4) = "DD"
NumereauMatricule(4) = 4149
NomEmployer(5) = "moi"
NumereauMatricule(5) = 4158
NomEmployer(6) = "toi"
NumereauMatricule(6) = 4163
NomEmployer(7) = "lui"
NumereauMatricule(7) = 4164
NomEmployer(8) = "elle"
NumereauMatricule(8) = 4166
NomEmployer(9) = "autre"
NumereauMatricule(9) = 4169

EmployerTotal = 9 'nombre total d'employer

For i = 1 To EmployerTotal
On Error Resume Next 'créé les feuil feuil
   Sheets(NumereauMatricule(i)).Delete
   On Error GoTo 0
   Sheets.Add
   ActiveSheet.Name = NumereauMatricule(i)
   With ActiveWorkbook.Worksheets(NumereauMatricule(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 = NumereauMatricule(i)
        .Range("i2").Value = NomEmployer(i)
    End With
Next i

j = 2
For i = 1 To EmployerTotal
enplacementEmployer(i) = 2
Next i
matriculePressedent = "0"

While ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 1).Value <> "" 'boucle tent qu'il y a des valeur, on ne sort pas de la boucle
    For i = 1 To EmployerTotal
        If ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 4).Value = NumereauMatricule(i) Then
            K = NumereauMatricule(i)
            m = i
        End If
    Next i

    If matriculePressedent = K And L = 3 Then
        L = 4
    Else
        ' tu peux placé le code ici
        ' ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(M),1).Value = date
        L = 2
        enplacementEmployer(MPressedent) = enplacementEmployer(MPressedent) + 1
    End If

    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), L).NumberFormatLocal = "hh:mm"
    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), L).Value = ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 3).Value
    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), 1).Value = ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 2).Value
    L = L + 1
    j = j + 1
    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), L).NumberFormatLocal = "hh:mm"
    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), L).Value = ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 3).Value
    ActiveWorkbook.Worksheets(K).Cells(enplacementEmployer(m), 1).Value = ActiveWorkbook.Worksheets("Pointeuse 1").Cells(j, 2).Value
    j = j + 1
    matriculePressedent = K
    MPressedent = m

comme tu verra si tu l'active, tu verras 10 pages correspondant au 10 matricules qui vont s'ouvrir, et dans chacune de ces pages sera présenté les informations de la maniere que eux voudraient le voir sur une seule page. Mais je ne parviens pas à modifier ce code

-- 14 Juin 2011, 13:13 --

Personne pour m'aider un peu ?

Bonjour

Un essai

Bonjour

Vois le fichier joint. Dans la feuille 1 j'ai placé un bouton. Clique dessus pour faire l'action en feuille 2

C'est cela que tu veux ?

Si ok, clique sur le V vert pour cloturer le fil

Amicalement

Edit : oups déso Banzai, je n'avais pas vu que tu avais posté.

88colpasus-1.zip (11.52 Ko)

ça m'a l'air de bien fonctionner banzai, merci beaucoup à toi, mais pourrais tu m'expliquer ton code ? que je comprenne un petit peu quand meme ^^

et surtout, pourquoi met il des matricules en jaune ?

Re,

C'est dans le code de Banzai que tu vois les cellules en jaune non ?

Amicalement

Edit Dan : Lol ! tu édites ton fil sans prévenir là. Une fois tu mets Banzai, une fois Dan.

P.S : Dan ça fonctionne tout aussi bien de ton coté, mais ça ne prend pas en compte le fait que quelqu'un est oublié de valider une entrée, ce qui fait que si il n'y en a pas 4 il ne le copie pas mais merci à toi pour ton aide, c'est vraiment sympa

Bonjour

Le jaune c'est du fait main 100% Banzai64 (juste pour me repérer)

Il y a quelques explications dans le code

Et avantage suprême il y a la touche F1 (Tu mets le curseur sur le mot puis appuies sur F1) et si le mot fait partie de la syntaxe VBA tu auras une aide , pas en 4, pas en 3 mais en 2 dimensions.

Si des actions que tu ne comprends pas , j'essaierai te les expliquer

Bonne journée

tres bien, alors explique moi le code étape par étape, car j'ai été initié a excel et vba il y a meme pas deux semaines, donc tout ce que je sais faire c'est du if end if, while endwhile, plus quelques macros sous excel transcrits sous VBA, je sais ça va faire un peu beaucoup.

bonjour à tous,

J'arrive encore à la bourre, je poste quand même !

Voir feuille "résultat" avec liste déroulante

donc une seule feuille

Amicalement

Claude

Bonsoir

Regardes le code il y a quelques explications

Ce n'est pas un code compliqué

Et je t'ai dis uses et abuses de la touche F1, tu trouveras une multitude de renseignement

Pour apprendre va faire un tour https://www.excel-pratique.com/fr/index.php

Bonne journée

Probleme, ils veulent maintenant faire avec ce code, ce que j'avais plutot, c'est a dire en plus de ce qu'il permet de faire créer une page par matricule, quelqu'un saurait comment dois je modifier le code ?

Bonjour,

ils voulaient que cela soit rangé par matricule, et faire un nouvel onglet pour chaque matricule

Tu n'a pas su leur expliquer que c'est inutile d'avoir une feuille par matricule !

voir mon fichier avec liste déroulante

Sans moi pour le reste !

Amicalement

Claude

Rechercher des sujets similaires à "vba compteurs nouvelles pages"