Probleme ajout calendrier cellule

Bonjour à tous !!

J'aurais beaucoup aimé intégrer un calendrier dans une cellule mais je ne trouve pas la solution.

J'ai suivie ce tuto de microsoft https://support.microsoft.com/fr-fr/kb/2676583

mais ca ne fonctionne toujours pas. impossible de trouver ce microsoft date.

Bonjour

Ne pose pas la même question dans tous tes posts, sinon on ne va plus suivre

Réponse ici

https://forum.excel-pratique.com/excel/deplacement-ligne-dans-un-2e-tableau-t73958.html#p423666

Oupsss pardon je vais allez regarder ca de plus pres merci

bon je n'ai toujours pas reussi, la commande regserv ne fonctionne pas et toujours pas de data truc bordel lol

pas de calendar non plus.

Ne comprend pas du tout.

Bonjour

A vérifier

je suis sur que ca fonctionne sauf que chez moi ca me dit impossible de charger l'objet car il n'est pas disponible sur cette machine

Bonjour

Pourtant il est disponible sur toutes les versions d'Excel (enfin je le pensais)

Regarde dans Outils --> Contrôles supplémentaires

Tu coches Calendar control ......

Les ..... correspondent à ta version

Et tu réessaies

je n'ai pas de menu outil

Bonjour

T'es sur ?

Cherche bien dans l'éditeur VBA

je clique sur visual basic et ensuite?

Quelqu'un pourrais m'aider, ce sujet est toujours d'actualité.

Je souhaite ouvrir un calendrier pour selectionner une date lorsque je clique en A1

Cependant j'ai toujours ce soucis de calendar control etc ..

Merci de votre aide

banzai, je ne te vois plus sur le forum?

Bonsoir,

Si tu veux ton calendar dans une cellule c'est pas dans VBA qu'il faut aller...

mais dans le menu Développeur > Insérer Contrôle Active X > Cliquer sur autre contrôle et suivre avec attention les indications du lien que tu as cité tout au début...

Et si en bout de course tu n'y arrives toujours pas : Tu recommences...

Je rigole... Non... sinon maintenant on fait des calendriers embarqués très bien en plus ils sont indépendants de ta machine et de ta version Excel...

En pièce jointe en voici un qui n'a que le mérite de la simplicité... mais on en trouve beaucoup d'autre sur mesure en fonction des besoins...

A+

bonsoir Galopin01

excellent calendrier autonome mais peut t'il écrire la date au format français qu'est "vendredi 20 mai 2016

Bonsoir,

ça, ça ne dépend pas du calendrier. Une date est une date : Après, tu mets le format que tu veux dans la cellule...

A+

bonsoir Galopin01

je n'avais pas vu que c'est le format de la cellule qui fallait modifier

magnifique merci beaucoup !!

Merci mais dans le lien que j'avais mis, je n'ai pas le fichier MSCOMCT2.OCX


Merci galopin, ca à l'air super ca !!

par contre dans le code du calendrier, que dois-je modifier pour l'avoir en K6 et en L7 uniquement?

voici le code

Option Explicit
Dim Semaine As Integer
Dim StopEvent As Boolean    'évite l'éxécution récursive des évênements

Function Calendrier(Optional DateInitiale As Date) As Date
    StopEvent = True
    If DateInitiale <> 0 Then
        Jour = DateInitiale
    Else
        Jour = Now
    End If
    StopEvent = False
    FormCal.Show
    Calendrier = Jour
End Function

Private Sub jPj_Change()

End Sub

Private Sub Label11_Click()

End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim m As String
    'remplit la liste des mois
    For i = 1 To 12
        m = Format("01/" & i, "mmmm")
        Mois.AddItem UCase(Left(m, 1)) & Right(m, Len(m) - 1)
    Next i
    'remplit la liste des années
    For i = 1900 To 2100
        Annee.AddItem i
    Next i
End Sub

Private Sub OK_Click()
    Semaine = Me.sem1.Caption
    Unload Me
