Selection d'un onglet en fonction de la date
Résolu/Fermé
a51432
Messages postés
37
Date d'inscription
lundi 13 juillet 2015
Statut
Membre
Dernière intervention
20 octobre 2015
-
22 juil. 2015 à 11:26
mamyvtte44420 - 11 sept. 2015 à 08:35
mamyvtte44420 - 11 sept. 2015 à 08:35
A voir également:
- Selection d'un onglet en fonction de la date
- Fonction si et - Guide
- Rouvrir un onglet fermé - Guide
- Onglet privé - Guide
- Fonction si avec date ✓ - Forum Excel
- Ouvrir un fichier .dat - Guide
3 réponses
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
22 juil. 2015 à 18:51
22 juil. 2015 à 18:51
Bonjour,
A mettre dans le classeur des mois dans ThisWorkBook:
A mettre dans le classeur des mois dans ThisWorkBook:
Option Explicit Dim chaine As String Dim monmois As String Private Sub Workbook_Open() [A1] = Now [A1].Value = Format([A1].Value, "dd mmmm yyyy") chaine = [A1].Value extractionMots End Sub 'Extraire les données séparées par un espace dans une chaine de caractères Sub extractionMots() Dim Tableau() As String Dim i As Integer 'découpe la chaine en fonction des espaces " " 'le résultat de la fonction Split est stocké dans un tableau Tableau = Split(chaine, " ") 'boucle sur le tableau pour visualiser le résultat For i = 0 To UBound(Tableau) 'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros Debug.Print Tableau(i) Next i monmois = Tableau(1) Sheets(monmois).Select End Sub
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
23 juil. 2015 à 11:57
23 juil. 2015 à 11:57
Salut pijaku,
On voit le pro!
Bonne journée
On voit le pro!
Bonne journée
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
23 juil. 2015 à 14:42
23 juil. 2015 à 14:42
Si tu ne veux pas renommer tes onglets, je ne vois qu'une solution:
je te laisse faire le reste
A moins que pijaku est la solution miracle!
Option Explicit Dim monmois As String Private Sub Workbook_Open() monmois = Now monmois = Format(monmois, "mmmm") If monmois = "juillet" Then monmois = "juil" End If Sheets(monmois).Select End Sub
je te laisse faire le reste
A moins que pijaku est la solution miracle!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
Modifié par pijaku le 23/07/2015 à 16:39
Modifié par pijaku le 23/07/2015 à 16:39
A moins que pijaku est la solution miracle!
Hé hé!
La voici :
Ou, encore mieux, en déclarant MesMois en Constante :
Ce qui, après raccourci, s'écrit en une seule ligne de code (si on excepte la constante) :
EDIT : Attention!!! J'm'ai gouré!!
Ma date système est déréglée... Chez moi on est déjà le 15/08... Donc utilisez ceci :
Il me semblait bien que le -2 n'était pas normal..... Pfff!
Bonne fin de journée
Hé hé!
La voici :
Dim MesMois As String, Feuille As String, MoisEnCours As Integer MesMois = "janv;fev;mars;avril;mai;juin;juil;août;sept;oct;nov;dec" MoisEnCours = Month(Date) Feuille = Split(MesMois, ";")(MoisEnCours - 2) Sheets(Feuille).Select
Ou, encore mieux, en déclarant MesMois en Constante :
Option Explicit Const MesMois As String = "janv;fev;mars;avril;mai;juin;juil;août;sept;oct;nov;dec" Private Sub Workbook_Open() Dim Feuille As String, MoisEnCours As Integer MoisEnCours = Month(Date) Feuille = Split(MesMois, ";")(MoisEnCours - 2) Sheets(Feuille).Select End Sub
Ce qui, après raccourci, s'écrit en une seule ligne de code (si on excepte la constante) :
Option Explicit Const MesMois As String = "janv;fev;mars;avril;mai;juin;juil;août;sept;oct;nov;dec" Private Sub Workbook_Open() Sheets(CStr(Split(MesMois, ";")(Month(Date) - 2))).Select End Sub
EDIT : Attention!!! J'm'ai gouré!!
Ma date système est déréglée... Chez moi on est déjà le 15/08... Donc utilisez ceci :
Option Explicit Const MesMois As String = "janv;fev;mars;avril;mai;juin;juil;août;sept;oct;nov;dec" Private Sub Workbook_Open() Sheets(CStr(Split(MesMois, ";")(Month(Date) - 1))).Select End Sub
Il me semblait bien que le -2 n'était pas normal..... Pfff!
Bonne fin de journée
a51432
Messages postés
37
Date d'inscription
lundi 13 juillet 2015
Statut
Membre
Dernière intervention
20 octobre 2015
1
23 juil. 2015 à 16:26
23 juil. 2015 à 16:26
Ca devrait résoudre mon problème, je met le post en résoulu après vérification.
Merci beaucoup !
Merci beaucoup !
22 juil. 2015 à 21:30
23 juil. 2015 à 11:32
Voilà
23 juil. 2015 à 11:42
Ou encore plus court, sur ton exemple...
23 juil. 2015 à 14:17
Le code fonctionne parfaitement ! Malheuresement je n'ai pas été précis dans ma description et m'en excuse...
Les noms des onglets ne sont pas le mois complet mais une série de 3, 4 ou 5 lettres comme suit : janv, fev, mars, avril, mai, juin, juil, août, sept, oct, nov, dec.
Je ne vois pas comment adapter le code et je ne peux pas renommer les onglets (ce qui serait sûrement plus simple). Si vous avez une solution... Merci d'avance !
11 sept. 2015 à 08:35