Bonjour, j'ai un problème avec une macro que je n'arrive pas à résoudre.
Ma macro, contenu dans le classeur liste, sur certains événements m'ouvre un autre classeur, contenant également une macro qui modifie le nom de ce dernier.
Je n'arrive pas a récupérer le nom du fichier ouvert avec ma macro et le mettre dans une cellule du premier fichier.
Voici le code des deus macros
d'abord celui contenu dans le classeur liste
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 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim RNCName As String If Target.Column = 2 Then Select Case Target Case "RNC" Workbooks.Open ("\\Qualite\d\Holdry\RNC\RNC_nouvelle\RNC_auto.xls") Application.Wait Now + TimeValue("0:0:5") RNCName = ActiveWorkbook.GetOpenFilename ThisWorkbook.Worksheets(1).Activate Range(ActiveCell, ActiveCell).Offset(0, 1).Value = RNCName Case "DAC" Workbooks.Open ("\\Qualite\d\Holdry\DAC\DAC_nouvelle\DAC_auto.xls") Case "DAP" Workbooks.Open ("\\Qualite\d\Holdry\DAC\DAC_nouvelle\DAC_auto.xls") End Select ElseIf Target.Column = 8 Then Select Case Target Case "DAC" Workbooks.Open ("\\Qualite\d\Holdry\DAC\DAC_nouvelle\DAC_auto.xls") End Select End If End Sub
et celle contenue dans le deuxième classeur
Merci d'avance
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 Sub WorkBook_open() Dim ClaSseurRésultats As Workbook Dim Racine As String, Répertoire As String, ModèleRNC As String Dim NomFichier As String, DerNuméro As String Dim Numéro As Long, NbChiffres As Integer, Longueur As Integer Répertoire = "\\Qualite\D\Holdry\RNC\RNC_nouvelle" Racine = "RNC_0" NbChiffres = 5 Longueur = Len(Racine) + NbChiffres + Len(".xls") ModèleRNC = Répertoire & "\RNC_source.xlt" DoEvents Set classeurprojet = ThisWorkbook.Worksheets Numéro = 0 NomFichier = Dir(Répertoire & "\" & Racine & "*.xls", vbNormal) Do DerNuméro = Mid(NomFichier, Len(Racine) + 1, NbChiffres) If IsNumeric(DerNuméro) And Len(NomFichier) = Longueur Then If Val(DerNuméro) >= Numéro Then Numéro = Val(DerNuméro) + 1 End If NomFichier = Dir Loop Until Len(NomFichier) = 0 Set ClaSseurRésultats = Workbooks.Add(ModèleRNC) ClaSseurRésultats.Activate Cells(1, 47).Value = "0" & Right("00000" & Numéro, 5) ClaSseurRésultats.SaveAs (Répertoire & "\RNC_0" & Right("0000" & Numéro, 5)) ThisWorkbook.Activate Application.DisplayAlerts = False ThisWorkbook.Close End Application.DisplayAlerts = True End Sub
Partager