Rechercher : dans
Par :

Excel : existe-t-il un calendrier ?

Dernière réponse le 23 sep 2009 à 14:37:47 lesdentsduweb, le 23 nov 2004 à 22:37:49 
 Signaler ce message aux modérateurs

Bonjour,

Sous Excel : existe-t-il un calendrier qui apparaissent sous la forme d'une fenetre, et lorsque l'on clique sur une jour de ce calendrier, ce jour s'affiche dans la cellule precedemment selectionné.

Le tout pour accelerer la saisie de dates à l'intérieur d'un mois ?

Je me demande si cela existe dans une quelconque fonction Excel ou s'il fallait le programmer.

Merci pour vos infos.

Meilleures réponses pour « Excel : existe t il un calendrier ? » dans :
Devenir infographiste VoirL’infographiste est un prodige du dessin et du calcul. Il est aussi un pro de l’outil informatique. Trois atouts indissociables ! L’orientation, qu'elle soit scolaire ou professionnelle, offre de nombreuses possibilités, donc autant de...
Professionnels : vendre aux enchères sur internet VoirProfessionnels : vendre aux enchères sur internet Est-il possible en tant que professionnel, petite ou moyenne entreprise de vendre une partie ou la totalité de ses stocks sur un site de vente aux enchères ? Existe-t-il des restrictions en terme de...
[Pratique] Framakey - Applications portables sur clé USB VoirLa Framakey - Des applications portables sur clé USB Vous vous déplacez et avez besoin d'un ordinateur. Si vous n'avez pas d'ordinateur portable, vous êtes obligé d'utiliser la machine des autres. Ainsi : Soit vous utilisez directement...

1

purrofixe, le 23 nov 2004 à 23:20:06
  • +1

Bonsoir lesdentsduweb,
Comme excel incrémente la date que vous introiduisez dans une cellule: exemple "1.1.2004" en utilisant la poignée de recopie il va incrémenté la date en tenant compte du calendrier interne, donc dès qu'il arrive au "31.1.2004" la suivante devient "1.2.2004" et ainsi de suite,
Je pense que cela devrait vous aidez.
Bonne semaine.

Salutations
Jean-Pierre

Répondre à purrofixe

2

Timmy, le 24 nov 2004 à 05:15:49
  • +1

Bonjour,

Le calendrier comme tu l'entends n'existe pas , i lfaut le développer, mais tu peux en trouver déjà développés en cherchant sur le net.
J'en ai moi même récupérer un mais je ne sais plus sur quel site
Bonne recherche,

Répondre à Timmy

3

purrofixe, le 24 nov 2004 à 11:01:08

Bonjour lesdentsduweb,
Hier soir j'ai mal interprété votre message, par contre ce matin je vous propose de voir sous ce lien:
http://perso.wanadoo.fr/frederic.sigonneau/code/Calendriers/­BOCalendrierSaisieDate.zip
Bonne journée.

Salutations
Jean-Pierre

Répondre à purrofixe

4

random, le 24 nov 2004 à 12:08:06

Si tu as access tu ajoutes au reference calendrier et tu utilises le controle

Répondre à random

5

caroline, le 13 jan 2007 à 00:27:52
Répondre à caroline

6

hichamzone, le 22 mar 2007 à 14:28:03
  • +3

Bonjour
en effet, il existe un calendrier sur Excel pour afficher la fenetre en cliquant sur cellule...
il faut aller dans affichage/barre d'outils/boite à outils controles

la fenetre de controles s'affiche puis il faut aller tout en bas de cette fenetre et appuyer sur autres controles (dessin : marteau et clé) puis appuyer sur : controle calendrier

une fenetre VBA s'affiche, vous revenez sur le fichier excel et vous modifiez les dimentions, couleur...

puis clic droit sur la fenetre du calendrier et puis sur visualiser code

ensuite, dans la fenetre VBA vous avez ça qui s'affiche :

Private Sub Calendar1_Click()

End Sub

au lieu de click il faut se mettre sur lostfocus en le choisissant dans la liste
et on obtient :

Private Sub Calendar1_LostFocus()

End Sub

après il faut taper le code suivante entre les deux lignes :

Calendar1.Visible = True

donc ceci permet de faire disparaitre la fenetre
puis c là ke je viens le problème car j'arrive à faire disparaitre la fenetre calendrier quand je clic à l'extérieur mais pas à l'afficher en clicant sur la cellule...

je m'y suis mis il y a 30min puis en cherchant l'aide sur le net j'ai vu ce forum alors je vous avance un peu et puis si vous avez fait plus, merci de me le signaler

bon courage

Hichamzone

Répondre à hichamzone

7

VEGA, le 10 aoû 2007 à 14:19:51
Répondre à VEGA

8

