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
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 ...
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
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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 SubExemple de code associé à un TextBox dans un UserForm :
Private Sub TextBox1_Enter()
'affichage calendrier
Call afficher_calendrier(TextBox1)
End Sub
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 Subbon 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