Selectionner une feuille en fonction de la valeur de la cellule par une macro VBA.

fwegfewfwe

XLDnaute Nouveau
Bonjour,

J`ai plusieurs feuilles representant les mois de l`annee, nommees selon leurs 3 premiers caracteres (JAN, FEB, MAR, ...). Je cherche a selectionner la feuille du mois en cours selon la valeur d`une cellule (C4) sur une autre feuille (XXX), valeur qui est le nom de ce meme mois, au meme format. Cette selection doit se faire au moyen d`une macro.
Cette cellule a une valeur qui est emmenee a varier au cours de l`annee, au fur et a mesure aue les mois passent et la suite de la macro doit s`executer seulement sur la feuille du mois en cours.

Auriez-vous une idee? Je suis a court des miennes, sans resultat depuis une bonne vingtaine d`essais.

PS: Excusez-moi pour les accents manquants, j`utilise un clavier tcheque.

EDIT: Fichier ajoute.
 

Pièces jointes

  • Selection onglet annee.xlsx
    10.1 KB · Affichages: 373
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonjour Fwegfewfwe (p... ! c'est aussi chiant à lire qu'à écrire !) et bienvenu, bonjour le forum,

Pas sûr d'avoir tout compris. Tu devrais lire la
Lien supprimé qui explique comment obtenir des réponses rapidement en respectant certaines règles. Ce qui manque dans ton cas c'est un petit fichier exemple...
Mais si la cellule active porte le nom de l'onglet normalement le code ci-dessous devrait fonctionner :
Code:
Sheets(ActiveCell.value).Activate

 

Staple1600

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonjour à tous


Il y a pas longtemps c'était de la semaine en cours qu'il s'agissait
https://www.excel-downloads.com/threads/ouvrir-une-feuille-excel-en-fonction-dune-cellule.189485/

Voir si cela peut t'inspirer quelque idée pour ta problématique ;)

Sinon même conseil que Robert (que je salue au passage ;) )

EDITION: Comme tout le monde n'est pas là, et que l'apéro n'est pas encore servi, j'avais un peu de temps pour m'inspirer moi-même. ;)
Code:
Function MOISENCOURS() As String
MOISENCOURS = Format(Date, "mmmm yyyy")
End Function
Code:
Sub test()
Application.Goto Sheets(MOISENCOURS).[A1]
End Sub

Test OK ici si le nom de ton onglet est : août 2012
 
Dernière édition:

fwegfewfwe

XLDnaute Nouveau
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Merci beaucoup de vos reponses!

Cependant, je ne suis pas arrive a applique vos solutions. J`ai ajouter un fichier d`exemple dans le premier message.

@Robert: La cellule a la valeur du nom de l`onglet que je veux selectionner mais elle contient une formule.

@Staple1600: Il est possible que ce fichier soit utilise pour le mois precedent (correction d`erreur eventuelle). Donc je prefere ne pas faire appel a Date ou autre chose que des valeurs contenues dans les fichiers importes dans ce fichier.
 

Staple1600

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonjour à tous

EDITION: OU essayes cette macro (test OK sur ton fichier exemple)
Code:
Sub Go2CurrentMonth()
Dim CurMth$
CurMth = UCase(Left(Sheets("XXX").[C4].Text, 3))
Application.Goto Sheets(CurMth).[A1]
End Sub

Essaye avec cette modification
Code:
Function MOISENCOURS() As String
MOISENCOURS = UCase(Format(Date, "mmm"))
End Function
 
Dernière édition:

fwegfewfwe

XLDnaute Nouveau
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Si je veux mettre ton premier code dans ma macro (au moment ou je veux selectionner la feuille pour poursuivre les actions), je dois enlever Sub Go2CurrentMonth() et End Sub? Parce que ca creer une nouvelle macro chez moi et ca ne marche pas.

Pour ton deuxieme code, je ne sais pas ou est-ce aue je dois apporter cette modification. :confused:

Desole pour mes questions betes mais je debute avec excel.
 

Staple1600

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

RE

