Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

une macro en début de mois

5 réponses
Avatar
Phil de Paris
Bonjour,

Je cherche à créer une macro qui se déclanche

chaque 1er du mois si le fichier est ouvert ce jour là
ou lors de la première ouverture du fichier suivant le 1er du mois ?

est ce possible ?

Merci de votre aide

5 réponses

Avatar
AV
Dans le module de ThisWorkbook :

Private Sub Workbook_Open()
If Day(Date) >= 1 Then maMacro
End Sub

Sub maMacro()
msgbox "Le 1° est aujourdhui() ou passé"
end sub

AV
Avatar
Jean-Claude
Je cherche à créer une macro qui se déclanche

chaque 1er du mois si le fichier est ouvert ce jour là
ou lors de la première ouverture du fichier suivant le 1er du mois ?

est ce possible ?


Salut,
Possible=oui
Je m'y prendrait de la manière suivante :

Dans une feuille de ton classeur, je réserverais une cellule, nommée, pour
plus de facilité (par exemple "OuvertureLe1")
dans le code de l'évènement Workbook_Open du module ThisWorkbook :

Private Sub Workbook_Open()
If Range("OuvertureLe1") <> Month(Date) Then Range("OuvertureLe1") =
Month(Date): MaMAcro
End Sub

Sub MaMAcro()
BlaBla
End Sub

J'espère que cela correpond à ton attente.
Bien entendu il serait souhaitable que la cellule nommée "OuvertureLe1" soit
dans un onglet caché pour qu'il ne soit pas modifiable par tout un chacun

A+
Jc

Avatar
Alain de Evreux
Bonjour
Tu peux reserver une cellule d'une feuille pour conserver la date de
premiere lecture soit dans une feuille existante si non génant soit dans une
feuille qui ne servira qu'à cela.
si cellule vide =>déroulement macro dans woorkbook_open
Dans la macro ,écriture de la date du jour dans la cellule réservée
ouverture suivante comparaison de la date courante avec le contenu de la
cellule, si supérieure dans le même mois pas de traitement, si mois
supérieur au mois dans cellule réservée traitement puis écriture de la
nouvelle date de traitement dans la cellule réservée.
A+
Avatar
LeSteph
Bonsoir Phil ,

'****dans module
Sub init()

ActiveWorkbook.Names.Add Name:="lastim", _
RefersToR1C1:=Format(Now, "mm") - 1

End Sub

'***dans le module Thisworkbook

Private Sub Workbook_Open()

If ThisWorkbook.Names("lastim"). _
RefersToR1C1 = "=" & Format(Now, "mm") Then
MsgBox "sortie"
Exit Sub

End If

'ici le nom de la macro à executer

ThisWorkbook.Names("lastim"). _
RefersToR1C1 = "=" & Format(Now, "mm")
End Sub

'******

'une fois tout ceci collé executer d'abord init fermer le classeur et
l'enregistrer
'à l'ouverture la macro s'execute la première fois après ce sera à partir du
mois suivant

'lSteph

"Phil de Paris" <philippe.geai(supprimerceci)@laposte.net> a écrit dans le
message de news: %
Bonjour,

Je cherche à créer une macro qui se déclanche

chaque 1er du mois si le fichier est ouvert ce jour là
ou lors de la première ouverture du fichier suivant le 1er du mois ?

est ce possible ?

Merci de votre aide



Avatar
Phil de Paris
Merci à tous




"Jean-Claude" a écrit dans le message de news:

Je cherche à créer une macro qui se déclanche

chaque 1er du mois si le fichier est ouvert ce jour là
ou lors de la première ouverture du fichier suivant le 1er du mois ?

est ce possible ?


Salut,
Possible=oui
Je m'y prendrait de la manière suivante :

Dans une feuille de ton classeur, je réserverais une cellule, nommée, pour
plus de facilité (par exemple "OuvertureLe1")
dans le code de l'évènement Workbook_Open du module ThisWorkbook :

Private Sub Workbook_Open()
If Range("OuvertureLe1") <> Month(Date) Then Range("OuvertureLe1") =
Month(Date): MaMAcro
End Sub

Sub MaMAcro()
BlaBla
End Sub

J'espère que cela correpond à ton attente.
Bien entendu il serait souhaitable que la cellule nommée "OuvertureLe1"
soit dans un onglet caché pour qu'il ne soit pas modifiable par tout un
chacun

A+
Jc