C
CHRIS 57
Guest
Bonjour à tous,
j'ai réalisé un agenda électronique sur excel qui permet d'enregistrer des mémos à tel et tel date et heure.
A l'ouverture du classeur, il vérifie automatiquement s'il y a un mémo qui concerne les 3 prochains jours.
Si c'est le cas, une fenêtre s'ouvre et informe l'utilisateur qu'un rendez-vous est enregistré pour aujourd'hui, demain ou après demain.
Sinon j'ai aussi réalisé (avac l'aide de ce forum), une tempo qui s'active également à l'ouverture du classeur uniquement s'il n'y a pas de mémo pour les 3 prochains jours : dans ce cas, au bout de 10 sec, le classeur se ferme.
J'ai ensuite planifié l'ouverture de ce classeur chaque jour, mais lorsqu'il s'ouvre à l'heure planifée, le message indiquant le rendez-vous s'affiche, mais lorsque je le valide, le programme se bloque !
Le fichier étant trop gros, voici la macro qui s'active à l'ouverture :
-----------------------------------------------------------------------------------------------
Private Sub Workbook_Open()
'A L'OUVERTURE lance la vérification si RENDEZ-VOUS AUJOURD'HUI / DEMAIN / APRES-DEMAIN
Application.WindowState = xlMaximized
VERIFsiRDV
End Sub
Option Explicit
-----------------------------------------------------------------------------------------------
Sub VERIFsiRDV()
Application.ScreenUpdating = False
' VERIFICATION SI RENDEZ-VOUS AUJOURD'HUI / DEMAIN / APRES-DEMAIN
MESSAGE = 0
[R3] = Date
[S3] = Date + 1
[T3] = Date + 2
[R3].NumberFormat = "dddd d mmm yyyy"
[S3].NumberFormat = "dddd d mmm yyyy"
[T3].NumberFormat = "dddd d mmm yyyy"
' Vérifie si il y a un rendez-vous aujourd'hui
For Each X In [B4:B3000]
If X.Text = [R3].Text Then
MESSAGE = 1
X.Offset(0, 2).Select
Msg1 = " Vous avez un mémo pour aujourd'hui : "
DATEheure = " " & X.Text & " à " & X.Offset(0, 2).Text
TEXTE1 = X.Offset(0, 3).Text
Msg = Msg1 & Chr(13) & Chr(13) & DATEheure & Chr(13) & Chr(13) & Chr(13) & TEXTE1 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then X.Resize(1, 4).ClearContents
End If
Next X
' Vérifie si il y a un rendez-vous demain
For Each Y In [B4:B3000]
If Y.Text = [S3].Text Then
MESSAGE = 1
Y.Offset(0, 2).Select
Msg2 = " Vous avez un mémo pour demain : "
DATEheure2 = " " & Y.Text & " à " & Y.Offset(0, 2).Text
TEXTE2 = Y.Offset(0, 3).Text
Msg = Msg2 & Chr(13) & Chr(13) & DATEheure2 & Chr(13) & Chr(13) & Chr(13) & TEXTE2 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then Y.Resize(1, 4).ClearContents
End If
Next Y
' Vérifie si il y a un rendez-vous demain
For Each Z In [B4:B3000]
If Z.Text = [T3].Text Then
MESSAGE = 1
Z.Offset(0, 2).Select
Msg3 = " Vous avez un mémo pour après-demain : "
DATEheure3 = " " & Z.Text & " à " & Z.Offset(0, 2).Text
TEXTE3 = Z.Offset(0, 3).Text
Msg = Msg3 & Chr(13) & Chr(13) & DATEheure3 & Chr(13) & Chr(13) & Chr(13) & TEXTE3 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then Z.Resize(1, 4).ClearContents
End If
Next Z
TRIER
' Se positionne sur la date du jour
For Each X In [B4:B3000]
If X.Text = [R3].Text Then
X.Offset(0, 2).Select
End If
Next X
' Si pas de message alors lance la tempo pour la fermeture
If MESSAGE = 0 Then LANCEURchrono
End Sub
-----------------------------------------------------------------------------------------------
(les variables sont définies à part) :
Public DATEaujour As Date
Public DATErdv As Date
Public MESSAGE ' Si message
Public TEMPO As Date ' Variable qui arrête la tempo à l'ouverture
Public Msg, Response
Public X, Msg1, TEXTE1, DATEheure
Public Y, Msg2, TEXTE2, DATEheure2
Public Z, Msg3, TEXTE3, DATEheure3
-----------------------------------------------------------------------------------------------
Là j'avoue ne rien y comprendre...
j'ai réalisé un agenda électronique sur excel qui permet d'enregistrer des mémos à tel et tel date et heure.
A l'ouverture du classeur, il vérifie automatiquement s'il y a un mémo qui concerne les 3 prochains jours.
Si c'est le cas, une fenêtre s'ouvre et informe l'utilisateur qu'un rendez-vous est enregistré pour aujourd'hui, demain ou après demain.
Sinon j'ai aussi réalisé (avac l'aide de ce forum), une tempo qui s'active également à l'ouverture du classeur uniquement s'il n'y a pas de mémo pour les 3 prochains jours : dans ce cas, au bout de 10 sec, le classeur se ferme.
J'ai ensuite planifié l'ouverture de ce classeur chaque jour, mais lorsqu'il s'ouvre à l'heure planifée, le message indiquant le rendez-vous s'affiche, mais lorsque je le valide, le programme se bloque !
Le fichier étant trop gros, voici la macro qui s'active à l'ouverture :
-----------------------------------------------------------------------------------------------
Private Sub Workbook_Open()
'A L'OUVERTURE lance la vérification si RENDEZ-VOUS AUJOURD'HUI / DEMAIN / APRES-DEMAIN
Application.WindowState = xlMaximized
VERIFsiRDV
End Sub
Option Explicit
-----------------------------------------------------------------------------------------------
Sub VERIFsiRDV()
Application.ScreenUpdating = False
' VERIFICATION SI RENDEZ-VOUS AUJOURD'HUI / DEMAIN / APRES-DEMAIN
MESSAGE = 0
[R3] = Date
[S3] = Date + 1
[T3] = Date + 2
[R3].NumberFormat = "dddd d mmm yyyy"
[S3].NumberFormat = "dddd d mmm yyyy"
[T3].NumberFormat = "dddd d mmm yyyy"
' Vérifie si il y a un rendez-vous aujourd'hui
For Each X In [B4:B3000]
If X.Text = [R3].Text Then
MESSAGE = 1
X.Offset(0, 2).Select
Msg1 = " Vous avez un mémo pour aujourd'hui : "
DATEheure = " " & X.Text & " à " & X.Offset(0, 2).Text
TEXTE1 = X.Offset(0, 3).Text
Msg = Msg1 & Chr(13) & Chr(13) & DATEheure & Chr(13) & Chr(13) & Chr(13) & TEXTE1 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then X.Resize(1, 4).ClearContents
End If
Next X
' Vérifie si il y a un rendez-vous demain
For Each Y In [B4:B3000]
If Y.Text = [S3].Text Then
MESSAGE = 1
Y.Offset(0, 2).Select
Msg2 = " Vous avez un mémo pour demain : "
DATEheure2 = " " & Y.Text & " à " & Y.Offset(0, 2).Text
TEXTE2 = Y.Offset(0, 3).Text
Msg = Msg2 & Chr(13) & Chr(13) & DATEheure2 & Chr(13) & Chr(13) & Chr(13) & TEXTE2 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then Y.Resize(1, 4).ClearContents
End If
Next Y
' Vérifie si il y a un rendez-vous demain
For Each Z In [B4:B3000]
If Z.Text = [T3].Text Then
MESSAGE = 1
Z.Offset(0, 2).Select
Msg3 = " Vous avez un mémo pour après-demain : "
DATEheure3 = " " & Z.Text & " à " & Z.Offset(0, 2).Text
TEXTE3 = Z.Offset(0, 3).Text
Msg = Msg3 & Chr(13) & Chr(13) & DATEheure3 & Chr(13) & Chr(13) & Chr(13) & TEXTE3 & Chr(13) & Chr(13) & Chr(13) & Chr(13) & " Supprimer ce mémo ?"
Response = MsgBox(Msg, vbYesNo + vbCritical, "MEMO")
If Response = vbYes Then Z.Resize(1, 4).ClearContents
End If
Next Z
TRIER
' Se positionne sur la date du jour
For Each X In [B4:B3000]
If X.Text = [R3].Text Then
X.Offset(0, 2).Select
End If
Next X
' Si pas de message alors lance la tempo pour la fermeture
If MESSAGE = 0 Then LANCEURchrono
End Sub
-----------------------------------------------------------------------------------------------
(les variables sont définies à part) :
Public DATEaujour As Date
Public DATErdv As Date
Public MESSAGE ' Si message
Public TEMPO As Date ' Variable qui arrête la tempo à l'ouverture
Public Msg, Response
Public X, Msg1, TEXTE1, DATEheure
Public Y, Msg2, TEXTE2, DATEheure2
Public Z, Msg3, TEXTE3, DATEheure3
-----------------------------------------------------------------------------------------------
Là j'avoue ne rien y comprendre...