XL 2013 Historiser une BDD à partir d'un critère

Etn

XLDnaute Occasionnel
Bonjour les gens !

Me revoilà aujourd'hui car je n'arrive pas à résoudre mon problème.

Voici le contexte :

Tous les jours j'extrais une base de données en A1 qui répertorie tous les employés présents de l'entreprise (cf fichier joint onglet extraction). A partir de ça je souhaiterais obtenir l'historique de tous les employés arrivés dans l'entreprise en 2016. (cf onglet Référencement arrivée 2016). Néanmoins les gens qui sont arrivés entre le 01/01/2016 et qui sont parti avant aujourd'hui ne sont plus dans l'extraction (les noms en rouge dans l'onglet Extraction), mais je voudrais qu'ils soient quand même présents dans l'onglet référencement.

Quelqu'un aurait une idée pour résoudre ce problème. J'ai pensé à stocker toutes les extractions puis faire un TCD, mais ce n'est pas une solution viable à long terme (extraction de 300 lignes tous les jours, ça prendrait trop de place).

Merci d'avance pour votre aide, bonne journée,

Etn
 

Pièces jointes

  • exemple extraction.xlsx
    9.6 KB · Affichages: 32
  • exemple extraction.xlsx
    9.6 KB · Affichages: 40

thebenoit59

XLDnaute Accro
Re : Historiser une BDD à partir d'un critère

Bonsoir Etn.

Je te joins une réponse par macro.
Une fois ta liste extraire dans la première feuille, appuie sur Ctrl + k pour lancer la procédure.
 

Pièces jointes

  • exemple extraction.xlsm
    16.7 KB · Affichages: 43

CBernardT

XLDnaute Barbatruc
Re : Historiser une BDD à partir d'un critère

Bonjour Etne, thebenoit59 le forum,

Une macro qui réalise l'historique des personnes entrées depuis le 1er janvier 2016.
Il est possible de changer la date en L1 pour d'autres extraction.
 

Pièces jointes

  • Historisque de l'année-V1.xlsm
    28.7 KB · Affichages: 31
  • Historisque de l'année-V1.xlsm
    28.7 KB · Affichages: 38

Etn

XLDnaute Occasionnel
Re : Historiser une BDD à partir d'un critère

Rebonjour,

Excusez moi je reviens vers vous car j'ai répondu un peu trop hâtivement (j'étais dans le train et je n'avais pas le temps de faire beaucoup de tests).

Tout d'abord pour CBernardT, votre formule est très pratique pour récupérer uniquement les arrivées en 2016 néanmoins si l'employé n'apparait plus dans l'extraction, il n'apparait plus non plus dans le tableau de référencement. Finalement plutôt que d'historiser les données voulues de l'extraction, elle ne fait qu'appliquer un filtre en fonction de la date en L1.

Pour la macro de thebenoit59, elle répond davantage à ma demande, malgré que, elle ne fasse pas de sélection concernant les dates d'arrivées (besoin que j'ai contourné en utilisant un TCD), elle historise correctement les données.

En effet voici ce que cela donne quand j'essaye d'adapter :

Code:
Option Explicit

Sub Extraction()
Dim i As Long, d As Object
With Sheets("Opérations")
Set d = CreateObject("scripting.Dictionary")
For i = 2 To .[g65000].End(xlUp).Row: d(.Cells(i, 1).Value) = "": Next i
End With
With Sheets("Base J-1")
For i = 2 To .[g65000].End(xlUp).Row
    If Not d.exists(.Cells(i, 1).Value) Then .Range(.Cells(i, 1), .Cells(i, 25)).Copy Sheets("Opérations").Cells(Sheets("Opérations").[g65000].End(xlUp).Row + 1, 1)
Next
End With
End Sub

J'ai changé le nom des feuilles et j'ai remplacé a65000 par g65000 car mon matricule se trouve en colonne G.
Néanmoins les nouvelles lignes ne se copient pas sur mon fichier quand je change le numéro du matricule (sûrement dû au fait que le changement de matricule n'est pas détecté).
Je n'ai pas link le fichier original dès le début pour des raisons de confidentialités, mais également pour que je pratique un peu le VBA et que je comprenne au mieux les macros que vous m'envoyez en les adaptant à mon fichier (et pas seulement recopier bêtement).

Du coup j'ai joint le fichier qui correspond quasiment à ce sur quoi je bosse (j'ai modifié les données), et le test que je réalise c'est utiliser une première fois la macro pour voir si cela copie bien tout. Puis je modifie juste le N°histo en G114 et G115 pour vérifier si cela rajoute bien 2 nouvelles lignes (car normalement 2 nouvelles opérations) mais cela ne fonctionne pas, pourtant cela fonctionne bien sur ton fichier d'origine thebenoit59. :confused:

Je ne sais pas si j'ai été très clair, en tout cas merci pour votre aide !

Bonne soirée,

Etn.
 
Dernière modification par un modérateur:

thebenoit59

XLDnaute Accro
Re : Historiser une BDD à partir d'un critère

Bonjour Etn.

La seule erreur vient du d(Cells(i, 1).Value)
En effet, sur le premier fichier, nous travaillons avec la colonne 1, donc Cells(i, 1)
Dans le nouveau fichier le matricule est en colonne 7, alors il faut modifier en conséquence :).
 

Discussions similaires

Statistiques des forums

Discussions
314 207
Messages
2 107 261
Membres
109 790
dernier inscrit
hakim.kerbiche