J’ai un fichier Excel avec des onglets, autant que de jours dans le mois, sauf les dimanches, plus un dernier onglet qui lui est caché à l'ouverture d'Excel (Il se trouve à la fin de tous les onglets)
Chaque onglet est identifié par une date.
La date est actuellement sous la forme jour-date-moi , avec des – entre chaque information (ex : ven.-1-oct) Il est peut être possible de faire plus simple ?
voici le code que je voulais mettre en place pour créer la date et donc nommer l'onglet,
VB:
date_demander = InputBox("Entrer la date de début de création des onglets :")
jour = Day(date_demander)
date = CDate(date_demander)
mois = CDate(date_demander)
nom_N_onglet = Format(date_test, "ddd") & "-" & jour & "-" & Format(mois_test, "mmm")
Nom_onglet_actif = ActiveSheet.Name
Sheets(Nom_onglet_actif).Name = nom_N_onglet
Après, il faut que j'arrive à créer automatiquement tous les autres onglets du mois, sauf les dimanches, mais ça je cherche. Actuellement je pratique 1 par 1 manuellement.
Ce que j’aimerai faire, à l’ouverture du doc Excel :
1- Que l’onglet correspondant à la date du jour soit ouvert
2- Que l’onglet correspondant à la date du jour soit colorisé en bleu par exemple, mais peut-être une autre couleur, à voir la possibilité de changer dans le code cela
2- A la fermeture du doc que l’onglet colorisé repasse à sa couleur initiale
re jeanmi bonsoir chti160
chti160 a raison, deux fois n, ridicule
pour répondre au fil 24 sur la base du classeur que j'ai proposé
pour cacher les feuilles
Code:
Sub creer_feuilles()
Sheets("Base").Visible = True
Sheets("C_postal").Visible = True
On Error Resume Next
Application.ScreenUpdating = False ' desactive le rafraichissement écran
d = Range("a1")
n = Range("b1")
deb = CDate(d)
ori = CDate(d)
Sheets("Modele").Copy After:=Sheets(Sheets.Count)
Sheets(4).Name = "01"
For x = 2 To n
deb = deb + 1 ' incrmente la date de début d'un jour
Sheets("01").Select 'selectionne feuille 01
Sheets("01").Copy After:=Sheets(Sheets.Count) ' la copie en dernier
Sheets("01 (2)").Select ' la selectionne
' la ligne suivante colorie l'onglet en...
a) Ok pour le 3 à passer en 4 ou pas si je supprime la feuille base, si j'ai bien compris.
b) Ok pour le test à ajouter, il faut que je le place en début de la macro creer_feuille, je suppose.
c) j'ai ajouter un inputbox pour entrer la date de début de création :
VB:
def_date_debut = InputBox("Entrer la date de début du premier onglet à créer ? ")
MyDate = def_date_debut 'Remplacer par Variable Date
def_nb_jour_mois = Day(DateSerial(Year(def_date_debut), Month(def_date_debut) + 1, 0)) 'definition nombre de jours dans le mois
d) Dans le code, ci-dessous, je n'arrive pas à comprendre où est défini le a de la boucle , quelle valeur, pourquoi ?
Code:
For n = 2 To n - a
e) Je souhaiterais calculer, par rapport à la date entrée dans inputBox et le nombre de jour du mois, combien d'onglets il y a, à créer. Je n'ai pas trouvé comment faire ?
f) j'ai voulu, cacher les onglets non utiliser, donc base et C_postal, et là ce ne semble pas fonctionner ? es possible ou pas d'avoir les feuille de base et C_POSTAL non visible et de pouvoir fonctionner la procédure ?
g) Pour les liaisons ce n'est pas normale, si vous avez une orientation à me donner pour rechercher pourquoi, et comment supprimer cela. j'ai l'impression que c'est apparu lorsque j'ai changé de nom mon fichier !
Bonjour jeanmi
Bonjour le Fil ,le Forum
peut être avec ceci
VB:
'Donne le dernier jour du mois
NB_JOURS = Day(DateSerial(Year(Date_Select), Month(Date_Select) + 1, 0))
'ou le Nombre de jours
NB_JOURS = Day(DateSerial(Year(Date_Select), Month(Date_Select) + 1, 1) - 1)
Bonjour jeanmi
Bonjour le Fil ,le Forum
peut être avec ceci
VB:
'Donne le dernier jour du mois
NB_JOURS = Day(DateSerial(Year(Date_Select), Month(Date_Select) + 1, 0))
'ou le Nombre de jours
NB_JOURS = Day(DateSerial(Year(Date_Select), Month(Date_Select) + 1, 1) - 1)
Merci pour cette réponse, mais j'ai déjà le nombre de jour du mois dans une variable (def_nb_jour_mois) et la date dans une autre (def_date_debut) récupérée par inputbox.
Ce que je cherche à faire, c'est Nb_onglets = def_nb_jour_mois - ( formule pour extraire le jour de la date entrée dans la variable def_date_debut , pour avoir un onglet par date à partir de la date demandée.
Re excuse pas compris
Il faut faire une vérification lors de la création des feuilles si la page existe déjà !
Ca pourra ainsi éviter de créer x fois les feuilles dans le classeur.
a voir
pas trop le temps lol
Jean marie
Re excuse pas compris
Il faut faire une vérification lors de la création des feuilles si la page existe déjà !
Ca pourra ainsi éviter de créer x fois les feuilles dans le classeur.
a voir
pas trop le temps lol
Jean marie
OK j'ai compris, effectivement c'est ce que tu avant donné comme solution #17, mais je n'avais pas compris.
Toutes mes excuses, il fallait tous simplement que je remplace par mes variables. mois j'ai testé tous simplement le code du #17 et ça ne marché pas évidement.
Re
donc tu ne crées pas toutes les dates du mois 1 au 31 (exemple) ?
mais les dates a partir d'une Dates qui sera la première !
Bonne journée
jean marie
a) Dans le code, ci-dessous, je n'arrive pas à comprendre où est défini le a de la boucle , quelle valeur, pourquoi ? merci pour l'explication
VB:
For n = 2 To n - a
b) j'ai voulu, cacher les onglets non utiliser, donc modèle et C_postal, et là ça ne semble pas fonctionner ?
Es possible ou pas d'avoir les feuilles de modèle et C_Postal non visible et de pouvoir faire fonctionner la procédure ?
c) j’ai mis en place ma feuille modèle pour faire des essais et j’ai un message que je ne comprends pas ?
re jeanmi re chti 160
et bien je ne sais pas expliquer la raison du "a", car ce code je l'avais trouvé et adapté. j'ai essayé en enlevant le "a" et la création des onglets n'est pas correcte.
je suis toujours aujourd'hui à la recherche d'une explication ! Toutes les informations sont les bienvenues !!
cdt
galougalou