Besoin assistance pour trier données par formules, macros ou autres

jlm94

XLDnaute Junior
Bonjour,
Notre Registre du Personnel récupère une parties des infos salariés par formule à partir
de notre base de donnée d'information salariés.
Ce registre est lourd à gérer car nous travaillons uniquement avec des CIDD qui sont des contrats de très courte durée, donc beaucoup de lignes à remplir et il doit être tenu à jour en permanence en cas de contrôle.
(pour infos sur 2013, nous avons signés 1400 contrats (pour 50 animateurs en moyenne)

Ce registre du personnel s'implémente par date d'entrée (date de début de chaque contrat)
Mais pour simplifier le suivi de ces contrats de vérifier les retours signés nous avons un second onglet
"suivi de contrat" qui s'implémente automatiquement à partir de l'onglet "RP"
et dans lequel nous ajoutons des données pour la gestions de retour contrats signés.

Et c'est la que je rencontre une difficulté car je voudrais trier les données de l'onglet "Suivi de contrat" par NOM
alors que l'onglet source "RP" lui est classé par date d'entrée.
Donc lorsque je trie les données se classe bizarrement, et lorsque j'ajoute un contrat il ne vient pas se classer
par nom dans l'autre onglet.

Je pense que tout cela sera certainement confus pour vous donc je joins deux classeurs pour exemple:
"Coordonnées-Animateurs TEST.xlsx" qui est un exemple de notre base de données salariés
"RP+suivi de contrat TEST.xlsx" qui est un exemple de notre registre du personnel et du suivi de contrat.

Mon besoin: Filtrer l'onglet "Suivi contrat" par Nom sans que cela perturbe la mise en forme
et que les lignes rajoutées à "RP" viennent se rajouter dans "suivi de contrat (par nom)

Je n'ai pas filtré l'onglet "suivi de contrat" par Nom pour que vous voyez le résultat lorsqu'on tente de filtrer.

toute aide sera la bienvenue car je ne suis pas un expert excel.

Merci par avance.
 

Fichiers joints

vgendron

XLDnaute Barbatruc
Re : Besoin assistance pour trier données par formules, macros ou autres

Bonjour,

quand tu dis
Donc lorsque je trie les données se classe bizarrement, et lorsque j'ajoute un contrat il ne vient pas se classer
par nom dans l'autre onglet.
ca veut dire quoi bizarrement?

moi quand je suis dans l'onglet suivi contrat, je clique dans la colonne nom (en A5 par exemple), ensuite je clique le bouton de tri (AZ descendant), le tri se fait bien.. avec toutes les lignes vides en premier..

ensuite. quand je rajoute un contrat dans RP, il arrive automatiquement en première ligne de "suivi contrat". et donc. à nouveau un tri.. c'est bon..
 

jlm94

XLDnaute Junior
Re : Besoin assistance pour trier données par formules, macros ou autres

Merci pour ta réponse,
effectivement comme tu le dis il y a des lignes vides au début, (et lorsque l'on est dans le vrai document
(dont RP contient 7000 lignes environs) cela represente énormément de lignes vides.
A quoi cela correspond et peux t'on ramener automatiquement les données en haut

et de plus comme tu le dis, un ajout vient se positionner au début alors que nous recherchons un moyen qu'il se positionne dans les lignes au bon endroit.

merci.
 

vgendron

XLDnaute Barbatruc
Re : Besoin assistance pour trier données par formules, macros ou autres

Re,

Voici un premier jet...

avec des zones nommées pour simplifier les formules
-->il faut encore modifier pour qu'elles soient dynamiques comme ca. à chaque ajout de ligne. elle est prise automatiquement en compte

et une colonne "Rang" pour un calcul intermédiaire
 

Fichiers joints

vgendron

XLDnaute Barbatruc
Re : Besoin assistance pour trier données par formules, macros ou autres

voila.. en utilisant la fonction indirect pour définir les zones de noms

à chaque fois que tu ajoutes un nom dans l'onglet RP. il faut juste tirer la dernière ligne dans "Suivi Contrat" pour recopier les formules.. et ca se met à jour tout seul
 

Fichiers joints

jlm94

XLDnaute Junior
Re : Besoin assistance pour trier données par formules, macros ou autres

Merci pour ton travail mais il y a un bug sur l'onglet "Suivi contrat" (ou c'est moi qui a pas tout piger peut-être)
j'ai bien compris le tirage de la ligne dans suivi lors de l'ajout dans RP pour la maj.
mais si tu prends l'exemple de DURANT les données entrée/sortie sont fausses, se sont les mêmes dates répétées
alors que chaque ligne est differente dans RP.

Merci
 

vgendron

XLDnaute Barbatruc
Re : Besoin assistance pour trier données par formules, macros ou autres

ah... j'avais pas fait attention..

voici une solution avec macro..

Code:
Sub Macro1()
'
' Macro1 Macro
'

'
   ' pourrait servir pour une initialisation: quand l'onglet Suivi Contrat est vide pour la première fois..
   ' Range("RP_Nom").Copy Destination:=(Sheets("Feuil2").Range("A2"))
   ' Range("Rp_Prenom").Copy Destination:=(Sheets("Feuil2").Range("B2"))
   ' Range("Rp_De").Copy Destination:=(Sheets("Feuil2").Range("C2"))
   ' Range("Rp_Ds").Copy Destination:=(Sheets("Feuil2").Range("D2"))
    
    'recopie de la ligne dans l'onglet Suivi Contrat (certaines colonnes seulement)
    With Sheets("RP")
        .Range(.Range("A2").End(xlDown), .Range("A2").End(xlDown).Offset(0, 1)).Copy Destination:=Sheets("Suivi contrat").Range("A2").End(xlDown).Offset(1, 0)
        .Range(.Range("G2").End(xlDown), .Range("G2").End(xlDown).Offset(0, 1)).Copy Destination:=Sheets("Suivi contrat").Range("C2").End(xlDown).Offset(1, 0)
    End With
    
    'après insertion d'une nouvelle ligne en fin de tableau, on retrie sur la date d'Entrée colonne H
    
'    Range("A2").Select
    ActiveWorkbook.Worksheets("RP").Sort.SortFields.Clear
    nb = Range("A2").End(xlDown).Row
    
    ActiveWorkbook.Worksheets("RP").Sort.SortFields.Add Key:=Range("A2:A" & nb), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("RP").Sort
        .SetRange Range("A1:I" & nb)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    
    'tri sur date d'entrée de l'onglet RP selon date d'entrée ET nom
    ActiveWorkbook.Worksheets("Suivi contrat").Sort.SortFields.Clear
    nb = Range("A2").End(xlDown).Row
    
    ActiveWorkbook.Worksheets("Suivi contrat").Sort.SortFields.Add Key:=Range("C2:C" & nb), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Suivi contrat").Sort.SortFields.Add Key:=Range("A2:A" & nb), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Suivi contrat").Sort
        .SetRange Range("A1:F" & nb)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
End Sub
 

Fichiers joints

Discussions similaires


Haut Bas