Rechercher : dans
Par :

Excel outil contrôle calendrier

Dernière réponse le 6 oct 2009 à 08:46:30 informatifien, le 1 oct 2009 à 15:58:26 
 Signaler ce message aux modérateurs

Bonjour,

J'utilise l'outil contrôle DTPicker dans un userform pour afficher une date et au besoin la modifier, depuis toute à l'heure je tente d'afficher la date du jour automatiquement au lancement de mon userform . . . .et ce sans succé j'ai fai ça:

Private Sub UserForm1_Initialize ()

DTPicker1 = Date

End Sub


J'ai aussi essaye = Today, = Now et toujours aucun effet j'ai meme tenté un MsgBox "test" rien ne se passe je soupsonne donc mon Private Sub UserForm_Initialize() de ne pas fonctionner est-ce bien la commande Initialize qui marche pour le lancement du userform?

Merci
L'informatique est à la société ce que la femme est au monde. . . c'est compliqué mais on ne peut s'en passer ;)

Configuration: asus P5V800 / P4 2,8 Ghz / 1,5 Go Windows XP FireFox / IE 7

Meilleures réponses pour « Excel outil contrôle calendrier » dans :

1

gbinforme, le 1 oct 2009 à 22:45:38

Bonjour

est-ce bien la commande Initialize qui marche pour le lancement du userform?

Comme son nom l'indique elle est lancée lorsque le formulaire est chargé mais si tu quittes le formulaire avec hide et non unload, le prochain affichage n'est pas un chargement mais simplement un affichage de ce qui a été caché sans lancer d'initialisation bien sûr sinon la précédente saisie serait perdue.
Toujours zen

Répondre à gbinforme

2

informatifien, le 2 oct 2009 à 08:44:00

Salut,merci pour ta réponse

mais en faite j'utilise bien unload pour la fermeture de mon userform...donc pas de problème de ce coté là.....je pense plutot que c'est mon code initialize qui pose problème...... L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

3

gbinforme, le 2 oct 2009 à 09:03:17

Bonjour

Pour être puriste, ton code DTPicker1 = Date devrait s'écrire DTPicker1.Value = Date, mais cela fonctionne correctement et tu doit plutôt avoir un autre code qui vient te perturber celui-ci.
Toujours zen

Répondre à gbinforme

4

informatifien, le 2 oct 2009 à 09:41:25

Bon ça ne marche toujours pas. . .. je te post le code complet de mon userform qui s'appel Creasupp ça te parlera peut etre plus datedepose est le nom de mon DTPicker:

Private Sub annuler_Click()

Unload Creasupp

End Sub

Private Sub datedepose_Initialize()

datedepose = Date

End Sub


Private Sub crea_Click()
Creasupp.Hide

Dim a As Integer
Dim b As Long

b = numof_crea
a = 0
Do
a = a + 1
Loop Until Application.Cells(a, 1) = b

Cells(a, 1).Value = b
Cells(a, 2).Value = datedepose
Cells(a, 3).Value = dateretour
Cells(a, 3).Select

Dim datesuite As Date, depose, x, y
depose = datedepose
jour = Weekday(depose, vbMonday)

If jour = 6 Or jour = 7 Then
MsgBox "Ne pas choisir de samedi ou de dimanche"
Exit Sub
End If

ActiveCell.Offset(0, jour).Value = depose

For x = jour + 1 To 30
datesuite = ActiveCell.Offset(0, x - 1).Value + 1
ActiveCell.Offset(0, x).Value = datesuite
Next x

For y = jour - 1 To 1 Step -1
datesuite = ActiveCell.Offset(0, y + 1).Value - 1
ActiveCell.Offset(0, y).Value = datesuite
Next y

With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 30))
.Borders.LineStyle = xlContinuous
.Interior.ColorIndex = 15
.NumberFormat = "ddd-dd/mm/yy"
.Font.Bold = True
End With

Unload Creasupp
End Sub



Merci
L'informatique est à la société ce que la femme est au monde. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

5

gbinforme, le 2 oct 2009 à 09:47:11

Bonjour

Ton initialisation n'est pas correcte.

Ce n'est pas : Private Sub datedepose_Initialize(), mais Private Sub Creasupp_Initialize() qu'il faut utiliser.
Toujours zen

Répondre à gbinforme

6

informatifien, le 2 oct 2009 à 09:52:20

AAAAAh ok mais alors le Sub je le met dans le code de mon Creasupp ou de ma feuil1 ??? euuh je viens d'essayer dans les 2 et toujours rien. . . . L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

7

m@rina, le 2 oct 2009 à 14:50:04

Bonjour,

Essaie plutôt ceci :

Private Sub Creasupp_Initialize()
datedepose.value = Now()
End Sub

m@rina

- "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???"

Répondre à m@rina

8

informatifien, le 2 oct 2009 à 14:59:16

Non toujours pas. . .. je l'ai mis dans le code de feuil1 et j'ai aussi essayé dans le code du userform: datedepose et rien ca ne met pas à jour mon DTPicker . . . . . L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

9

