Correction macro

bonjour,

L'onglet "depart" me ramene 1) les personnes qui quittent l'entreprise (tableau du haut)

Agents qui passent de 1 à 0

2)Les personnes qui arrivent dans l'entreprise (tableau du bas)

Agents qui passent de 0 à 1

Mon problème se situe sur le tableau du bas (arrivée). j'ai un decalage d'un mois. Il me ramène le mois qui est à 0. or je voudrais que le nom apparaisse sur le premier mois à 1

merci de votre aide

Change le -4 en -3 comme ceci :

Worksheets("depart").Cells(Ligne_arrivee_IDE(i), i - 3).Value

et

Worksheets("depart").Cells(Ligne_arrivee_AS(i), i - 3).Value

il est clair (!) que le code est vraiment compliqué à lire et à entretenir.

Merci

Ton sujet est très intéressant ... du reste cela fait 2 fois que je m'y plonge. J'ai eu aussi à gérer les départs et arrivées de 400p.

Mais je pense qu'il est encore incomplet ... quid des départs ou arrivées au 1er janvier si on n'a pas déc de l'année précédente, quid des mi-temps thérapeutiques, ou temps partiels.

Le code est aussi complexe ... je pense qu'un jour quand j'aurais un peu d etemps, je m'y mettrai.

bonsoir.

oui je suis d'accord, la macro peut etre amélioree.

Là j'essaie de bidouiller une macro pour exporter le nom des agents qui sont en congés maternité, MTT,AT, CLM (colonne s à w) sous forme de tableau . Comme celui des départs arrivées , mais je n'arrive pas à prendre colonne par colonne.

Sachant que le fichier joint n'est qu'une partie du fichier reel. Je perds un temps fou à faire le point chaque mois pour mon employeur

en tout cas merci de t'interesser à mon fichier.

Je suis en phase d'apprentissage, je comprends très bien les macros mais j'ai du mal à les creer

.Bonne soiree

Voici un code légerrissime, pourrait être encore plus simplissime ... sans être célébrissime ! ... la PJ arrive, il faut que je change d'ordi (dropbox ne m'a pas encore renvoyé le bidule)


voilà voilou ...

Option Explicit
Sub mouvements()
Dim arrivee, depart, mois, nom, top
top = False 'passer le premier mois
Sheets("donnees").Select
For Each mois In Range(Range("debutcalend"), Range("debutcalend").End(xlToRight))
    If top Then
        arrivee = 1
        depart = 1
        For Each nom In Range(Range("debutnoms"), Range("debutnoms").End(xlDown))
            If Cells(nom.Row, mois.Column).Value < Cells(nom.Row, mois.Column - 1) Then
                depart = depart + 1
                Sheets("departs").Cells(depart, mois.Column - 1).Value = nom.Value
            ElseIf Cells(nom.Row, mois.Column).Value > Cells(nom.Row, mois.Column - 1) Then
                arrivee = arrivee + 1
                Sheets("arrivees").Cells(arrivee, mois.Column).Value = nom.Value
            End If
        Next nom
    Else
        top = True
    End If
Next mois
End Sub

resterait à faire les mi-temps thérapeutique, temps partiels, retour d'absences longue durée ... en jouant sur des valeurs différentes de 0 et 1 et en captant le commentaire de la zone par exemple

11mouvements.xlsm (18.81 Ko)

Merci,

Mais comment integrer cette macro sur l'ensemble de mes onglets?.

Merci

Merci,

Mais comment integrer cette macro sur l'ensemble de mes onglets?.

Merci

N'essaye pas d'intégrer pour le moment, la simplification du code marche aussi avec une structuration des données plus claire pour moi. Ensuite il faudra voir après prises en compte des AT, absences longues, si tu peux ou non adapter tes données.

Je poursuis de mon côté un projet somme tout similaire.

Rechercher des sujets similaires à "correction macro"