Faire bouger un calendrier

tsirlik Messages postés 2 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 25 novembre 2009 - 25 nov. 2009 à 15:03
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 - 25 nov. 2009 à 21:03
Bonjour
bien que je sois très novice dans le domaine,à force de fouiller ci et là j'ai été capable de monter une grille de réservation de locaux sur excel. Une ligne correspond à une réservation. La première colonne est pour l'affichage de la date de la réservation. En cliquant sur la cellule, un calendrier apparaît, je choisis une date qui s'affiche ensuite dans la cellule.
Or le problème est que le calendrier ne s'affiche toujours que dans le haut de la grille alors que je suis, pas exemple, à compléter une entrée à la 10e ligne. Je dois alors remonter dans le haut de la page pour cliquer sur le calendrier. Comment faire pour que le calendrier s'affiche chaque fois à l'endroit où je suis rendue sur la grille?

Merci de votre aide.

Voici les paramètres pour mon calendrier:

Private Sub CheckBox1_Click()

End Sub

Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Calendar1.Visible = False

End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub TextBox100_Change()

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Intersection As Range, Plage As Range

Set Plage = Range("A4:A100")

Set Intersection = Application.Intersect(Target, Plage)
If Not (Intersection Is Nothing) Then
Calendar1.Visible = True

End If

End Sub

5 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 nov. 2009 à 15:06
Bonjour,

Réponse (qui n'est pas la même sous VB6 et sous VBA) quand cette discussion sera placée dans le bon thème
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 nov. 2009 à 20:09
Bonsoir,

Demande déjà à un Admin de changer le thème pour mettre ta question dans celui consacré au VBA...

Ensuite, regardes du côté des propriétés .TOP et .LEFT qui définissent les coordonnées graphique de l'emplacement de ton contrôle. De même, une cellule possède les même propriété...

Ainsi, avant d'afficher ton contrôle, il suffit de lui attribuer les coordonnées de la cellule...

Quelque chose comme :
Calendar1.Top = Selection.Top
Calendar1.Left = Selection.Left


ou encore :
Calendar1.Top = Target.Top
Calendar1.Left = Target.Left


Bref, tu auras compris le principe... Tu peux aussi utiliser Range("A1").TOP, etc.

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 nov. 2009 à 20:34
Re...

Je n'ai pas actuellement le contrôle Calendar, mais MonthView... mais le principe est le même. Voici plutôt le code que j'utiliserai :

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
ActiveCell.Value = MonthView1.Value
MonthView1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Target, Range("A4:A100")) Is Nothing Then Exit Sub
    MonthView1.Visible = True
    MonthView1.Top = Selection.Top
    MonthView1.Left = Selection.Left
End Sub


Donc remplacer MonthView1 par Calendar1 dans ton cas.

Dans SelectionChange, il est préférable de mettre en avant le test et de sortir le plus rapidement possible de la SUB si ce n'est pas vérifié... car c'est le cas général !

Amicalement,
Us.
0
tsirlik Messages postés 2 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 21:01
MERCI À TOUS POUR CES INFOS.
Désolé d'avoir placé la question au mauvais endroit, mais je ne savais pas dans quelle rubrique la mettre ...

comme je suis débutant en la matière... je l'ai mis dans débutant... logique je pense!

Je vais essayer vos propositions.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
25 nov. 2009 à 21:03
Non ami,
tu l'as "mise" à la rubrique "débutant", certes, mais dans Forum > Visual Basic 6 > Divers , qui n'est pas ton outil de développement.
0
Rejoignez-nous