Bonjour,

Je suis un débutant en VBA ,
je suis entrain de développer en vba un formulaire de masque de saisie qui permettra à l'utilisateur de saisir les informations et que les informations saisies soient stockées dans le fichier excel onglet DATA SOURCE (fichier ci joint) après clicque sur l'onglet validate .

Mon problème est que je sais pas comment afficher un calendrier dans un user forme (formulaire) pour permettre à l'utilisateur de facilement choisir la date du début et la date fin.

Svp quelqu'un pourrait-il m'aider sur ce problème ? ci-joint le fichier en question

Je souhaiterais que lorsque l'utilisateur clique sur la zone de texte au dessous de DATE DEBUT et DATE FIN que le calendrier s'affiche directement .

voici le code que j'ai fait

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
 
Option Explicit ' déclaration explicite des variables dans toutes les procédures de ce module
Dim ws As Worksheet ' ws sera utilisé dans  l'ensemble des procédures
 
Private Sub ComboBox2_Change()
 
End Sub
 
' Cette procédure permet de fermer le formulaire
 
Private Sub CommandButton4_Click()
 
  Unload Me ' femeture user forme après click sur le boutton Close du formulaire
 
End Sub
 
 
 
Private Sub TextBox3_Change()
 
End Sub
 
Private Sub TextBox4_Change()
 
End Sub
 
Private Sub UserForm_Initialize()
 
Set ws = Sheets("DATA SOURCE")
Dim ligne  As Integer 'ligne
Dim col As Integer 'colonne
 
  ' dès le lancement du formulaire chargement de la barre de défilement
'remplissage du combobox2  ( la barre de défiliment de la liste du Counter Party )
'utilisation de la méthode additems
 
ComboBox2.AddItem "Socar Trading SA"
ComboBox2.AddItem "Stasco"
ComboBox2.AddItem "ING Bank NV"
ComboBox2.AddItem "Macquarie Bank Limited"
ComboBox2.AddItem "Mitsui Bussan Commodities Ltd."
ComboBox2.AddItem "RWE Supply and Trading GmbH"
ComboBox2.AddItem "Totsa"
ComboBox2.AddItem "Britannic Trading Limited"
ComboBox2.AddItem "Goldman Sachs International"
ComboBox2.AddItem "EDF Trading  Ltd"
 
End Sub
 
 
' ***************************************************
  ' Cette procédure permet de charger               *
  'les données saisies par l'utilisateur  dans      *
  ' l'onglet DATA SOURCE du fichier excel           *
  '  après click sur la commande validate           *
  '**************************************************
 
Private Sub CommandButton3_Click()
   ' commandButton3 = au boutton validate
   '1  déclaration
   Dim i As Integer
   Dim ligne As Integer
   Dim ws As Worksheet
   Set ws = Sheets("DATA SOURCE")
 
     ws.Activate ' activation de la feuille de l'onglet DATA SOURCE
 
 
  ' on utilise xlDown = si pas de cellule vide sinon on utilise xlUp = s'il ya cellule vide ou pour éviter les cellules vides
 
   ' Importation de données saisie dans la collonne A
 
    If IsNumeric(TextBox1.Value) = True Then
 
      Range("A1048576").End(xlUp).Offset(1, 0) = TextBox1.Value    ' saisie des valeurs dans la collonne A, A1048576 est la dernière cellule , l'idée suis partie de la dernière cellule puis de remonter vers le haut A1 pour éviter le bug quand il 'ya des cellules vides
    End If
 
     ' Importation de données saisies dans la collonne B
 
    If IsNumeric(TextBox2.Value) = True Then
 
      Range("B1048576").End(xlUp).Offset(1, 0) = TextBox2.Value    'saisie des valeurs dans la collonne B, B1048576 est la  dernière cellule de la collonne B
    End If
 
    ' Importation de données choisie depuis la liste déroulante (Counter Party)  dans la collonne C
 
    If IsNumeric(ComboBox2.Value) = False Then
      Range("E1048576").End(xlUp).Offset(1, 0) = ComboBox2.Value
    End If
 
    If TextBox3.Value <> " " Then
 
     Range("C1048576").End(xlUp).Offset(1, 0) = TextBox3.Value
    End If
 
    If TextBox4.Value <> " " Then
 
     Range("D1048576").End(xlUp).Offset(1, 0) = TextBox4.Value
    End If
 
    end sub
Projet_Masque_Saisie (3).xlsm