End Sub

Private Sub Annuler_Click()
    Jour = 0
    Unload Me
End Sub

Private Sub Mois_Change()
    If Not StopEvent Then Jour.Value = CDate("01/" & Mois.ListIndex + 1 & "/" & Annee.ListIndex + 1900)
End Sub
Private Sub Annee_Change()
    If Not StopEvent Then Jour.Value = CDate("01/" & Mois.ListIndex + 1 & "/" & Annee.ListIndex + 1900)
End Sub

Private Sub Aujourdhui_Click()
    Jour.Value = Now
End Sub

'Les jours sont repérés de J1 à J42
'La valeur des propriétés .tag sont
'respectivement de 1 à 42
Private Sub J1_Click()
    ChJour Val(J1.Tag)
End Sub
Private Sub J2_Click()
    ChJour Val(J2.Tag)
End Sub
Private Sub J3_Click()
    ChJour Val(J3.Tag)
End Sub
Private Sub J4_Click()
    ChJour Val(J4.Tag)
End Sub
Private Sub J5_Click()
    ChJour Val(J5.Tag)
End Sub
Private Sub J6_Click()
    ChJour Val(J6.Tag)
End Sub
Private Sub J7_Click()
    ChJour Val(J7.Tag)
End Sub
Private Sub J8_Click()
    ChJour Val(J8.Tag)
End Sub
Private Sub J9_Click()
    ChJour Val(J9.Tag)
End Sub
Private Sub J10_Click()
    ChJour Val(J10.Tag)
End Sub
Private Sub J11_Click()
    ChJour Val(J11.Tag)
End Sub
Private Sub J12_Click()
    ChJour Val(J12.Tag)
End Sub
Private Sub J13_Click()
    ChJour Val(J13.Tag)
End Sub
Private Sub J14_Click()
    ChJour Val(J14.Tag)
End Sub
Private Sub J15_Click()
    ChJour Val(J15.Tag)
End Sub
Private Sub J16_Click()
    ChJour Val(J16.Tag)
End Sub
Private Sub J17_Click()
    ChJour Val(J17.Tag)
End Sub
Private Sub J18_Click()
    ChJour Val(J18.Tag)
End Sub
Private Sub J19_Click()
    ChJour Val(J19.Tag)
End Sub
Private Sub J20_Click()
    ChJour Val(J20.Tag)
End Sub
Private Sub J21_Click()
    ChJour Val(J21.Tag)
End Sub
Private Sub J22_Click()
    ChJour Val(J22.Tag)
End Sub
Private Sub J23_Click()
    ChJour Val(J23.Tag)
End Sub
Private Sub J24_Click()
    ChJour Val(J24.Tag)
End Sub
Private Sub J25_Click()
    ChJour Val(J25.Tag)
End Sub
Private Sub J26_Click()
    ChJour Val(J26.Tag)
End Sub
Private Sub J27_Click()
    ChJour Val(J27.Tag)
End Sub
Private Sub J28_Click()
    ChJour Val(J28.Tag)
End Sub
Private Sub J29_Click()
    ChJour Val(J29.Tag)
End Sub
Private Sub J30_Click()
    ChJour Val(J30.Tag)
End Sub
Private Sub J31_Click()
    ChJour Val(J31.Tag)
End Sub
Private Sub J32_Click()
    ChJour Val(J32.Tag)
End Sub
Private Sub J33_Click()
    ChJour Val(J33.Tag)
End Sub
Private Sub J34_Click()
    ChJour Val(J34.Tag)
End Sub
Private Sub J35_Click()
    ChJour Val(J35.Tag)
End Sub
Private Sub J36_Click()
    ChJour Val(J36.Tag)
End Sub
Private Sub J37_Click()
    ChJour Val(J37.Tag)
End Sub
Private Sub J38_Click()
    ChJour Val(J38.Tag)
End Sub
Private Sub J39_Click()
    ChJour Val(J39.Tag)
