Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

USF + Calendrier

  • Initiateur de la discussion Initiateur de la discussion tdaoui
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

tdaoui

Guest
Bonjour à tous,
Bonjour le forum,

Meilleurs voeux à tous 🙂

J'ai une question SVP, je suis tjs débutant et je veux savoir si je peux appeler un USF depuis un autre USF

Exemple : J'ai un formulaire dans lequel j'ai une case 'DATE' que je souhaite automatiser également
Et au lieu de saisir manuellement la date je souhaite afficher le calendrier pour pouvoir séléctionner la date avec un clic

En PJ en exemple à corriger SVP 😕
 

Pièces jointes

Re : USF + Calendrier

Bonsoir,
Clic sur ALT + F11 pour acceder a VBA .
Clic D sur ton USEFORM -> Propriété -> la boite à outils va apparaitre puis fait glisser le calandar sur ton userform comme tu as fais glisser les autres controle .
A +
 
Re : USF + Calendrier

Ok j'ai vu (je n'avais pas le contôle dans la boîte à outils)

Mais j'ai toujours une question 🙁
Comment faire une liason entre ce calendrier et un combo ?
voir exemple (photo)
 
Re : USF + Calendrier

Bonjour,
Je tente déseperement d'utiliser le contrôle calendrier dans une feuille excel.
Pour cela j'ai créé un userForm dans lequel j'intègre le calendrier.

Dans le module Calendrier je met ce code
Code:
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Unload Me
End Sub

Private Sub Calendrier_Initialize()
 If IsDate(ActiveCell.Value) Then
            Calendar1.Value = DateValue(ActiveCell.Value)
      Else
            Calendar1.Value = Now
      End If

End Sub

Et sur la feuille concernée j'ai ceci :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Left(ActiveCell.Address, 2) = "$D") Or (Left(ActiveCell.Address, 2) = "$E") Then
        Load Calendrier
        Calendrier.Show

End If

    End Sub

Les champs "date" sont sur D et E 😀
Mon soucis est que lorsque je clique sur quelque case que ce soit, la date sur le calendrier est toujours celle définie par défaut sur le formulaire, il ne tiens pas compte de ce que je met dans initialize.

Quelqu'un aurait-il une idée?

PS : j'ai le même problème avec les fichiers exemples donnés sur le Forum
 
Re : USF + Calendrier

Bonjour et merci de ton aide PierreJean
Je joint le fichier avec la feuille concernée

Petite précision je suis sous Win XP SP2 et OFFICE 2003
 

Pièces jointes

Re : USF + Calendrier

Re

Voici pour le calendrier et son initialisation (de l'userform et non du calendrier)
Pour le reste, je n'ai pas compris ce que tu cherches a faire
 

Pièces jointes

Re : USF + Calendrier

Merci PierreJean pour ta réactivité.
Il semblerait que le fait de changer le non UserForm par Calendrier (pure coqueterie de ma part) faisait que mon code ne fonctionnait pas.
En utilisant UserForm, et le code ci dessous tout marche comme prévu

Ceci sur la feuille

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Left(ActiveCell.Address, 2) = "$D") Or (Left(ActiveCell.Address, 2) = "$E") Then
       Load UserForm1
       UserForm1.Show

et cela sur le Contrôle Calendrier

Code:
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Unload Me
End Sub

Private Sub UserForm_Click()
MsgBox (Now)
End Sub

Private Sub UserForm_Initialize()
 If IsDate(ActiveCell.Value) Then
            Calendar1.Value = DateValue(ActiveCell.Value)
      Else
            Calendar1.Value = Date
      End If

End Sub

Pour ce qui concernait le bout de code sous l'instruction UserForm.Show

Code:
Range("c65536").End(xlUp).Activate
ligne = ActiveCell.Row
   Range("B1").Select
   Selection.Copy
   Range("A3").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   Selection.AutoFill Destination:=Range("A3:A" & ligne)
   Range("D65536").End(xlUp).Activate
   
    End Sub
Il me permet de remplir automatiquement la colonne A avec le nom du projet contenu dans B1 si la cellule de la colonne C est non vide. De cette façon, je peut utiliser un UsedRange pour récupérer certaines info dont le nom du projet contenu en A.

Code:
Option Explicit



Sub planning()
Dim zone As Range
   Worksheets("planning").Range("A:F").Clear
   Set zone = Application.Intersect(Worksheets("projet").UsedRange, Worksheets("projet").Range("A:F"))
   zone.Copy: Worksheets("planning").Range("A3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False

End Sub



Private Sub Worksheet_Activate()
planning
End Sub

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
591
Réponses
10
Affichages
479
Réponses
4
Affichages
250
Réponses
5
Affichages
200
Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…