Recherche de nom et extraction/copie de donnees
bonjour a tous,
j'essaye d'optimiser mon taff au boulot et j'ai besoin de votre aide
j'ai 2 classeurs
* 1 classeur multionglets par annees comprenant un tableau avec des noms et en face des dates de formations effectuées
* un second classeur reprenant la même structure de tableau ( même colonnes concernant les formations ) avec la colonne NOM remplie
je cherche une macro ou vba qui lirait le tableau de classeur 2 sur la colonne NOM et irait parcourir les onglets du classeur 1 a la recherche de ce nom et copierait le contenu des colonnes de formation ( dates ) dans le premier tableau
les dates peuvent être écrasées si elles sont plus vieille de celles recuperees
il y aurait une 100aine de nom a parcourir environ sur 5 onglets pour le moment ( 2014/2015/2016/2017/2018 )
le fichier RECAP Formations est celui qui contient les donnees mise a jour
le fichier RECAP Formations Nuit forum est celui qui contient les noms et sur le quel on doit écrire les donnees recuperees dans RECAP Formations
merci pour votre aide
PS : on peut évacuer le pbm du multi onglet, je le traiterais a la main dans un premier temps, l'automatisation étant nécessaire que sur l'année en cours
PS2 : le fichier contenant les données est un fichier réseau inaccessible a l'écriture, mais je peux le copier tous les mois dans le même dossier que mon tableau pour effectuer la MAJ
Bonjour,
à tester,
Sub test()
Dim wk1 As Workbook, wk2 As Workbook, sh As Worksheet
Dim f As Worksheet
Dim tn As String, tp As String
Set wk2 = Workbooks("RECAP Formations.xlsx")
Set wk1 = Workbooks("RECAP Formations Nuit forum.xlsm")
Set sh = wk1.Sheets("2017")
LasrRow = sh.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To LasrRow
tn = sh.Cells(i, 2)
tp = sh.Cells(i, 3)
If tn <> "" Then
dt = trouve(tn, tp, wk2)
If dt < sh.Cells(i, 2) Then sh.Cells(i, 2) = dt
End If
Next
End Sub
Function trouve(nom As String, prenom As String, fichier As Workbook)
Dim f As Worksheet
With fichier
For Each f In .Worksheets
With f
On Error Resume Next
addr = .Cells.Find(What:=nom, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Address
If .Range(addr).Offset(0, 1) = prenom Then
trouve = .Range(addr).Offset(0, -3)
End If
End With
Next
End With
End Function
merci de prendre le temps de m'aider
pour voir si j'ai pas fait d'erreur sur la mise en place
j'ai fait inserer module sur le thisworkbook du fichier "RECAP formation nuit"
ensuite execution avec mes 2 fichiers ouverts
--> le script copie actuellement la date d’entrée et remplace/efface la colonne NOM en inscrivant la date d’entrée sur le tableau "RECAP formation nuit" a la place du nom
les dates a capturer et coller sont dans les colonne I a V
( j 'adapterais le fichier NUIT pour avoir le même ordre de colonne que le fichier source )
j'ai corrigé les petites fautes de frappe que j 'ai vu mais même resultat ( lasrRow au lieu de LastRow )
bonjour
salut sabV
je gère les formations de 8 entreprises
sous Excel pour d'entre elles
faire simple pour faire durable
une feuille en colonnes simples :
- année (si formations pluriannuelles, on fera plusieurs lignes de saisie ! )
- nom prénom
- service
- nom formation
- domaine formation
- dates prévisionnelles (format texte pour pouvoir saisir "environ de juin à oct 2018"
- organisme
- intitulé de formation
- décidée Oui/non (colonne très importante)
- dates réelles
- Terminé Oui/non (colonne très importante)
- résultat
- date validation du résultat en interne
- qui a validé en interne
- appréciation du stagiaire
ajoute des colonnes comme : durée, coût, financeur(s) etc.
ça fait breaucoup de colonnes, et au fil des ans des centaines de lignes.
ensuite des TCD pour extraire des données, faire des stats, des bilans, des états de compétences par personne, des KPI, des indicateurs etc.
il est facile de faire un lien avec le tableau de polyvalence
tu auras compris qu'on ne change pas d'onglet chaque année !
bonjour,
merci pour tout ces conseils
seul soucis pour moi c'est que je gère que le personnel de nuit et que je n'ai pas la main sur le premier fichier
d ou ma demande pour extraire les données gérées par quelqu'un d'autre pour faire un tableau "a ma sauce".
j' avis déjà compilé tt les onglets en 1 seul ^^ car sinon c'est trop chiant pour retrouver ses petits !