Semainier avec mise à jour progressive

Bonjour à tous ,

J'aurais besoin de votre aide concernant un semainier. Je souhaite faire démarrer automatiquement ma macro à chaque changement de date. Actuellement ma macro se lance dès que je touche à ma formule en B1 (feuille 1) mais au changement de date elle ne s'active pas alors que je souhaite une automatisation. Je suis débutant en VBA.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$1" Then

Call autoday

End If

End Sub

Pouvez-vous m'aider?

D'avance merci et bonne journée.

23semainier-6.xlsm (150.34 Ko)

Bonjour,

Tu seras connecté à ton fichier lors d'un changement de date? tu ne dors pas ?

Je te propose ceci :

Quand tu ouvre ton fichier tu inscrit la date du jour dans ta cellule maitresse (sans formule, date brute)

A chaque ouverture de fichier si NOW (aujourd'hui si tu préfères) est égal à la date inscrite (le jour n'aura donc pas changé) alors tu ne fais rien, sinon tu call ton autoday

Private Sub Worksheet_Activate()
    If Not Cells(1, 2) = Now Then
             Range(Cells(4, 3), Cells(29, 3)).Delete Shift:=xlToLeft
            Range(Cells(4, 7), Cells(29, 7)).Borders.LineStyle = 1
            Cells(1, 2).Value = Date
        Else: Exit Sub
    End If
End Sub

Bonjour Micka, et Bonjour Atro

J'imagine que dans B1 tu as indiqués =aujourdhui()

Excel ne détecte donc pas un changement dans l'évènement "Worksheet_Change"

Autre possibilité : tu lances ta macro à partir de l'évènement workbook open

Seul souci c'est que la macro sera lancée à après chaque ouverture du fichier changement de date ou non

Bonjour Micka, et Bonjour Atro

J'imagine que dans B1 tu as indiqués =aujourdhui()

Excel ne détecte donc pas un changement dans l'évènement "Worksheet_Change"

Autre possibilité : tu lances ta macro à partir de l'évènement workbook open

Seul souci c'est que la macro sera lancée à après chaque ouverture du fichier changement de date ou non

Le Workbook Open est en effet une bonne solution mais vu qu'il semble travailler autour de minuit j'ai mis à Activate de sa feuille

Merci pour vos conseils. J'ai modifié mon vba après les conseils Atro. C'est bien plus allégé dans le code à présent. Par contre, je n'ai pas réussi à l'automatiser. J'avais effectivement essayé à l'ouverture mais le fichier peut être ouvert plusieurs fois par jour. Autrement, je peux lancer avec le bouton ma macro comme j'avais fait mais il faudrait surtout pas qu'elle s'exécute lorsque c'est la date du jour afin d'éviter les erreurs du suppression de colonne.

Je vais y avoir des noms de professeurs absent et s'il me decale ma journée je vais avoir 1800 lycée qui vont en profiter 😁.

En tout encore merci

Re sur l'idée de Atro

Dans le workbook open on lance la macro test date :

on test une première fois si Date cellule B1 = Date Windows aujourdhui.

Si oui on sort

Si non on actualise la date en B1 et on lance ta macro.

Ta macro ne sera donc lancée qu'une seule fois par jour à l'ouverture ; car ensuite b1=date du jour

Merci pour ce retour Xmenpl.

Par contre j'ai utililé le fichier que tu m'a retourné. Au démarrage d'excel d'après la commande il devrait écrire la date du jour vu que j'ai indiqué une date différente et lancer la macro autoday mais rien ne se passe. Je suis sur la version 2019. Je sais pas si ça change quelque chose.

En tout cas si ça fonctionne ça correspond tout à fait à mes attentes.

Bonne soirée.

Bonsoir,

Voici le fichier à jour en suivant vos conseils. Par contre il ne s'actualise pas au démarrage malgré la présence de la macro testdat au démarrage. Je ne comprend pas ce qu'il manque.

Vous avez certainement raison je travail plus souvent autour de minuit .

Bonne soirée à vous.

D'avance merci.

4semainier-9.xlsm (154.25 Ko)

Salut Micka,

Salut Atro, Xmenpl,

Petites précisions, stp :

- j'imagine que c'est ta feuille 'ABS PROF' qui doit afficher une semaine de planning d'avance or la formule en [C4]

='base de donnée'!E4

donnera systématiquement le 3 septembre! Quelque chose m'échappe!

Je suppose que tu veux un glissement depuis la date du jour ?!

- les formules dans les colonnes renvoient les mêmes noms qu'en feuille 'Base de données' : tu as donc 2 fois la même chose ?

Votre système risque bien de ne pas donner les résultats voulus car, quand je lis...

If ladate = DatePC Then

... cela veut dire que, si, un jour, tu termines ton boulot avant minuit mais, que pris d'un doute, tu rallumes ton PC après minuit, sauf erreur, ton travail disparaîtra!

Il faut donc travailler également avec l'heure d'ouverture du fichier et déterminer une heure de la journée après laquelle on peut raisonnablement estimer que la MÁJ peut se produire même si on retravaille le fichier après minuit.

A te lire..

A+

Bonjour curulis57 ,

Merci te joindre au problème. La feuille "abs prof" reprend en fait la feuille "base de donnée" du jour en cours et les 4 jours suivants ouvrables. L'idée et que chaque jour la première colonne des dates soit supprimées grace à la macro "autoday" pour afficher ensuite les jours suivants ouvrables. Cette page sera en lien avec un powerpoint pour un affichage sur TV. Toutes les absences seront saisies dans la page base de données qui elle reste figé sur l'année en cours à partir du 1er septembre et servira de sauvegarde.

Au départ j'avais fait comme tu as dis en actualisant automatiquement les jours ouvrables à partir de la formule aujourd'hui pour les entêtes des colonnes mais du coup je ne pouvais voir rapidement si les données des colonnes "abs prof" correspondait au bon jour" lorsque ma macro autoday supprime les colonnes.

Actuellement, le problème c'est j'arrive a executer ma macro qu'a partir du bouton de déclenclement. J'aimerai que tout soit automatique pour qu'a l'ouverture, si la date du jour n'est pas celle de la dernière ouverture alors ma macro (autoday) de suppression de colonne s'execute. Les conseils Xmenpl et Atro vont en ce sens mais pourtant rien ne s'execute au démarrage.

Merci et bonne journée.

6semainier-9.xlsm (154.29 Ko)

Bonjour,

Voilà corrigé normalement cela devrait fonctionner.

Si tu changes la date en B1 des (ABS PROF) tu enregistres ferme et réouvre la date sera actualisée et la macro

lancée à l'ouverture si date différente de aujourd'hui.

Merci Xmenpl.

Tout fonctionne parfaitement !

et également merci aux autres contibuteurs.

Me reste à réussir à mettre en place ma boucle. En tout cas vous allez faire de nombreux heureux

Bonne soirée

Rechercher des sujets similaires à "semainier mise jour progressive"