Bonjour le forum
Je suis vraiment à bout de ressource.
Dans Sub workbook_open je veux remettre à jour tous les modules et userform du classeur lors de son ouverture. Les modules et userform se trouvent sur le serveur.
voici le code:
Le compilateur n'accepte pas les lignes de code .REMOVE avec seulemnnt .ITEM. Si j'écris la ligne différemment soit
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 Private Sub Workbook_Open() Sheets("Ouverture").Select On Error GoTo errorhandler: Application.EnableCancelKey = xlErrorHandler Dim Domaine As String Dim Keylogger As String Dim NbLigne As Integer Dim Name As String Dim Ok As Boolean Dim Serveur As String 'Mise a jour des modules et userforms If ThisWorkbook.Name <> "RPAv1-CLIENT.xlsm" Or ThisWorkbook.Name <> "RPAv1-CLIENTessai.xlsm" Then ThisWorkbook.VBProject.VBComponents.Remove .Item("AvantagesImpDed") ThisWorkbook.VBProject.VBComponents.Remove .Item("Calcul_Complet") ThisWorkbook.VBProject.VBComponents.Remove .Item("CalculParLigne") ThisWorkbook.VBProject.VBComponents.Remove .Item("Impression") ThisWorkbook.VBProject.VBComponents.Remove .Item("MaxPrestILD") ThisWorkbook.VBProject.VBComponents.Remove .Item("Mise_A_jour_Nais") ThisWorkbook.VBProject.VBComponents.Remove .Item("PrimeSimule") ThisWorkbook.VBProject.VBComponents.Remove .Item("PrimeSimuleNormative") ThisWorkbook.VBProject.VBComponents.Remove .Item("TableaudesTries") ThisWorkbook.VBProject.VBComponents.Remove .Item("ClassesCompare") ThisWorkbook.VBProject.VBComponents.Remove .Item("CompPrime") ThisWorkbook.VBProject.VBComponents.Remove .Item("ExclusionDuPAE") ThisWorkbook.VBProject.VBComponents.Remove .Item("MontantFixeParGarantie") ThisWorkbook.VBProject.VBComponents.Remove .Item("MSPAClasse") ThisWorkbook.VBProject.VBComponents.Remove .Item("MSPAInd") ThisWorkbook.VBProject.VBComponents.Remove .Item("NouvelEmpl") ThisWorkbook.VBProject.VBComponents.Remove .Item("PeriodePaye") ThisWorkbook.VBProject.VBComponents.Remove .Item("PourcParGarantie") ThisWorkbook.VBProject.VBComponents.Remove .Item("PourcSalaire") ThisWorkbook.VBProject.VBComponents.Remove .Item("Repartition") ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\AvantagesImpDed.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Calcul_Complet.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\CalculParLigne.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Impression.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MaxPrestILD.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Mise_A_jour_Nais.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PrimeSimule.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PrimeSimuleNormative.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\TableaudesTries.bas" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\ClassesCompare.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\CompPrime.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\ExclusionDuPAE.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MontantFixeParGarantie.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\.modules\MSPAClasse.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MSPAInd.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\NouvelEmpl.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PeriodePaye.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PourcParGarantie.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PourcSalaire.frm" ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Repartition.frm" End If 'Valider s'il y a des employés inscris au fichier Worksheets("Couverture_Primes").Select NbLigne = Cells(Rows.Count, 2).End(xlUp).Row - 13 Sheets("Couverture_Primes").Cells(10, 3) = NbLigne Application.EnableEvents = False If DateValue(Worksheets("Etendu_Garantie").Cells(1, 17)) < Date And NbLigne > 0 Then Ok = True Call MiseAJourNais(Ok) 'Mise à jour des âges des employés MsgBox "Mise à jour des âges terminée", vbInformation End If Ok = False Application.EnableEvents = True GoTo 20: errorhandler: 'Une CancelKey a été capturée If Err.Number = 18 Then Sheets("Etendu_Garantie").Cells(6, 17) = "" ThisWorkbook.Saved = True ActiveWorkbook.Close Else Sheets("Etendu_Garantie").Cells(6, 17) = "" ThisWorkbook.Saved = True ActiveWorkbook.Close End If 20: End Suble compilateur l'accepte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents.Item("AvantagesImpDed")
Mais j'ai quand une erreur 60061 Application-defined or object-defined error à l'ouverture du classeur. Et dansle project explorer Tous les modules originaux sont remplacer par les mêmes nom de module amsi avec une extension 1 (comme si c'était un doublon) et les userform n'y sont plus.
J'ai activé le Microsoft Visual Basic for Application Extensibility 5.3.
J'ai vraiement besoin de cette application, car j'utilise un classeur maitre pour modifier le programme et j'ai 27 classeurs qui doivent être modifiés à chaque fois que je fais un changement.
Merci pour votre aide.
Partager