Bonjour à tous,
Ayant épluché le web et n'ayant pas trouver de solutions à mon problème, je me permet de vous solliciter!
L'idée est que j'écris depuis une base Access dans un module vba situé dans une autre base et que je voudrais sauvegarder celui-ci.
En quittant simplement ca ne marche pas, et en essayant de sauvegarder celui-ci je me fais doucement envoyer promener, comme quoi j'ai pas les droits blah blah blah
voici mon code!
(tout ce qui est en commentaire et qui concerne le module a sauvegarder a été testé mais ne fonctionne pas.
edit: Je me rend compte que je n'ai pas mis le message d'erreur lorsque je mets la ligne suivante:
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 Public Function numero_gpe() Dim objaccess2 As Object Dim ds As Database Dim valeuraremplacer As String Set ds = DBEngine.OpenDatabase(CurrentProject.Path & "\Mabase.accdb") Set objaccess2 = GetObject(CurrentProject.Path & "\Mabase.accdb") For k = 0 To objaccess2.Forms.Count - 1 objaccess2.DoCmd.Close acForm, Application.Forms(k).Name, acSaveYes Next valeuraremplacer= InputBox("Entrez le texte a introduire dans le module") For i = 1 To objaccess2.VBE.ActiveVBProject.VBComponents.Count 'Debug.Print VBE.ActiveVBProject.VBComponents(i).Name If objaccess2.VBE.ActiveVBProject.VBComponents(i).Name Like "*module_a_chercher*" Then For j = 1 To objaccess2.VBE.ActiveVBProject.VBComponents(i).CodeModule.CountOfLines If objaccess2.VBE.ActiveVBProject.VBComponents(i).CodeModule.Lines(j, 1) Like "*caracteres sur la ligne a chercher" Then 'Debug.Print VBE.ActiveVBProject.VBComponents(i).CodeModule.Lines(j, 1) objaccess2.VBE.ActiveVBProject.VBComponents(i).CodeModule.ReplaceLine j, Chr(34) & "texte a remplacer sur la ligne" & valeuraremplacer & "));" & Chr(34) & ")" objaccess2.DoCmd.RunCommand acCmdCompileAndSaveAllModules 'objaccess2.DoCmd.Close acModule, "module_a_chercher" 'objAccess.DoCmd.Save 'ds.Close 'objaccess2.VBE.ActiveVBProject.VBComponents(i).Name = "module_a_chercher2" 'objaccess2.DoCmd.Close acModule, "module_a_chercher", acSavePrompt For k = 0 To objaccess2.Forms.Count - 1 objaccess2.DoCmd.Close acForm, Application.Forms(k).Name, acSaveYes Next objaccess2.DoCmd.RunCommand acCmdCompileAndSaveAllModules objaccess2.CloseCurrentDatabase 'objaccess2.DoCmd.OpenModule "module_a_chercher" 'MsgBox "Sauvegarder puis fermez a la main le module vba qui s'est ouvert et cliquez sur OK" objaccess2.Quit ds.Close Set ds = Nothing Set objaccess2 = Nothing Exit Function Else End If Next Else End If Next End Function
Voici l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part objaccess2.DoCmd.Close acModule, "module_a_chercher", acSaveYes
Merci pour votre aide,
Aymeric
Partager