Bonjour,
A l'origine j'ai deux procédures, la procédure UserForm et une autre que j'appelle mon code exécutable
La 1ere (Userform) démarre du commentaire suivant:
' Declaration de mon UserForm
Jusqu'au commentaire :
' Fin de declaration de mon UserForm
La 2eme (code exécutable) démarre du commentaire :
' Declaration de mon code exécutable
Jusqu'au commentaire :
' Fin de declaration de mon code executable
Le but c'est de faire fonctionner l'ensemble dans une même procédure (la 1er et la 2eme)
Aujourd'hui j'arrive à faire fonctionner chaque procédure mais séparément
comment assembler les deux dans une seule procédure
Pour info :
Le userform seul fonctionne bien ainsi que le code exécutable
Je vous mets ma procédure qui ne fonctionne pas lorsque je met les deux ensembles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ' Declaration de mon UserForm ' ' Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_Change() 'Saisie de la date End Sub
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 Private Sub CommandButton1_Click() Dim Flag As Boolean Dim I As Byte 'Résultat de la Saisie date sous la forme JJMMAA 'Et du choix du fichier For I = 1 To 2 If Me.Controls("OptionButton" & I) Then Flag = True Next I If Not Flag Then MsgBox "Veuillez sélectionner un fichier!" Exit Sub End If Variable1 = TextBox1 Variable2 = IIf(Me.OptionButton1, Me.OptionButton1.Caption, Me.OptionButton2.Caption) End Sub'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub UserForm_Click() End Sub ' ' ' Fin de declaration de mon UserForm ' '
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 Declaration de mon code executable ' Option Explicit Dim Fso As FileSystemObject 'DETAIL DE L'ADRESS Type Export_csv Colonne_A As String Colonne_B As String Colonne_C As String Colonne_D As String Colonne_E As String Colonne_F As String Colonne_G As String Colonne_H As String Colonne_I As String Colonne_J As String Colonne_K As String Colonne_L As String Colonne_M As String Colonne_N As String Colonne_O As String Colonne_P As String Colonne_Q As String Colonne_R As String End Type 'DETAIL DU FICHIER Public Detail_Export_csv As Export_csv 'EMPLACEMENT DU FICHIER A CREER Public Emplacement_Fichier As String Private Function Ecriture_Entete() As Boolean Set Fso = New FileSystemObject Emplacement_Fichier = "C:\monrep\monfic.csv" On Error Resume Next If Fso.FileExists(Emplacement_Fichier) = True Then Fso.DeleteFile Emplacement_Fichier, True End If On Error GoTo 0 Set Fso = Nothing On Error Resume Next Open Emplacement_Fichier For Output As #1 Select Case Err.Number Case Is = 0 Ecriture_Entete = True Case 71 MsgBox "Le support n'est pas accessible.", vbExclamation, "Message" Ecriture_Entete = False Case Else MsgBox Err.Description, vbExclamation, "Message" Ecriture_Entete = False End Select On Error GoTo 0 End Function
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 Private Function Ecriture_Detail(Colonne_A As String, Colonne_B As String, Colonne_C As String, Colonne_D As String, Colonne_E As String, Colonne_F As String, Colonne_G As String, Colonne_H As String, Colonne_I As String, Colonne_J As String, Colonne_K As String, Colonne_L As String, Colonne_M As String, Colonne_N As String, Colonne_O As String, Colonne_P As String, Colonne_Q As String, Colonne_R As String) As Boolean Ecriture_Detail = False Detail_Export_csv.Colonne_A = Colonne_A Detail_Export_csv.Colonne_B = Colonne_B Detail_Export_csv.Colonne_C = Colonne_C Detail_Export_csv.Colonne_D = Colonne_D Detail_Export_csv.Colonne_E = Colonne_E Detail_Export_csv.Colonne_F = Colonne_F Detail_Export_csv.Colonne_G = Colonne_G Detail_Export_csv.Colonne_H = Colonne_H Detail_Export_csv.Colonne_I = Colonne_I Detail_Export_csv.Colonne_J = Colonne_J Detail_Export_csv.Colonne_K = Colonne_K Detail_Export_csv.Colonne_L = Colonne_L Detail_Export_csv.Colonne_M = Colonne_M Detail_Export_csv.Colonne_N = Colonne_N Detail_Export_csv.Colonne_O = Colonne_O Detail_Export_csv.Colonne_P = Colonne_P Detail_Export_csv.Colonne_Q = Colonne_Q Detail_Export_csv.Colonne_R = Colonne_R On Error Resume Next Print #1, Detail_Export_csv.Colonne_A & ";" & Detail_Export_csv.Colonne_B & ";" & Detail_Export_csv.Colonne_C & ";" & Detail_Export_csv.Colonne_D & ";" & Detail_Export_csv.Colonne_E & ";" & Detail_Export_csv.Colonne_F & ";" & Detail_Export_csv.Colonne_G & ";" & Detail_Export_csv.Colonne_H & ";" & Detail_Export_csv.Colonne_I & ";" & Detail_Export_csv.Colonne_J & ";" & Detail_Export_csv.Colonne_K & ";" & Detail_Export_csv.Colonne_L & ";" & Detail_Export_csv.Colonne_M & ";" & Detail_Export_csv.Colonne_N & ";" & Detail_Export_csv.Colonne_O & ";" & Detail_Export_csv.Colonne_P & ";" & Detail_Export_csv.Colonne_Q & ";" & Detail_Export_csv.Colonne_R If Err.Number = 0 Then Ecriture_Detail = True Else Ecriture_Detail = False End If On Error GoTo 0 End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Ecriture_Fin() Close #1 End Sub
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 Public Sub Formatage_Cellule_10_Caractères() Call Ecriture_Entete Dim Colonne_A As String Dim Colonne_B As String Dim Colonne_C As String Dim Colonne_D As String Dim Colonne_E As String Dim Colonne_F As String Dim Colonne_G As String Dim Colonne_H As String Dim Colonne_I As String Dim Colonne_J As String Dim Colonne_K As String Dim Colonne_L As String Dim Colonne_M As String Dim Colonne_N As String Dim Colonne_O As String Dim Colonne_P As String Dim Colonne_Q As String Dim Colonne_R As String Dim I As Integer Dim j As Integer I = 1 Do Until ActiveSheet.Cells(I, 1).Value = "" For j = 1 To 18 Select Case j Case 1 Colonne_A = ActiveSheet.Cells(I, j).Value Case 2 Colonne_B = ActiveSheet.Cells(I, j).Value Case 3 Colonne_C = String(10 - Len(ActiveSheet.Cells(I, j).Value), "0") & ActiveSheet.Cells(I, j).Value Case 4 Colonne_D = ActiveSheet.Cells(I, j).Value Case 5 Colonne_E = ActiveSheet.Cells(I, j).Value Case 6 Colonne_F = ActiveSheet.Cells(I, j).Value Case 7 Colonne_G = ActiveSheet.Cells(I, j).Value Case 8 Colonne_H = ActiveSheet.Cells(I, j).Value Case 9 Colonne_I = ActiveSheet.Cells(I, j).Value Case 10 Colonne_J = ActiveSheet.Cells(I, j).Value Case 11 Colonne_K = ActiveSheet.Cells(I, j).Value Case 12 Colonne_L = ActiveSheet.Cells(I, j).Value Case 13 Colonne_M = ActiveSheet.Cells(I, j).Value Case 14 Colonne_N = ActiveSheet.Cells(I, j).Value Case 15 Colonne_O = ActiveSheet.Cells(I, j).Value Case 16 Colonne_P = ActiveSheet.Cells(I, j).Value Case 17 Colonne_Q = ActiveSheet.Cells(I, j).Value Case 18 Colonne_R = ActiveSheet.Cells(I, j).Value End Select Next j If Ecriture_Detail(Colonne_A, Colonne_B, Colonne_C, Colonne_D, Colonne_E, Colonne_F, Colonne_G, Colonne_H, Colonne_I, Colonne_J, Colonne_K, Colonne_L, Colonne_M, Colonne_N, Colonne_O, Colonne_P, Colonne_Q, Colonne_R) = False Then Exit Do End If I = I + 1 Loop Call Ecriture_Fin ' Fin de declaration de mon code executable End Sub
Partager