m@rina, le 2 oct 2009 à 15:01:06

C'est dans le code du UserForm qu'il faut le mettre.
Moi, c'est ce que j'utilise avec le contrôle Calendrier. Le DTPicker, je ne l'ai pas, aussi je ne peux pas tester.

m@rina - "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???"

Répondre à m@rina

10

informatifien, le 2 oct 2009 à 15:06:57

Et moi je n'ai pas el contrôle calendrier pourtant j'ai la référence pour contrôle calendier c'est MSCAL.OCX si je me trompe pas, je n 'ai que le controle Microsoft date and time picker controle 6.0, son fichier système est: MSCOMCT2.OCX dans win32, pour controle calendar je crois que c'est MSCAL.OCX ce qui est bizarre c'est que je l'ai dans win32 que je l'ai cochée dans référennce mais il n'apparait pas dans controle suppl"mentaire. . .. . . L'informatique est à la société ce que la femme est au monde. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

11

informatifien, le 2 oct 2009 à 15:10:15

Roooo faut que je trouve une solution car il faut qu'on revienne sur ta macro (m@rina) de ce matin que j'ai pas complétement comprise mais j'ai reussi à la modifier mais j'ai encore quelque truc à apporter mais je voudrai faire marcher ce truc grrrr L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

12

m@rina, le 2 oct 2009 à 15:16:20

ça t'ennuierait de me passer le fichier ou juste un extrait ?

ça me permettrait déjà de voir si je récupère le contrôle DTPicker, et dans ce cas, je pourrais tester.
Si tu préfères, tu mets le lien en MP.

m@rina - "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???"

Répondre à m@rina

13

m@rina, le 3 oct 2009 à 10:25:57
  • +1

Bonjour,

J'ai testé avec le DTPicker car je l'ai sur mon poste perso.
Et je ne comprends pas comment tu fais, car il n'y a aucun problème.
Et même qu'il n'y a pas besoin d'initialisation, car (testé avec Now() et sans), ça revient au même : le DTPicker revient toujours à la date du jour si on a bien fermé la UserForm avec Unload.

m@rina - "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???"

Répondre à m@rina

14

informatifien, le 5 oct 2009 à 08:36:01

Salut,

Désolé j'ai eu un weekend chargé et je n'ai pas eu le temps de t'envoyer le fichier, et là je viens d'y remettre le nez et lol j'ai un bug bizarre vendredi ca marchai bien et là ca me fai un truc bizarre je t'envérrai le fichier ce soir avec cijoint . . . L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

15

informatifien, le 5 oct 2009 à 09:00:48

Bon autant pour moi le bug vient en faite de la modif que j'ai faite suite à ton dernier message, j'ai donc mit après mon sub creation_clic unload creasupp(userform) et là ben il me met comme date 00/01/1900 donc il doit vraiment y avoir un souci . . ..
voilà mon code complet donc j'ai 2 boutons un nommé crea l'autre annuler, datedepose et dateretour sont des DTPicker :

Private Sub annuler_Click()

Unload Creasupp

End Sub
Private Sub crea_Click()
Unload Creasupp

Dim a As Integer
Dim b As Long

b = numof_crea
a = 0
Do
a = a + 1
Loop Until Application.Cells(a, 1) = b

Cells(a, 1).Value = b
Cells(a, 2).Value = datedepose
Cells(a, 3).Value = dateretour
Cells(a, 3).Select

Dim datesuite As Date, depose, x, y
depose = datedepose
jour = Weekday(depose, vbMonday)

If jour = 6 Or jour = 7 Then
MsgBox "Ne pas choisir de samedi ou de dimanche"
Exit Sub
End If

ActiveCell.Offset(0, jour).Value = depose

For x = jour + 1 To 30
datesuite = ActiveCell.Offset(0, x - 1).Value + 1
ActiveCell.Offset(0, x).Value = datesuite
Next x

For y = jour - 1 To 1 Step -1
datesuite = ActiveCell.Offset(0, y + 1).Value - 1
ActiveCell.Offset(0, y).Value = datesuite
Next y

With Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 30))
.Borders.LineStyle = xlContinuous
.Interior.ColorIndex = 15
.NumberFormat = "ddd-dd/mm/yy"
.Font.Bold = True
End With

Unload Creasupp
End Sub


donc tel qu'il est là le code genere le bug cité plus haut, si je remplace unload Creasupp par Creasupp.hide les dates données par DTPicker sont bonne mais toujours pas à jour .. . ..
L'informatique est à la société ce que la femme est au monde. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien

16

 informatifien, le 6 oct 2009 à 08:46:30

Voilà problème résolu grace à m@rina donc merci à elle et voici la solution:

Private Sub UserForm_Initialize()
datedepose = Now()

End Sub


Le problème venait du nom de mon sub,ayant nomé mon userform creasupp j'avai mis la synthaxe creasupp_initialize alors qu'il faut dans ce cas mettre userform . ..

Voilà merci m@rina L'informatique est à la société ce que la femme est au monde­. . . c'est compliqué mais on ne peut s'en passer ;)

Répondre à informatifien