Incrémenter avec la date ou une série de nombres les onglets d’un classeur


#1

Bonjour

Je souhaite incrementer avec la date ou une serie de nombres les onglets d’un classeur

Pour ne pas avoir à renommer chaque onglet (l’occurrence de 1 à 90 ou 90 jours avec le 21 01 2018 comme premier jour)

Avez-vous une solution ?

Merci pour votre aide


#2

#3

Bonjour,
Un classeur test
Jean Pierre RAPP.xlsm (25,0 Ko)


#4

Bonjour Jean-Pierre,
Pour bien comprendre ta demande et en ayant regardé le classeur Excel, tu désires renommer les feuilles de ton classeur. Est-ce bien 90 feuilles maximum ? Et les feuilles doivent être renommées en utilisant une date de départ?
Si la première feuille est renommée en 2018-01-21, les suvantes doivent devenir 2018-01-22, 2018-01-23, etc… Est-ce bien cela?


#5

Autre question, est-ce qu’au départ, ton classeur contiendra les 90 feuilles ?


#6

Bonjour

Merci pour votre retour

Le problème est bien posé dans le 1er message

Au départ j’ai une feuille mais je peux si nécessaire insérer les 90


#7

Bonjour

Merci pour la réponse.

Est il possible d’incrémenter la date ?