End Sub
Private Sub J40_Click()
    ChJour Val(J40.Tag)
End Sub
Private Sub J41_Click()
    ChJour Val(J41.Tag)
End Sub
Private Sub J42_Click()
    ChJour Val(J42.Tag)
End Sub

Private Sub ChJour(x As Byte)
    StopEvent = True    'evite que le changement de mois
'ou d'année ne redéclenche
'l'évênement Jour_Change
    Jour.Value = CDate(Pj.Value) + x - jPj.Value
    StopEvent = False
    OK_Click
End Sub

Private Sub Jour_Change()
    Dim l As Control
    Dim num As Variant
    Dim j As Date
    'Mise à jour des n° de jour
    Pj.Value = CDate("01/" & Month(Jour.Value) & "/" & Year(Jour.Value))    'Premier Janvier
    jPj.Value = Weekday(Pj, vbMonday)    'n° de jour du premier janvier
    If jPj.Value = 1 Then jPj.Value = 8
    For Each l In FormCal.Controls    'on passe en revue l'ensemble des controls
        num = Val(l.Tag)
        If num >= 1 And num <= 42 Then    'si la propriété .tag est entre 1 et 42 c'est un jour
            j = CDate(Pj.Value) + num - CDate(jPj.Value)
            l.Caption = Day(j)    'mettre à jour le n° de jour

            If Month(j) <> Month(Jour.Value) Then
                l.ForeColor = &H80000011    'si le jour est dans le mois, fort constraste
                sem1.Caption = NOSEM(CDate(Day(Jour.Value) & "/" & Month(Jour.Value) & "/" & Year(Jour.Value)))
            Else
                l.ForeColor = &H800000    'sinon semaine prec et suiv, faible contraste
                sem1.Caption = NOSEM(CDate(Day(Jour.Value) & "/" & Month(Jour.Value) & "/" & Year(Jour.Value)))
            End If

            If CDate(j) = CDate(Day(Jour.Value) & "/" & Month(Jour.Value) & "/" & Year(Jour.Value)) Then
                l.SpecialEffect = 2    'si le jour correspond à la date sélectionné, aspect enfoncé
                l.BackColor = &H8000000C
            Else
                l.SpecialEffect = 3    ' pour les autres, aspect relevé
                l.BackColor = &H8000000F
            End If
        End If
    Next l
    'Mise à jour du mois
    StopEvent = True
    Mois.ListIndex = Month(Jour.Value) - 1
    'Mise à jour de l'année
    Annee.ListIndex = Year(Jour.Value) - 1900
    StopEvent = False

    'Mise à jour de la semaine
    For Each l In FormCal.Controls    'on passe en revue l'ensemble des controls
        num = Val(l.Tag)
        If num = 1 And l.ForeColor = &H80000011 Then    'le jour est dans le mois
            sem1.Caption = NOSEM(CDate(Day(Jour.Value) & "/" & Month(Jour.Value) & "/" & Year(Jour.Value)))
        ElseIf num = 1 Then
            sem1.Caption = NOSEM(CDate(Day(Jour.Value) & "/" & Month(Jour.Value) - 1 & "/" & Year(Jour.Value)))
        End If
    Next
End Sub

Function NOSEM(D As Date) As Long
    D = Int(D)
    NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
    NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) \ 7 + 1
End Function

Bonjour,

Il n'y a rien à retoucher dans le calendrier.

ça se passe uniquement dans le module de la feuille cible : (Clic droit sur l'onglet + Visualiser le code)

Remplacer le code existant par :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim isect, UnJour As Date
If Target.Count = 1 Then
   Set isect = Application.Intersect(Target, [K6])
   If Not isect Is Nothing Then
      Cancel = True
       UnJour = FormCal.Calendrier
   End If
   Set isect = Application.Intersect(Target, [L7])
   If Not isect Is Nothing Then
      Cancel = True
      UnJour = FormCal.Calendrier
   End If
End If
End Sub

A+

Rechercher des sujets similaires à "probleme ajout calendrier"