Affiche date automatiquement sur 52 Semaines

Bonjour à tous,

J'ai un tableau reproduit sur 52 onglets pour 52 semaines, et chaque semaines je tape la date pour chaque jours manuellement.

Y'a t-il une fonction qui puisse faire cette manip automatiquement ?

D'avance je vous remercie.

Cdlt Alex

https://docs.google.com/spreadsheets/d/1Hw_QKGk8ax4MPX6hQF3EfEYtT7ZDRKlafiDvoOrZy4s/edit?usp=sharing

Bonjour Alex,

Il y a plus simple : une seul onglet pour toutes les semaines et ensuite tu filtres ou tu te déplaces automatiquement à la date voulue.

Mais si tu veux rester sur ce que tu souhaites, quel est le paramètre de base ? le nom de la feuille ?

Attention, tu peux très bien commencer un lundi 4 janvier et donc omettre le vendredi 1er janvier de ton appli (bon, habituellement il n'est pas travaillé, quoique cela dépend des métiers).

Bonjour Mike, Merci pour ta réponse.

Mais si tu veux rester sur ce que tu souhaites, quel est le paramètre de base ? le nom de la feuille ?

En effet je vais devoir rester avec cette option, que veux tu dire par "quel est le paramètre de base" ?

Pour le nom de la feuille : "Feuille hebdo 2021-2022"

L'exercice est du 1er Septembre au 31 août.

J'ai ajouté le nombre d'onglet pour l'année et avec le script de @Gilbert tout renommé automatiquement (Merci Gilbert)

J'ai ajouté la fonction =sheetname() en (A9:B9) avec un petit script, cette fonction est bien utile.

Attention, tu peux très bien commencer un lundi 4 janvier et donc omettre le vendredi 1er janvier de ton appli (bon, habituellement il n'est pas travaillé, quoique cela dépend des métiers).

En effet on peut travailler les week-ends et jour fériés.

Voici un nouveau lien ou je t'ai ajouté.

https://docs.google.com/spreadsheets/d/1iIGg8LQOeCZfrFUorFo2_6HpVVjTkJOCtNykQsRd5tU/edit?usp=sharing

Je suis dessus mais j'ai dû suspendre ... au passage, tu peux avoir parfois une semaine 53 !

Il eut été plus facile de mettre une date et de là déterminer les semaines. Mais bon, c'est l'occasion de faire une fonction pour retrouver le lundi d'une semaine donnée. Je suis parfois adepte du NIH (Not Invented Here) mais je n'ai rien trouvé !!

Je galère de mon côté, j'ai trouvé avec des formules mais ça me renvoi à faire une par une, après je me dis qu'une fois fait j'aurais juste à copier la feuille est changer quelques truc par-ci par-là.

Semaine 35

Par exemple ceci en A5

=DATE(ANNEE(AUJOURDHUI());9;1)

Puis la 1ère cellule

=SI(OU($A$5="";FIN.MOIS($A$5;0)=$A$5);"";$A$5-2)

2ème

=SI(OU($A$5="";FIN.MOIS($A$5;0)=$A$5);"";$A$5-1)

3ème

=MIN($A$5)

4ème

=SI(OU($A$5="";FIN.MOIS($A$5;0)=$A$5);"";$A$5+1)

Et ainsi de suite

Pffffff

Tu peux mettre

debutPeriode()

sur le premier lundi de la semaine, ensuite faire un +1 pour le mardi etc. (voir semaine 37)

Attention, ta feuille doit être en GMT+1, il y a encore un schmilblick pas résolu sinon

function debutPeriode() {
  var nomClasseur = SpreadsheetApp.getActiveSpreadsheet().getName()
  var annees = nomClasseur.split(" ")[2].split("-")
  var nomFeuille = sheetName()
  var semaine = (nomFeuille.split(" ")[1].split("/")[0])
  var annee = (nomFeuille.split(" ")[1].split("/")[1])
  if (annee==null){
    annee = semaine > 35 ? annees[0]:annees[1]
  }
  else{
    annee = '20'+annee
  }
  return debutSemaine(annee,semaine)
}
function debutSemaine(an,sem){
  d = new Date(an,0,sem*7)
  d.setDate (d.getDate() - (d.getDay() - 1) - (d.getDay() < 4 ? 7 : 0) );
  return d
}

Bonjour Mike,

c'est génial, j'ai copier la colonne (A8:A21) de la semaine 37 et fais un coller sur toutes les autres et en moins de 5 minutes c'était terminé.

J'ai ajouté une semaine 53 qui sera masquée et affichée au moment voulu.

Attention, ta feuille doit être en GMT+1, il y a encore un schmilblick pas résolu sinon

La feuille était en GMT+1

Je ne me suis aperçu du schmilblick, pour moi ça fonctionne.

solde le topic

je vais approfondir cette question de dateUTC en utilisant aussi .getTimezoneOffset()*60*1000

Bonjour @Mike,

Est-ce que tu as pu résoudre le...

il y a encore un schmilblick pas résolu sinon

Merci pour ta réponse.

Pas de schmilblick, je commence à appréhender les dates locales et UTC. Comme nous sommes proches du méridien de Greenwich, cela ne nous pose pas trop de soucis. Sinon, voici quelques fonctions

new Date(Date.UTC(year, month, day, hour, minute, second))

et

d.setTime( d.getTime() + d.getTimezoneOffset()*60*1000 );

à utiliser le cas échéant ... quand cela se présentera.

Super, merci beaucoup pour ta précieuse aide.

Bonjour Mike,

J'ai créé une copie afin de l'utiliser pour le travail et j'ai un message d'erreur concernant les dates.

Serait-il possible de ton coté et en faisant simplement une copie si tu as le même résultat ?

D'avance je te remercie.

Cdt

erreur1

Bon finalement ce n'est pas la copie mais le fichier d'origine,

Je ne comprends pas car tout fonctionné correctement, j'ai eu quelques mises à jour Windows, y'a t-il un lien ?

En quelques minutes me voici avec un autre message d'erreur qui concerne "SheetName", je vais devenir chèvre !

Peut on y remédier ?

D'avance je te remercie pour ta réponse.

Cdt

sans titre

ok, mais une copie de quoi ?

peut-être une ambiguïté sur les noms de variables,

remplace SheetName() par mySheetName() dans code.gs et Renomme cellule/onglet.gs

Super !!!

un grand merci les affaires reprennent !

Désolé, à chaque copie ça me refait la même chose.

Est-ce que la cellule ou il y a "MySheetName()" ne doit pas afficher le nom de l'onglet avant que ton script s'est mis en place ?

Car dans la cellule MySheetName() il y a Loading qui dur un certain temps, alors que ton script cherche une donnée (Semaine 36) qu'il ne trouve pas.

Il n'y a que la Semaine 35/21 qui est bonne, peut être parce que c'est la première ?

sans titre

Il vaut mieux sans doute trouver une formule pour A9 ! ou bien mettre le nom de la feuille en fonction de A7 plutôt !! je vais réfléchir ...

De toute façon, trop de scripts n'est jamais bon surtout quand on a des fonctions qui s'appellent. C'est sans doute lié à la manière dont google effectue les opérations, on le voit quand on lance ... les dates sont déjà présentes alors que la semaine issue du nom de la feuille vient plus tard !

Cela dit, ce n'est pas logique en effet !! mais je crois qu'il faut penser différemment !

je me disais qu'une fois le fichier terminer "Figer les dates" https://forum.excel-pratique.com/sheets/figer-une-date-dans-google-sheet-163157#p1009912

Rechercher des sujets similaires à "affiche date automatiquement semaines"