Selection d'un onglet en fonction de la date
Résolu
a51432
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
mamyvtte44420 -
mamyvtte44420 -
A voir également:
- Selection d'un onglet en fonction de la date
- Fonction si et - Guide
- Rouvrir un onglet fermé - Guide
- Comment ouvrir un fichier dat - Guide
- Airpods 3 date de sortie - Guide
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
3 réponses
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
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!
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
Voilà
Ou encore plus court, sur ton exemple...
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 !