Enregistrement à date fixe
Résolu/Fermé
refcemad
Messages postés
39
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
10 mai 2018
-
12 janv. 2011 à 03:37
refcemad Messages postés 39 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 10 mai 2018 - 13 janv. 2011 à 03:37
refcemad Messages postés 39 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 10 mai 2018 - 13 janv. 2011 à 03:37
A voir également:
- Enregistrement à date fixe
- Enregistrement vidéo écran - Guide
- Publipostage date en anglais ✓ - Forum Excel
- Publipostage date inversée ✓ - Forum Word
- Youtube enregistrement vidéo - Guide
- Passé cette date - Forum Logiciels
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 12/01/2011 à 08:37
Modifié par pijaku le 12/01/2011 à 08:37
Bonjour,
Le plus simple pour moi est de procéder comme ceci :
- En Feuil3 Cellule G25 (ou n'importe ou ailleurs dans votre classeur, j'ai pris cet exemple pour que vous puissiez l'adapter facilement) saisir le numéro du mois en cours (exemple puisque nous sommes en janvier saisir : 1)
- lancer une procédure de test à chaque ouverture du classeur :
Si Feuil3!G25 = Numéro_du_mois_en_cours Alors
Envoyer message à l'utilisateur
Feuil3!G25 = Feuil3!G25 + 1
Fin du test
(le fait d'ajouter 1 à Feuil3!G25 permet de ne lancer le test que le mois suivant)
Pour mettre en place ce code :
- ouvrir le classeur concerné,
- taper ALT+F11
- Dans la petite denêtre située à gauche de l'écran, intitulée Projet - vba project, double cliquer sur "This workbook
- dans le haut de la fenêtre centrale, menu déroulant "général", sélectionner : workbook, par défaut il vous indique l'évènement open (sinon menu déroulant "déclarations", sélectionner "open")
Vous obtenez donc ceci :
A remplacer par :
On peux même supposer que ce fichier sera utilisé plusieurs années et donc il nous faudrait un deuxième test un peu comme ceci :
N'hésitez pas à poser vos questions... si vous en avez.
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
Le plus simple pour moi est de procéder comme ceci :
- En Feuil3 Cellule G25 (ou n'importe ou ailleurs dans votre classeur, j'ai pris cet exemple pour que vous puissiez l'adapter facilement) saisir le numéro du mois en cours (exemple puisque nous sommes en janvier saisir : 1)
- lancer une procédure de test à chaque ouverture du classeur :
Si Feuil3!G25 = Numéro_du_mois_en_cours Alors
Envoyer message à l'utilisateur
Feuil3!G25 = Feuil3!G25 + 1
Fin du test
(le fait d'ajouter 1 à Feuil3!G25 permet de ne lancer le test que le mois suivant)
Pour mettre en place ce code :
- ouvrir le classeur concerné,
- taper ALT+F11
- Dans la petite denêtre située à gauche de l'écran, intitulée Projet - vba project, double cliquer sur "This workbook
- dans le haut de la fenêtre centrale, menu déroulant "général", sélectionner : workbook, par défaut il vous indique l'évènement open (sinon menu déroulant "déclarations", sélectionner "open")
Vous obtenez donc ceci :
Private Sub Workbook_Open() End Sub
A remplacer par :
Private Sub Workbook_Open() If Sheets("Feuil3").Range("G25").Value = Month(Date) Then MsgBox "Veuillez lancer la procédure d'enregistrement" Sheets("Feuil3").Range("G25").Value = Sheets("Feuil3").Range("G25").Value + 1 End If End Sub
On peux même supposer que ce fichier sera utilisé plusieurs années et donc il nous faudrait un deuxième test un peu comme ceci :
Private Sub Workbook_Open() If Month(Date) = 1 And Sheets("Feuil3").Range("G25").Value > 2 Then MsgBox "Veuillez lancer la procédure d'enregistrement" Sheets("Feuil3").Range("G25").Value = 2 Exit Sub End If If Sheets("Feuil3").Range("G25").Value = Month(Date) Then MsgBox "Veuillez lancer la procédure d'enregistrement" Sheets("Feuil3").Range("G25").Value = Sheets("Feuil3").Range("G25").Value + 1 End If End Sub
N'hésitez pas à poser vos questions... si vous en avez.
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
cousinhub29
Messages postés
881
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 avril 2024
333
Modifié par cousinhub29 le 12/01/2011 à 08:57
Modifié par cousinhub29 le 12/01/2011 à 08:57
Bonjour,
Personnellement, à la place d'utiliser une cellule d'un quelconque onglet (risque de perte de l'information), j'utiliserai un "nom"....
Par ce code, on peut insérer un nom :
ce nom est donc égal à "201101", soit l'année et le mois....
En ouvrant le fichier, on peut venir contrôler si le nom est toujours égal au mois et à l'année en cours, et le cas échéant, provoquer la macro, tout en mettant à jour le nom....
Comme ceci :
Nota, la boucle du début sert à vérifier l'existence du nom défini (utile pour l'initialisation)
bonne journée
Personnellement, à la place d'utiliser une cellule d'un quelconque onglet (risque de perte de l'information), j'utiliserai un "nom"....
Par ce code, on peut insérer un nom :
Sub Macro1() ActiveWorkbook.Names.Add Name:="action", RefersToR1C1:=Year(Date) & Format(Month(Date), "00") End Sub
ce nom est donc égal à "201101", soit l'année et le mois....
En ouvrant le fichier, on peut venir contrôler si le nom est toujours égal au mois et à l'année en cours, et le cas échéant, provoquer la macro, tout en mettant à jour le nom....
Comme ceci :
Sub Maj_Mensuel() Dim Flag As Boolean Dim Nms As Name For Each Nms In Names If Nms.Name = "action" Then Flag = True: Exit For Next Nms If Not Flag Then _ ActiveWorkbook.Names.Add Name:="action", RefersToR1C1:=Year(Date) & Format(Month(Date), "00") 'le code If [action] <> Val(Year(Date) & Format(Month(Date), "00")) Then _ ActiveWorkbook.Names.Add Name:="action", RefersToR1C1:=Year(Date) & Format(Month(Date), "00") 'le code End Sub
Nota, la boucle du début sert à vérifier l'existence du nom défini (utile pour l'initialisation)
bonne journée
refcemad
Messages postés
39
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
10 mai 2018
1
12 janv. 2011 à 10:37
12 janv. 2011 à 10:37
Merci bien
Malheureusement, c'est bientôt l'heure de la débauche, donc je n'essaierai chacune de vos solutions que demain. Celle de Pijaku m'a l'air pas mal du tout (l'autre va être un peu compliquée pour moi).
A plus tard
Malheureusement, c'est bientôt l'heure de la débauche, donc je n'essaierai chacune de vos solutions que demain. Celle de Pijaku m'a l'air pas mal du tout (l'autre va être un peu compliquée pour moi).
A plus tard
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
12 janv. 2011 à 10:42
12 janv. 2011 à 10:42
L'une comme l'autre sont très valables... et aussi simples d'utilisation.
13 janv. 2011 à 03:37
Je continue de travailler à mon projet et je reviendrai vers le forum si je bloque encore ailleurs.
Merci et cordialement