Lupin.A, le 10 aoû 2007 à 21:39:35
  • +1

Bonjour,

En utilisant le contrôle proposé par hichamzone.

En posant que l'appel du calendrier se fait sur un clic en [A1] et qu'il copie la date sélectionné en [A3].

Option Explicit

Private Sub Calendar1_Click()
    Range("A3").Value = Calendar1.Value
End Sub
'

Private Sub Calendar1_LostFocus()
    Calendar1.Visible = False
End Sub
'

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Intersection As Range, Plage As Range

    Set Plage = Range("A1")

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

End Sub
'


Lupin

Répondre à Lupin.A

9

G-T, le 30 oct 2007 à 15:17:16

Bonjour et tou d'abord merci de cette aide.
Est-il possible d'utiliser ce code pour que quand je clique en [A1], il me copie la date sélectionnée en [B1] mais que je puisse aussi, quand je clique sur [A2], qu'il me copie la date sélectionnée en [B2] ?
Comment puis-je l'adapter ?
Suis-je obligé de faire un contrôle sur toutes les cases ou existe-il une façon de faire une incrémentation ?
En gros je cherche à faire : Si je clique sur [A(x)], le calendrier s'ouvre et la date que je sélectionne s'affiche en [B(x)].
J'espère avoir été clair.
Merci

Répondre à G-T

10

Papou93, le 30 oct 2007 à 16:42:07
  • +2

Bonjour G-T,

Tu peux reprendre le code proposé par Lupin.A en le modifiant comme suit :

Option Explicit

Private Sub Calendar1_Click()
    ActiveCell.Offset(0, 1).Value = Calendar1.Value
    Calendar1.Visible = False
    
End Sub

End Sub

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

    Set Plage = Range("A1:A100")

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

End Sub

Il ne reste plus qu'à adapter la plage de cellules à cliquer et/ou la colonne devant contenir la date.

Cordialement.

Répondre à Papou93

11

G-T, le 30 oct 2007 à 16:55:47
  • +1

Merci Papou93,
je vois ce que tu veux dire.
Je clique sur une case de A1 à A...,
Ensuite avec

