Enregistrement à date fixe
Résolu
refcemad
Messages postés
43
Statut
Membre
-
refcemad Messages postés 43 Statut Membre -
refcemad Messages postés 43 Statut Membre -
Bonjour à tous,
Je suis toute nouvelle sur ce forum que je consulte souvent, d'où ma décision de venir vous poser mes questions.
Alors voilà : j'ai un fichier excel pour lequel je voudrais qu'à chaque début de mois, certaines variables puissent être enregistrées pour pouvoir y revenir.
Ce que je voudrais, c'est une boîte de dialogue qui s'affiche à la première ouverture en début de mois pour m'inciter, voire m'obliger, à effectuer la manip' d'enregistrement (au travers d'un bouton par exemple). (La manip', je pense pouvoir m'en tirer avec l'enregistreur de macro). J'ai donc "simplement" besoin de cette boîte de dialogue. Sachant, pour corser le tout, que ce fichier n'est pas ouvert tous les jours, et qu'il est possible que je ne l'ouvre que le 2 ou le 3 du mois. Mais j'ai impérativement besoin d'enregistrer avant de de continuer sur le nouveau mois.
Suis-je claire, et pensez-vous que ce soit possible ?
Merci de votre aide !
Cordialement
Je suis toute nouvelle sur ce forum que je consulte souvent, d'où ma décision de venir vous poser mes questions.
Alors voilà : j'ai un fichier excel pour lequel je voudrais qu'à chaque début de mois, certaines variables puissent être enregistrées pour pouvoir y revenir.
Ce que je voudrais, c'est une boîte de dialogue qui s'affiche à la première ouverture en début de mois pour m'inciter, voire m'obliger, à effectuer la manip' d'enregistrement (au travers d'un bouton par exemple). (La manip', je pense pouvoir m'en tirer avec l'enregistreur de macro). J'ai donc "simplement" besoin de cette boîte de dialogue. Sachant, pour corser le tout, que ce fichier n'est pas ouvert tous les jours, et qu'il est possible que je ne l'ouvre que le 2 ou le 3 du mois. Mais j'ai impérativement besoin d'enregistrer avant de de continuer sur le nouveau mois.
Suis-je claire, et pensez-vous que ce soit possible ?
Merci de votre aide !
Cordialement
A voir également:
- Enregistrement à date fixe
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Whatsapp date incorrecte ✓ - Forum Mobile
- Enregistrement - Guide
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Comment connecter un ordinateur fixe en wifi sans fil - Guide
3 réponses
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 -
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
Je continue de travailler à mon projet et je reviendrai vers le forum si je bloque encore ailleurs.
Merci et cordialement