Cela marche sur ton fichier exemple (J'ai fait le test)
Code:
Sub Go2CurrentMonth()
Dim CurMth$
CurMth = UCase(Left(Sheets("XXX").[C4].Text, 3))
Application.Goto Sheets(CurMth).[A1]
End Sub
Si tu testes sur un autre fichier, il suffit d'adapter en conséquence.

Donc il suffit d’exécuter cette macro et seulement celle-ci
(d’où mon EDITION dans le message précédent)

L'autre code c'était la modif si tu utilisais mon premier code.
 
Dernière édition:

Kaerbran

XLDnaute Nouveau
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonjour,

Je sais ne sais pas si quelqu'un va jeter un coup d'œil a mon post au regard de l'ancienneté de celui-ci... En trouvant ce post je m'étais dit: chouette exactement mon problème... Mais hélas je n'ai pas réussie a mettre en œuvre les idées exposées... Déplus, j'avais noté à quel point Staple1600 était patient et clément a l'égard des novices. J'ai donc prit mon courage a deux mains et j'ai entrepris d'écrire :)

Je vais exposer brièvement mon problème.

Je souhaiterais que en fonction du mois actuel une case prenne la valeur 1 pour janvier, 2 pour février et ainsi de suite...

En parallèle, je voulais également selectionner un onglet année en fonction de l'année ou nous nous trouvons. Les onglets année sont sous la forme "2015" et "2016". Je pensais m'aider de la fonction "maintenant()"... Mais ce n'étais pas un franc succès...

Actuellement je suis en stage et je vous écris depuis mon portable, mais ce soir je peux vous mettre à disposition mon excel pour que vous puissiez voir les horreurs que j'ai écris...

Dans l'attentes de vos réponses,

Cordialement,

Un internaute dans le besoin.
 

Modeste

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonjour Kaerbran et bienvenue,

j'avais noté à quel point Staple1600 était patient et clément a l'égard des novices
Mon pauvre ami ... c'était il y a presque trois ans! Depuis, les choses ont bien changé: quand Staple1600 hante les couloirs, tout le monde se met à l'abri aujourd'hui ;) Prie pour qu'il ne voie pas ton message! :( (Hé, je plaisante, hein! Ne va pas nous faire des cauchemars pour ton premier jour parmi nous :))

À propos d'aujourd'hui ... voilà qui pourrait répondre à ta première question ... dans une cellule au choix, écris:
Code:
=MOIS(AUJOURDHUI())

Pour le reste, il faudrait soit une copie allégée et anonymisée de ton fichier, soit des explications claires sur comment les onglets sont nommés. Et puis, la sélection d'un onglet se ferait à quel moment? À l'ouverture du fichier? Ça, par formule, ce ne sera pas possible: il faudra passer par une macro, sans doute!?
 

Si...

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

salut

... Ça, par formule, ce ne sera pas possible: il faudra passer par une macro, sans doute!?

voir ici

Ci-joint autres solutions (VBA) pour sélectionner un des onglets.
 

Pièces jointes

  • Aller en An 2.xlsm
    22.8 KB · Affichages: 197
  • Aller en An 1.xlsm
    31.6 KB · Affichages: 168
  • Aller en An 0.xlsm
    28.4 KB · Affichages: 134

Staple1600

XLDnaute Barbatruc
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonsoir à tous, Modeste, Si...

Kaerbran [Bienvenue sur le forum]
Les us et coutumes du forum sont de créer sa propre discussion pour poser sa question
plutôt que de poser sa question dans l=une discussion initiée par un autre membre.
Ce n'est ni une question de clémence, ni une question de patience ;) pour le coup.
C'est juste que cela évite de se mélanger les pinceaux.

Qu'en penses l'amateur de bretelles (AKA Si...) et Modeste le bien nommé ? ;)
 

Kaerbran

XLDnaute Nouveau
Re : Selectionner une feuille en fonction de la valeur de la cellule par une macro VB

Bonsoir,

Merci encore a tous pour votre aide. J'ai donc réussi grâce à vous d'avoir l'année et le mois sous forme de chiffres pures et non plus de d'une date!!! je sens le progrès venir :)

Bref bref bref... j'ai donc crée une nouvelle discussion comme demandé par Staple 1600. Voici le lien vers cette nouvelle discussion: https://www.excel-downloads.com/threads/xl-2010-vba-ouvrir-une-feuille-en-fonction-dune-case.231179/


Merci encore pour tout,

Cordialement,

Un internaute dans le besoin
 

Discussions similaires

Réponses
7
Affichages
311

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 688
dernier inscrit
Biquet78