ActiveCell.Offset(0, 1).Value
je désigne la case à 0 ligne et 1 colonne de plus de la case active (Ce qui signifie la case juste à la droite de là où j'ai cliqué) et je met la valeur sélectionnée dans le calendrier dedans.

Donc si je mets
ActiveCell.Offset(0, 0).Value
ça me mettra si j'ai bien compris la valeur dans la case où je viens de cliquer.

G-T

Répondre à G-T

12

G-T, le 30 oct 2007 à 17:41:22

Bonsoir,
Un petit problème se pose ensuite.
Si je clique sur une case dans la plage pour afficher le calendrier et que je clique ensuite sur une autre case avant d'avoir cliqué sur le calendrier, la case active dans laquelle la valeur est insérée n'est alors plus la bonne.
En effet, la valeur sélectionnée grace au calendrier est insérée dans la dernière case où j'ai cliqué.

Est-ce possible d'empêcher de sélectionner une autre case tant que le calendrier est affiché ? Et comment ?

Merci
G-T

Répondre à G-T

13

Papou93, le 30 oct 2007 à 18:46:34

Bonsoir G-T,

Pour répondre à ton 1er message, il est inutile d'écrire ActiveCell.Offset(0, 0).Value puisque ActiveCell.Value est équivalent.

En ce qui concerne le second, je ne pense pas que celà soit possible, du moins jusqu'à Excel 2003 puisque je n'ai pas encore testé Excel 2007. Mais il existe une solution :

Il suffit de créer un UserForm contenant un calendrier, puis de régler sa propriété ShowModal à true. Un click sur le calendrier fermera le UserForm. De cette façon, il sera impossible de sélectionner une autre cellule.

Espérant t'avoir aidé et restant à ton écoute.

Cordialement.

Répondre à Papou93

14

G-T, le 30 oct 2007 à 19:24:36

Heu...

Le soucis vient de moi, je découvre mon incapacité si je puis dire.
Comment mot-on un calendrier dans un UserForm ?

J'aurai presque envier de m'excuser tellement ça doit paraître évident dès lors qu'on a un peu regardé comment fonctionnait tout ceci auparavant.

Répondre à G-T

15

Papou93, le 30 oct 2007 à 20:45:46

Heu... c'est simple :

Lorsque tu es dans le userform, tu dois voir la boîte à outils contrôles. Tu cliques droit dans la zone des contrôles, tu choisis contrôles supplémentaires, puis dans la liste déroulante tu choisis 'Contrôle Calendrier 11.0'. Je crois que pour les versons d'excel antérieures à 2003, ça doit être 'Contrôle Calendrier 10.0'.
J'allais oublier : pour trouver ce contrôle calendrier, il faut avoir installé Access dans Microsoft Office. Autrement, je crois qu'on peut se le procurer sur le Net, mais je sais plus où exactement, il faut chercher.

Cordialement.

Répondre à Papou93

17

G-T, le 30 oct 2007 à 21:37:51

Je n'ai toujours pas réussi.
Tout d'abord un petit récap de ma configuration.
J'utilise Office 2007 et j'ai Access.
J'arrive à trouver "Contrôle Calendrier 12.0" dans les "Autres contrôles" mais je n'arrive pas à le faire dans un UserForm.
Quand je sélectionne "Contrôle Calendrier 12.0" j'ai une croix pour choisir l'emplacement du Calendrier sur mon tableur excel.
Quand je suis dans le code VB du UserForm je n'ai pas acces à la boite à outils contrôles.

Et autre "petit" problème, je n'arrive pas à enregistrer le fichier excel avant la fermeture pour qu'il conserve le Projet VBA.
Autrement dit, tout le code saisi n'est pas sauvé.

Bref, si une nuit porte conseil je vais essayer d'aller en passer deux ...

Répondre à G-T

16

Papou93, le 30 oct 2007 à 20:50:19

PS : J'ai trouvé ce site, au cas où :

http://www.fontstuff.com/mailbag/qvba01.htm

Cordialement.

Répondre à Papou93

18

..., le 22 déc 2007 à 13:28:51

Bonjour,

Je me permet de venir ici et j'espère ne pas vous outer de par mon ignorance.

En effet j'aimerais savoir exactement comment faire pour mettre un calendrier dans mon tableur Excel 2003. J'ai créer une colonne date et j'aimerais beaucoup pouvoir en sélectionnant une cellule dans cette colonne voir un calendrier aparaitre avec lequel je peux choisir la date et aussi avec lequel dès que je clique il disparait. Même si je dois le mettre dans chaque cellule c'est pas génant.

Merci d'avance

J.F.

Répondre à ...

19

..., le 24 déc 2007 à 10:56:51
  • +1

C'est bon j'ai trouvé il fallait mettre :

Private Sub Calendar1_Click()
' Met la date sélectionnée dans la cellule active
ActiveCell.Value = Calendar1.Value
' Masque le calendrier
Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row >= 8 And Target.Row <= 107 Then
' Si la cellule sélectionnée est dans la plage qu'on veut lier au calendrier,
' on affiche le calendrier
Calendar1.Visible = True
' Place le calendrier à côté de la cellule
Calendar1.Top = ActiveCell.Top
Calendar1.Left = ActiveCell.Left + ActiveCell.Width
Else
' Sinon, on masque le calendrier
Calendar1.Visible = False
End If
End Sub

J'ai mis les commentaires pour que chacun puisse voir les étapes.

Voilà ca peut toujours servir.

Répondre à ...

20

FACTEUR, le 31 déc 2007 à 18:11:50

Salu Lupin,

La reponse a l'affichage est tres interessante mais apres avoir choisie une date sur la calendrier , comment fait on pour masquer ce meme calendrier.

facteur

Répondre à FACTEUR

23

alepmi, le 5 nov 2008 à 19:50:33

Bonjour, pour ma part je recherche la meme fonctionnalité a l exception pres que mon fichier en question est en partage multi utilisateurs, et quand je redige le code ci dessous , puis lance mon outil, en more partage multi utilisateurs, je recois le message suivant: "Unable to set the TOP property of the OLEobject Class".
Si quelqu un a une solution , je suis grandement preneur
par avance merci



Private Sub Calendar1_Click()
' Met la date sélectionnée dans la cellule active
ActiveCell.Value = Calendar1.Value
' Masque le calendrier
Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row >= 8 And Target.Row <= 107 Then
' Si la cellule sélectionnée est dans la plage qu'on veut lier au calendrier,
' on affiche le calendrier
Calendar1.Visible = True
' Place le calendrier à côté de la cellule
Calendar1.Top = ActiveCell.Top
Calendar1.Left = ActiveCell.Left + ActiveCell.Width
Else
' Sinon, on masque le calendrier
Calendar1.Visible = False
End If
End Sub

Répondre à alepmi

25

 sebioj, le 23 sep 2009 à 14:37:47

Bonjour,

J'ai eu besoin de vos conseils et j'ai trouvé ma solution, j'espère qu'elle vous conviendra.

---//---
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
End Sub



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

Set Plage = Range("A:A")

Set Intersection = Application.Intersect(Target, Plage)
If Not (Intersection Is Nothing) Then
Calendar1.Visible = True
Calendar1.Top = ActiveCell.Top
Else
Calendar1.Visible = False
End If

End Sub
---//---

Répondre à sebioj