tsirlik
Messages postés2Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention25 novembre 2009
-
25 nov. 2009 à 15:03
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDerniè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
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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 !