Bonjour,
Je me permet de venir chercher de l'aide ici car dans le cadre de mon travail on me demande de faire des macro pour nous simplifier la vie et même si je "bidouille" un peu je reconnais que quand ça bug je ne sais comment résoudre le problème :
Je dois consolider des fichiers enregistré dans un dossier. Tous les fichiers ont des nom différents (TYPE_EMPLOI_NOM_DATE_ENVOI) et le nombre de fichier sera évolutif au fil des mois.
Petite difficulté supplémentaire, chaque fichier est protégé à l'ouverture par un mot de passe unique (lui même généré par macro lors de l'enregistrement) le mot de passe se décompose comme suis : Rem + 1ère lettre du NOM + Nb Caractère du NOM
en exemple : si la personne s'appelle DUPUIS le mdp sera RemD6
J'ai deux question :
première chose j'avais un problème de DO pour ma boucle, j'ai rajouté un end with donc plus de problème mais impossible que la macro marche...
deuxième chose quand je souhaites rajouté la présence du MDP impossible car il me dit "attendu fin d'instruction" à partir du moment même ou je met le , ah et je m'interroge sur le fait que j'ai bien défini le mot de passe en fonction du Nom du fichier
Ah et finalement 3ème chose s'il y a des choses pas logique dans mon code n'hésitez pas à me le dire je dois reconnaitre que j'essai de me perfectionner mais ce n'est pas mon métier à la base.
Si par avance quelqu'un saurais m'aider je lui en serais réconnaissante car cela fait plusieurs hours que je me prend la tête sur ce code et je n'arrive pas à le modifier pour qu'il fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Sub EtudeRem() Dim Rep As String Dim ClasseurConsolidé As String Dim ClasseurSource As String Rep = ThisWorkbook.Path If Rep = "" Then GoTo FIN End If ClasseurConsolidé = ActiveWorkbook.Name ClasseurSource = Dir(Rep & "\*.xlsx") mdp = "Rem" & Left(UCase(Fichier.Name), 1) & Len(Split(Fichier.Name, " ")(0)) 'OUVRE ET RECUPERE LES DONNEES DE CHAQUE EXTRACTION Do While ClasseurSource <> Empty NomFichier = Fichier.Name If Not Fichier.Name = "referentiel Etude Rem.xlsm" Then With Workbooks.Open(Rep & "\" & ClasseurSource, UpdateLinks:=0), password=mdp) On Error Resume Next Application.Workbooks(ClasseurSource).Worksheets("CONSO").Activate Range("A3:AA3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Application.Workbooks(ClasseurConsolidé).Worksheets("Référentiel").Activate Range("A3").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste On Error GoTo 0 .Close False End With ClasseurSource = Dir Loop End If FIN: End Sub
D'avance merci à tous,
Yuukia
Partager