USF + Calendrier

tdaoui

XLDnaute Junior
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 :confused:
 

Pièces jointes

  • UserForm.xls
    47.5 KB · Affichages: 108
  • UserForm.xls
    47.5 KB · Affichages: 106
  • UserForm.xls
    47.5 KB · Affichages: 106

abc

XLDnaute Impliqué
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 +
 

pierrejean

XLDnaute Barbatruc
Re : USF + Calendrier

bonjour tdaoui

Salut abc

vois si cela te convient

Code:
Private Sub UserForm_Initialize()
ComboBox2 = Calendar1
End Sub
Private Sub Calendar1_Click()
ComboBox2 = Calendar1
End Sub
 

Pièces jointes

  • UserForm.xls
    36.5 KB · Affichages: 142
  • UserForm.xls
    36.5 KB · Affichages: 141
  • UserForm.xls
    36.5 KB · Affichages: 146

rollingboy

XLDnaute Nouveau
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 :D
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
 

rollingboy

XLDnaute Nouveau
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

  • projet-test_2010-07-15_11h28.zip
    18 KB · Affichages: 46
  • projet-test_2010-07-15_11h28.zip
    18 KB · Affichages: 43
  • projet-test_2010-07-15_11h28.zip
    18 KB · Affichages: 45

pierrejean

XLDnaute Barbatruc
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

  • projet-test_2010-07-15_11h28.zip
    13.9 KB · Affichages: 107
  • projet-test_2010-07-15_11h28.zip
    13.9 KB · Affichages: 106
  • projet-test_2010-07-15_11h28.zip
    13.9 KB · Affichages: 106

rollingboy

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz