Enregistrement à date fixe
Résolu
refcemad
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
refcemad Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
refcemad Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
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
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Comment connecter un ordinateur fixe en wifi sans fil - Guide
- Enregistrement - Guide
- Comment couper un enregistrement audio - 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