Bonjour
je voudrais, en fermant un fichier mettre à jour un second fichier.
le code est écrit dans le fichier que l'on ferme :
dans un module, de ce même classeur, on trouve le code svt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Sheets("SAISIES").[J2].Value <> "Mq" Then Call NirFait ... End sub
Quand je ferme le fichier du code j'ai une erreur sur Windows("Wb Accueil.xlsm").Activate avec l'erreur "l'indice n'appartient pas à la sélection" or je suis sûr du nom du fichier. si manuellement j'active le 2ème fichier, la fin du code se déroule parfaitement.
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 Sub NirFait() Dim Rg As Range, Lg As Integer, Ch As String, DerLg As Long Dim SupSeul As Integer, SupRah As Integer, SupRacl As Integer, SupDp As Integer, SupLiq As Integer Application.ScreenUpdating = False With ThisWorkbook Ch = .Sheets("Sh2").[J2].Value SupSeul = .Sheets("Sh1").Range("F22") SupRah = .Sheets("Sh1").Range("F24") SupRacl = .Sheets("Sh1").Range("F23") SupDp = .Sheets("Sh1").Range("F25") SupLiq = .Sheets("Sh1").Range("F26") End With Windows("Wb Accueil.xlsm").Activate Lg = Sheets("Données").Range("TbStr[Nom Fichier]").Find(Ch, lookat:=xlWhole).Row With Sheets("Suivi Prod") '5 = différence de ligne entre la feuille donnée et la feuille Suivi prod .Range("H" & Lg + 5) = SupSeul .Range("G" & Lg + 5) = SupRah .Range("I" & Lg + 5) = SupRacl .Range("L" & Lg + 5) = SupDp .Range("O" & Lg + 5) = SupLiq End With End Sub
J'ai essayé d'activer le classeur dans le code de thisWorkbook et j'ai eu le message d'erreur "Erreur définie par l'application ou par l'objet"
Pouvez-vous m'aider, svp ?
Merci
Partager