Bonjour,

J'ai un problème sur un classeur macro que j'essaie de programmer.

Le voici : ET project (Récupéré).xlsm

Pour faire simple

le module 1 contient une déclaration de variables publiques.
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
Public TypeEcriture As String 'déclarations de variables publiques : on les utilise pour récupérer les données dans Uferform et les transférer dans ETB
Public TypePce As String
Public CodeSté As String
Public Réf As Range
Public Devise As String
Public EnTête As Range
Public DateCptable As String
Public DatePce As String
Public CpteG As String
Public CpteAux As String
Public TypeCpte As String
Public TxtPoste As Range
Public CodeTVA As String
Public CDC As Range
Public Debit As Range
Public Credit As Range
Public SL As Range
Le module Excel tool build contient une macro

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
Public Sub ExcelToolBuild()
Dim TypeEcriture1 As Range, TypePce1 As Range, CodeSté1 As Range, Réf1 As Range, Devise1 As Range, EnTête1 As Range, DateCptable1 As Range, DateePce1 As Range, CpteG1 As Range, CpteAux1 As Range, TypeCpte1 As Range, TxtPoste1 As Range, CodeTVA1 As Range, CDC1 As Range, Debit1 As Range, Credit1 As Range, SL1 As Range
 
Set TypeEcriture1 = Sheets("excel-tool").Range("a2") 'Détermination des Cellules pour créer l'ET
Set TypePce1 = Sheets("excel-tool").Range("b2")
Set CodeSté1 = Sheets("excel-tool").Range("c2")
Set Réf1 = Sheets("excel-tool").Range("d2")
Set Devise1 = Sheets("excel-tool").Range("e2")
Set EnTête1 = Sheets("excel-tool").Range("f2")
Set RangeCptable1 = Sheets("excel-tool").Range("g2")
Set RangePce1 = Sheets("excel-tool").Range("h2")
Set CpteG1 = Sheets("excel-tool").Range("i2")
Set CpteAux1 = Sheets("excel-tool").Range("j2")
Set TypeCpte1 = Sheets("excel-tool").Range("k2")
Set TxtPoste1 = Sheets("excel-tool").Range("m2")
Set CodeTVA1 = Sheets("excel-tool").Range("n2")
Set CDC1 = Sheets("excel-tool").Range("o2")
Set Debit1 = Sheets("excel-tool").Range("r2")
Set Credit1 = Sheets("excel-tool").Range("s2")
Set SL1 = Sheets("excel-tool").Range("u2")
 
 
TypeEcriture1 = TypeEcriture 'Copie valeurs Userform dans feuille ET
TypePce1 = TypePce
CodeSté1 = CodeSté
Réf1 = Réf
Devise1 = Devise
EnTête1 = EnTête
RangeCptable1 = RangeCptable
RangePce1 = RangePce
CpteG1 = CpteG
CpteAux1 = CpteAux
TypeCpte1 = TypeCpte
TxtPoste1 = TxtPoste
CodeTVA1 = CodeTVA
CDC1 = CDC
Debit1 = Debit
Credit1 = Credit
SL1 = SL
 
 
End Sub
Ce que je veux faire, c'est affecter les données récupérées dans le userform à mes variables du module 1, pour ensuite les utiliser avec la macro du module Excel Tool.

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 
 
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
TypeEcriture = "P"
Else
TypeEcriture = ""
End If
 
End Sub
 
Private Sub ChoixSté_Change()
Label3.Caption = Worksheets.Application.VLookup(choixSté.Value, Sheets("base").Range("e:f"), 2, False) 'Met le nom de la société a côté du choix
End Sub
 
 
 
 
Private Sub DeviseBox_Change()
Label5.Caption = Worksheets.Application.VLookup(DeviseBox.Value, Sheets("base").Range("g:h"), 2, False) 'choix de la devise
End Sub
 
 
 
 
 
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then 'si on choisit FAE, on Génère une pièce XD
 
TypePceBox.Value = "XD"
End If
End Sub
 
Private Sub OptionButton2_Click()
 If OptionButton2.Value = True Then
    TypePceBox.Value = "SZ" 'Si on choisit une FNP, on génère une SZ
    End If
End Sub
 
   Private Sub OptionButton3_Click()
  If OptionButton3.Value = True Then
        TypePceBox.Value = "SA" 'si on choisit une ODA, on génère une SA
        End If
   End Sub
 
 
 
 
Private Sub TypePceBox_Change()
 
Label1.Caption = Worksheets.Application.VLookup(TypePceBox.Value, Sheets("Base").Range("a:b"), 2, False) 'descriptif Type de pièce à côté du choix
TypePce = TypePceBox.Value
If TypePceBox.Value = "SZ" Then
CheckBox1.Value = True 'Si on choisit SZ comme type pièce, L'extourne est aussi sélectionnée
Else: CheckBox1.Value = False
End If
 
End Sub
 
Private Sub OptionButton4_Click()
 
  If OptionButton4.Value = True Then
        TypePceBox.Value = "KB" 'si on choisit une Facture reçue, on génère une KB
        End If
   End Sub
 
Private Sub UserForm_Initialize()
Me.Height = 550
Me.Width = 425
 
Dim TypeEcriture, TypePce, CodeSté, Réf, Devise, EnTête, CpteG, CpteAux, TypeCpte, TxtPoste, CodeTVA, CDC, CtreProfit, SL, DomaineA   As Range
Dim DateCptable, DatePce, DateEch As Date
Dim Debit, Credit As Integer
 
For i = 1 To 5
TypePceBox.AddItem Sheets("Base").Cells(i + 1, 1) 'liste déroulante Type de pièce
Next
 
For i = 2 To Worksheets.Application.CountA(Sheets("base").Range("e:e"))
choixSté.AddItem Sheets("base").Cells(i, 5) 'Liste déroulante Choix Société
Next
 
For i = 2 To Worksheets.Application.CountA(Sheets("base").Range("g:g"))
DeviseBox.AddItem Sheets("base").Cells(i, 7) 'Liste déroulante Choix Devises
Next
DeviseBox.Value = "EUR"
 
For i = 2 To Worksheets.Application.CountA(Sheets("base").Range("n:n"))
TVABox.AddItem Sheets("Base").Cells(i, 14)
Next
TVABox.Value = "ZZ"
 
CheckBox1.Value = False
 
 
End Sub
 
Private Sub CommandButton1_Click() 'affectation des valeurs aux variables, puis lancement de la macro ExcelToolBuild
 
 TypePce = TypePceBox.Value
 CodeSté = choixSté.Value
 Set Réf = Sheets("base").Range("a1")
 Devise = DeviseBox.Value
 Set EnTête = Sheets("base").Range("a1")
 DateCptable = DateCBox.Value
 DatePce = DatePBox.Value
 CpteG = CptGBox.Value
 CpteAux = CptABox.Value
 TypeCpte = "K"
 Set TxtPoste = Sheets("base").Range("a1")
 CodeTVA = TVABox.Value
Set CDC = CDCBox.Value
Set Debit = Sheets("base").Range("a1")
 Set Credit = Sheets("base").Range("a1")
 Set SL = Sheets("base").Range("a1")
Call ExcelToolBuild.ExcelToolBuild
 
End Sub
L'affectation des variables se fait au moment de la validation. J'ai une erreur '424' Objet Requis.

où est mon erreur? que faire pour la réparer?