Calendrier MonthView / Remplacer / VBA

bonjour a tous

voila j'ai voulu migrer un fichier excel 2007 sous windows XP avec un calendrier sur un nouveau Pc

calend10

Pc qui est en Windows 10 ( 64 bits ) et office 2007 ( 32 bits )

j'ai donc essayer a de multiple reprise d'installer les dll manquant ect ...

https://answers.microsoft.com/fr-fr/msoffice/forum/msoffice_excel-mso_win10-mso_2016/cr%C3%A9er-un-contr%C3%B4le-calendrier-monthview/31a291de-3d2a-4fd0-93c8-12415c3814a7

au final le résultat n'est pas la et je commence a trouver cela un peux complexe pour avoir un simple calendrier

du coup j'ai trouve un petit calendrier sur un forum ( calendrier pop up ) merci a l'auteur par contre je dois adapter le code orignal a ce nouveau calendrier mais la je veux bien un petit coup de main .....

je ne dois pas pouvoir importer une date supérieur a la date du jour

voici le code et un bout de fichier avec le code , merci de votre aide ...

Option Explicit
Public dat2 As Date, Cancel As Boolean, flg As Integer
Sub Journée()
Dim target As Range
    Dim UnJour As Date

        UnJour = FormCal.Calendrier
        If UnJour <> 0 Then
            target = Format(UnJour, "mm/dd/yyyy")
        Else
            target = ""
        End If

     flg = 0: dat2 = Date
    Application.ScreenUpdating = False

jour2:
        FormCal.Show
      '  UserForm1.Show

    Select Case MsgBox("Vous avez choisi d'importer la journée du " & dat2 _
                     & vbCrLf & "" _
                     & vbCrLf & "Confirmez-vous ?" _
         , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")
    Case vbYes
        Application.StatusBar = "Importation en cours… veuillez patienter !"
        If flg = 1 Then dat2 = Date - 1: GoTo jour2

      If flg <> 1 Then MsgBox (Format(dat2, "yyyy-mm-dd"))  ' ici j’appelle une macro avec la date choisi  mais  pour le forum je change 
        ' Range("B5").Select
        Application.StatusBar = False
        Exit Sub
    Case vbNo
        Select Case MsgBox("Voulez-vous saisir une autre date ?" _
                         & vbCrLf & "" _
             , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")
        Case vbYes
            GoTo jour2
        Case vbNo
           ' Sheets("Accueil").Select
            Cancel = True
            'Range("B5").Select
            Exit Sub
        End Select
    End Select

End Sub
124calendrier.xlsm (31.14 Ko)

Bonjour,

Je vous propose mon contrôle calendrier (ci-joint) pour lequel aucune modification de code n'est nécessaire

Sa mise en place est simple :

1- stocker le contrôle dans le répertoire de ton choix

2- ouvrir le classeur où tu veux ajouter le contrôle

3- à partir du classeur, menu fichier --> ouvrir le contrôle

4- sauvegarder ton classeur

Le contrôle est à présent actif et sera désormais systématiquement chargé à chaque ouverture de ton classeur.

Son utilisation est simple :

appeler la procédure "afficher_calendrier(target)"

Exemple de code associé à une feuille pour la cellule "A1"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Address = Range("A1").Address Then
        'affichage calendrier
        Call afficher_calendrier(Target)
    End If

End Sub

Exemple de code associé à un TextBox dans un UserForm :

Private Sub TextBox1_Enter()
      'affichage calendrier
    Call afficher_calendrier(TextBox1)
End Sub
227calendrier.xlam (58.39 Ko)

merci thev mais je vais continuer avec le calendrier que j'ai trouve avant

cela reste un peu obscur pour moi , et j'ai réussi a faire quelques turc avec mes bouts de code

c'est pas fini mais sur les bons rails

il me reste a ne pas autoriser les dates supérieur a la date du jour

Option Explicit
Public dat2 As Date, Cancel As Boolean, flg As Integer

Sub Journée()

    Dim Target As Date
    Dim UnJour As Date
    Dim cejour As Date   ' ajout date du jour 

    [cejour] = Format(Now, "dd/mm/yyyy")

jour2:        '  ici on recommence 

        UnJour = FormCal.Calendrier

        If UnJour <> 0 Then
           Target = Format(UnJour, "mm/dd/yyyy")
        Else
            Target = ""
         End If

     flg = 0: dat2 = Target
    Application.ScreenUpdating = False

    Select Case MsgBox("Vous avez choisi d'importer la journée du " & dat2 _
                     & vbCrLf & "" _
                     & vbCrLf & "Confirmez-vous ?" _
         , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")
    Case vbYes
        Application.StatusBar = "Importation en cours… veuillez patienter !"
        If flg = 1 Then dat2 = cejour + 1: GoTo jour2

      If flg <> 1 Then MsgBox (Format(dat2, "yyyy-mm-dd"))  ' macro
        ' Range("B5").Select
        Application.StatusBar = False
        Exit Sub
    Case vbNo
        Select Case MsgBox("Voulez-vous saisir une autre date ?" _
                         & vbCrLf & "" _
             , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")
        Case vbYes
            GoTo jour2
        Case vbNo
           ' Sheets("Accueil").Select
            Cancel = True
            'Range("B5").Select
            Exit Sub
        End Select
    End Select

End Sub

bon voila j'ai fini et cela fonctionne

l

Sub Journée()

    Dim Target As Date
    Dim UnJour As Date
    Dim cejour As Date

    [cejour] = Format(Now, "dd/mm/yyyy")

jour2:
        dat2 = 0

        UnJour = FormCal.Calendrier

        If UnJour <> 0 Then
           Target = Format(UnJour, "dd/mm/yyyy")
        Else
            Target = ""
         End If

     dat2 = Target
    Application.ScreenUpdating = False

    If dat2 > cejour Then
    MsgBox (" La date choisi le " & dat2 & " ne peux etre superieur à la date du jour  ")
    GoTo jour2

    End If

    Select Case MsgBox("Vous avez choisi d'importer la journée du " & dat2 _
                     & vbCrLf & "" _
                     & vbCrLf & "Confirmez-vous ?" _
         , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")

    Case vbYes

        Application.StatusBar = "Importation en cours… veuillez patienter !"
        MsgBox (Format(dat2, "yyyy-mm-dd"))  ' macro
        ' Range("B5").Select
        Application.StatusBar = False
        Exit Sub

    Case vbNo

        Select Case MsgBox("Voulez-vous saisir une autre date ?" _
                         & vbCrLf & "" _
             , vbYesNo Or vbExclamation Or vbDefaultButton1, "Journée d'importation")
        Case vbYes
            GoTo jour2
        Case vbNo
           ' Sheets("Accueil").Select
            Cancel = True
            'Range("B5").Select
            Exit Sub
        End Select
    End Select

End Sub
Rechercher des sujets similaires à "calendrier monthview remplacer vba"