(dans le tableau la date reste la même mais les n° s’incrémentent bien=


#8

Re
A tester

Jean Pierre RAPP.xlsm (24,8 Ko)


#9

Bonjour Jean-Pierre,

Je me permets de t’envoyer ton fichier avec 2 macros
la première crée les 90 feuilles
la deuxième renomme ces 90 feuilles

Bien à toi

Jean Pierre RAPP.xlsm (17,2 Ko)


#10

Re,

En effet, j’ai été trop vite en lecture
Jean Pierre RAPP (1).xlsm (25,7 Ko)


#11

Bonjour

Avec un peu de retard un grand merci : cela correspond a ce que je voulais faire

Est il possible de savoir comment on fait ? ou m’indiquer ou trouver ce type d’information ?

Bonne fin de journée


#12

Bonjour
Voici la procèdure à mettre dans un module par ALT F11 pour le Développeur

Option Explicit

Sub NommeOnglet()
'Déclarations des variables
Dim i%, j%
Dim Dte As Date
'Initialisation des variables
Dte = InputBox("Quelle est la date à indiquer ?", "Date à afficher", "00/00/0000")
j = 0 'Compteur pour incrémenter les jours
'boucle sur les onglets de 2 à nb onglet comptés
For i = 2 To Sheets.Count
    Sheets(i).Select 'sélection du premier onglet
    If Sheets(i).Name <> "Menu" Then 'si l'onglet ne se nomme pas "Menu" alors
      If j > 90 Then MsgBox " 90 feuilles renseignées": Exit Sub 'si le compteur est plus grand que 90 (j), quitte la procèdure
       Sheets(i).Name = Format(Dte + j, "dd-mm-yyyy") 'renomme l'onglet avec la date du premier onglet + 1 jour au format jj-mm-aaa (en anglais)
       j = j + 1 'incrémente le compteur de 1
    End If
Next i
Sheets("Menu").Activate 'Retourne sur l'onglet MENU
End Sub

#13

Merci

Il me reste du pain sur la planche pour maitriser….je vais essayer de reproduire ou faire une nouvelle macro


#14

Bonjour

Je me permets de vous solliciter une nouvelle fois pour obtenir de l’aide et des eclaircissements.

Voilà

Je dois reproduire le tableau ci joint mais en modifiant des éléments: nombre d’équipes, année 18 & 19, modifier les couleurs sur le tableau recap

Apres réenregistement pour pouvoir modifier le tableau (enlever la protection je ne peux le faire)

Donc il y a des formules cachées :

comment faire pour les voir? les modifier?

Comment debloquer les cellules (en fait je ne voit pas où cela est caché)

Comment reproduire ce calendrier qui est tres bien puisqu’il reprend les jours fériés et chomés

Et ce pour les 2 années a venir? En respectant les separations des semaines comme dans le tableau joint?

Comment a été réalisée la colonne des semaines ? (si je rejoute des lignes en fin cela ne reproduit pas le format qui precede

Comment enlever/modifier les parties coloriées dans les plages horaires des équipes (bleu foncé)?

Y a t il un moyen de lier les pages pour qu’une modification sur la page recap se répercute automatiquement sur les pages équipes?

Merci d’avance pour votre aide et vos éclaircissements afin que je puisse maitriser tout cela

Bien cordialement et bonne fin de journée

Planning FO Annuel 2018 v1.xlsx (499 KB)


#15

Bonjour,
Tu n’as aucune formule dans ton classeur, ni aucune MFC
N’aurais tu pas fait une copie de ton classeur et/ou enregistré celui en xlsx alors qu’il contenait des macros
Sinon, je ne vois pas


#16

Bonjour

C’est l’original tel qu’on me l’a donné : je vois bien qu’il y a des blocages mais je ne les trouve pas

Y a-t-il un moyen de reproduire le calendrier avec jours chômés et fériés ? et avec l’espacement des semaines ?

Une possibilité de lier les pages ?

Merci d’avance


#17

Re,

Avec EXCEL, il y a toujours moyen
Mais encore faut-il savoir exactement ce que l’on veut en finalité ,
Si c’est un simple calendrier avec les SAM et DIM et Jours fériés non affichés, c’est assez facile
Après, s’il faut jouer avec des plages de travail par rapport à des personnes ou équipe, c’est plus la même et sans explications détaillées :face_with_raised_eyebrow:


#18

C’est juste un planning pour afficher les heures des permanences d’équipes téléphoniques

Donc le calendrier par semaine avec les jours de travail effectif suffit , il faut juste espacer les semaines comme sur le tableau qui était joint

Apres les plages horaires sont déterminées par la hiérarchie pour chaque équipe . dans mon cas 3 équipes => en 3 semaines toutes les équipes ont fait les 3 plages

La vue globale est sur une page de récap et pour commodité chaque équipe à une page propre qui ne reprend que ses créneaux à partir de la récap

Il faut pouvoir faire des modifications de plage horaire sur la page récap

Voilà pas trop compliqué

Mais cela le calendrier espacé qui me pose surtout problème


#19

Re,
3 Equipes, trois fois la même date sur RECAP ?
les Jours de travail, du Lundi au Vendredi sans les Jours fériés (Français) ?
3 Equipes (plage de travail sur Equipe) style A-Midi - MATIN - Nuit ou autres ?
Bref, faut développer


#20

Re,

Pas de réponse aux question, donc voilà une esquisse

MACRO:

Sub ListeJOuvresFeries()
Dim Ecart%, NbJour%, i%, Dl%  'Déclaration des variables

Dl = Range("H" & Rows.Count).End(xlUp).Row + 1 'n° de la dernière ligne non vide de la colonne H
Range("C3:C" & Dl).ClearContents 'Efface les dates
Ecart = 3 'Espacement pour incrémenter les dates
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("C4").Select
ActiveCell.FormulaR1C1 = "=WORKDAY(DATE(R1C1,1,0),1,Ferie)" 'Calcul 1er jour année ouvré et non férié
ActiveCell.Copy

  For i = 3 To 369 'boucle sur 369 ligne
    Selection.Copy 'copy la formule
    Selection.Offset(Ecart, 0).Select 'sélectionne la cellule decaler de 3
    ActiveCell.FormulaR1C1 = "=WORKDAY(R[-3]C,1,Ferie)" 'applique la formule et la colle
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    ActiveCell.FormulaR1C1 = "=WORKDAY(R[-3]C,1,Ferie)" 'réapplique la formule pour la copier et la réappliquer 3 cellule + bas etc...
      If Year(ActiveCell) > Range("A1") Then 'stoppe la recopie
        Application.Calculation = xlCalculationAutomatic
        Exit Sub
      End If
  Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Sheets("Paramètres").Select
Sheets("RECAP").Select
End Sub

Planning.xlsm (210,3 Ko)