Microsoft 365 user forme Affichage calendrier après click dans textbox

Data Enthousiast

XLDnaute Nouveau
Bonjour,

Je suis un débutant en VBA ,
je suis entrain de développer en vba 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 souhaité 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

VB:
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
 

Pièces jointes

  • Projet_Masque_Saisie.xlsm
    31.7 KB · Affichages: 21
Solution
Bonjour
Dans l'explorateur de projets, glissez/déplacez avec la souris le nom UFmCalenS du projet VBA de mon classeur vers celui du vôtre, et mettez les procédures que j'ai indiquées. Ça ne convient pas ?

Dranreb

XLDnaute Barbatruc
Bonjour.
Avec le mien il y a juste à mettre ces 2 procédures :
VB:
Private Sub TextBox3_Enter()
   UFmCalenS.Coupler "DÉBUT", TextBox3
   End Sub
Private Sub TextBox4_Enter()
   UFmCalenS.Coupler "FIN", TextBox4
   End Sub
 

Pièces jointes

  • MonCalendrier.xlsm
    79.5 KB · Affichages: 40

Data Enthousiast

XLDnaute Nouveau
Bonjour,

Merci pour vos différentes réponses, mais j'arrive toujours pas à trouver une solution à mon problème d'affichage du calendrier dans un user form.

svp Quelqu'un pourrait il m'expliquer comment on construit son propre calendrier et comment on l'intègre dans un user form (formulaire) et l'afficher par l'evenement click?
 
Dernière édition:

Data Enthousiast

XLDnaute Nouveau
Bonjour
Dans l'explorateur de projets, glissez/déplacez avec la souris le nom UFmCalenS du projet VBA de mon classeur vers celui du vôtre, et mettez les procédures que j'ai indiquées. Ça ne convient pas ?

Merci pour ta réponse Dranreb, avec le glissez/déplacez ça l'a fait.
Je vais exécuté ton code pas à pas afin de bien le comprendre et de pouvoir l'adapter à mon besoin.

Une question : les procédures dont tu parles sont indiquées où?

Parceque quand je fais le glissez/déplacez de UFmCalenS ça se déplace avec son code source (procédures) je sais pas si c'est de ça tu parles ou c'est d'une autre chose tu parles.
 

Data Enthousiast

XLDnaute Nouveau
Bonjour
Dans l'explorateur de projets, glissez/déplacez avec la souris le nom UFmCalenS du projet VBA de mon classeur vers celui du vôtre, et mettez les procédures que j'ai indiquées. Ça ne convient pas ?

Merci beaucoup Dranreb ça fonctionné j'ai ajouté tes deux procédures ci-dessous et ça l'a fait
VB:
Private Sub TextBox3_Enter()
   UFmCalenS.Coupler "DÉBUT", TextBox3
   End Sub
Private Sub TextBox4_Enter()
   UFmCalenS.Coupler "FIN", TextBox4
   End Sub

En gros si je comprend bien t'as construit entièrement un calendrier via des macros sans passer par un controle de la boite à outil de l'user form ?
 

Discussions similaires

Statistiques des forums

Discussions
313 212
Messages
2 096 249
Membres
106 544
dernier inscrit
seifel