Liste absence

bonjour à tous,

j'ai besoin de votre aide, j'ai une liste nominatif "feuil1" avec des stagiaires est leur type d'absence ainsi que leurs dates, je souhaite arriver au feuil2 "résultat" automatiquement avec le nombre de stagiaire dans la même absence les insertions des lignes automatiquement par rapport au nombre de stagiaire absent

merci encore

cordialement

33testt.xlsx (10.26 Ko)

Je vois au moins 2 solutions pour résoudre ton problème sans macro :

  • La fonctionalité sous-total d'excel (il suffit juste de trier ton tableau par type d'absence.
  • Un Tableau croisé dynamique (là tu n'as pas besoin de tri)/

Après si tu préfère faire ça avec une macro, même chose tu tri ton tableau par type d'absence... A chaque changement de type d'absence tu rajoute la ligne de type dans ton tableau et tu recopie les infos

Tu fais parcourir ton tableau jusqu'à la fin.

bonsoir astragor,

merci de prendre le temps de lire mon sujet, enfaite la feuil1 c'est une extraction que je ferai avec les renseignements comme ils sont labas, je sais que je peux trié avec un sous-total, par contre le tableau croisé dynamique m'intéresse s'il donne la même chose que la feuil"résultat" car je suis obliger de rester sur cette format.

merci encore

bonsoir

pour le sport ...... sans vba (integralement automatisé)

cordialement

29robich.xlsx (15.58 Ko)

merci tulipe c'est super

cordialement

bonjour tulipe,

j'ai trouver un bug quand je copier une liste avec une 20 absence ne m'affiche pas correctement sur la partie absence.

cordialement

bonjour

peut etre un probleme de sous- incrementation ; deplus bien mettre le nom et prenom ;c'est capital ces 2 cases servent a dimensionner "absence" dans les formules

neanmoins mon truc ne vaudra jamais une solution en VBA , il faut le considérer comme un exercice de faisabilité pour une 100aine de ligne a traiter

essaye avec celui -ci

8robich2.xlsx (34.17 Ko)

cordialement

merci tulipe,

dans mon cas je gère plus de 400 personnes, je souhaite avoir un truc fiable qui bug pas souvent et au même temps le plus simple possible car pas le seul qui travail avec.

tu me conseil de penché sur une solution VBA?

cordialement


rebonjour tulipe,

j'ai essayer avec à peut pris 400 personnes, en copiant les nom et les prénom sa me fait le même problème.

cordialement

re

j'avais fait pour20 sur robich 2 ; pour 400 il faut du VBA car le tablo qui sert a alimenter Decaler devient gigantesque

cordialement

voila pour +/- 300

entre nous : un listing pareil devient vite exploitable ; je te conseille d'inclure un critere de date pour au moins cibler un peu

33robich3.xlsx (103.88 Ko)

sinon tu peu toujours utiliser les filtres

cordialement

merci

enfaite la liste sur feuil1 je l'extraire d'un logiciel directement avec tous les absences comme elle est sur l'exemple, c'est le deuxième feuil2 que je doit rendre chaque jour, ta une aidez pour le code vba que je peux débuter avec?

cordialement

re

je te conseille d'inclure un critere de date pour au moins cibler un peu

comment en peu le faire?

ta une aidez pour le VBA?

merci encore

re

pour le coup des dates ;on verra ça lundi ou mardi (c'est vrai que c'est plus pertinent ) >>>tu decretes une fouchette et on extrait

pour le VBA ; je n'y connais quasi rien

cordialement

ok merci tulipe pour ton aide et ton temps consacrer pour moi.

cordialement

Bonsoir à tous,

Comme ceci :

Option Explicit
Sub test()
Dim a, w(), dico As Object, i As Long, n As Long
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Feuil1").Range("a1").CurrentRegion
        a = .Value
        For i = 2 To UBound(a, 1)
            If IsEmpty(a(i, 11)) Then a(i, 11) = "présent"
            If Not dico.exists(a(i, 11)) Then
                If i = 2 Then
                    ReDim w(1 To 6, 1 To 3)
                    w(1, 1) = a(1, 2): w(2, 1) = a(1, 3)
                    w(3, 1) = a(1, 4): w(4, 1) = a(1, 11)
                    w(5, 1) = a(1, 12): w(6, 1) = a(1, 13)
                    w(4, 2) = a(i, 11)
                Else
                    ReDim w(1 To 6, 1 To 2)
                    w(4, 1) = a(i, 11)
                End If
            Else
                w = dico(a(i, 11))
                ReDim Preserve w(1 To 6, 1 To UBound(w, 2) + 1)
            End If
            w(1, UBound(w, 2)) = a(i, 2): w(2, UBound(w, 2)) = a(i, 3)
            w(3, UBound(w, 2)) = a(i, 4): w(4, UBound(w, 2)) = a(i, 11)
            w(5, UBound(w, 2)) = a(i, 12): w(6, UBound(w, 2)) = a(i, 13)
            dico(a(i, 11)) = w
        Next
    End With
    Application.ScreenUpdating = False
    'restitution et mise en forme
    With Sheets("feuil2").Range("a1")
        .CurrentRegion.Cells.Clear
        For i = 0 To dico.Count - 1
            With .Offset(n).Resize(UBound(dico.items()(i), 2), UBound(dico.items()(i), 1))
                .Value = Application.Transpose(dico.items()(i))
                .BorderAround Weight:=xlThin
                If i = 0 Then
                    With .Rows(1)
                        .BorderAround Weight:=xlThin
                        .Interior.ColorIndex = 36
                    End With
                    With .Rows(2)
                        .BorderAround Weight:=xlThin
                        .Interior.ColorIndex = 40
                    End With
                Else
                    With .Rows(1)
                        .BorderAround Weight:=xlThin
                        .Interior.ColorIndex = 40
                    End With
                End If
            End With
            n = n + UBound(dico.items()(i), 2)
        Next
        .CurrentRegion.Columns.AutoFit
    End With
    Application.ScreenUpdating = True
    Set dico = Nothing
End Sub

klin89

bonjour klin89,

merci d'avoir pencher sur mon problème, mais j'ai quelque question

ce code je l'insère dans un module ou sur la feuil1, la mise à jour ca se fait sur une bouton désolé d'avoir posé ces questions car je suis novice au vba j'essaye de s'améliorer

merci encore

bonjour

pour cette solution VBA ; je suppute qu'elle ne prend que les case "present"

1) dans ton fichier pas de "present ; mais un vide ( qui veux dire : present)

2) qu'advient il des autres criteres

3) notion de date ???

cordialement

bonjour tulipe,

oui c'est bien ça les cases vide veux dire les personnes sont présent, moi c'est simple je fait l'extraction des données qui sont dans la feuil1 tous les données y compris les dates, je souhaite avoir par exemple un bouton mise à jour je clic dessus est ça me donne feuil résultat.

cordialement

Rechercher des sujets similaires à "liste absence"