Problème quand nom onglet numérique

  • Initiateur de la discussion Initiateur de la discussion apnart
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

apnart

XLDnaute Occasionnel
Bonjour,

J'au un soucis "bête" 😡

J'ai un planning avec 1 onglet par année, qui s'appelle 2013 ou 2014 par exemple.

En VBA je veux faire du code qui va chercher des infos dans ces onglets en fonction d'une cellule dans laquelle je mets l'année à aller chercher, et ça ne fonctionne pas 😡

Par contre, si je nomme l'onglet avec une lettre en plus (par exemple P2013), et que je mets P2013 dans ma cellule de recherche, là, ça fonctionne 😱

Mon excel est un peu "gros" pour le mettre ici... mais voici la ligne qui pose problème :
Code:
LecturePlanning = Sheets(AnnéePlanning).Cells(X, PosWeekCol).Value

Si à la place de "AnnéePlanning" je mets à la main "2013" (avec les guillemets) et que l'onglet est 2013, ça fonctionne.

Si je défini la valeur par le code suivant en mettant uniquement 2013 en A1, ça ne fonctionne pas
Code:
AnnéePlanning = Sheets("Formulaire").Range("A1").Value

Si je nomme l'onglet P2013 et que je mets P2013 en A1, le 1er code fonctionne très bien.

J'sais pas si je suis bien clair... pour récapituler, si mon onglet est uniquement numérique, la macro plante, sinon elle fonctionne.

Il y a une façon particulière de déclarer un onglet numérique ?

Des idées ?
 
Re : Problème quand nom onglet numérique

Bonsoir Apnart le forum
si ta valeur est "2003" c'est que ta cellule est au format standard, tu dois avoir une petite coche verte en haut à gauche tu écris comme ci dessous et ce sera bon
a+
Papou😱

Code:
LecturePlanning = cdbl(Sheets(AnnéePlanning).Cells(X, PosWeekCol))
 
Re : Problème quand nom onglet numérique

Bonjour,

Si tu n'as pas déclaré ta variable 'AnnéePlanning' en type String il faut une conversion explicite.

LecturePlanning = Sheets(Cstr(AnnéePlanning)).Cells(X, PosWeekCol).Value

A+

[edit] visiblement j'ai pas compris la même chose que mes petits camarades. Il me semblait que c'était le nom de la feuille contenu dans la variable AnnéePlanning qui posait problème.

Bref je suis toujours un fervent adepte du Option Explicit.
 
Dernière modification par un modérateur:
Re : Problème quand nom onglet numérique

La réponse d'Hasco fonctionne impec, merci beaucoup

J'avais pourtant déclaré comme suit :
Code:
Dim AnnéePlanning, WeekPlanning, LectureGroupe, LectureWeek, LecturePlanning As String

Pour paritec, ça n'a pas marché 🙁


Je vais creuser le "CSTR" pour comprendre comment ça marche.

Merci encore
 
Dernière édition:
Re : Problème quand nom onglet numérique

Bonjour.
grave erreur alors ?
Oui. Mais très courante. Les gens essayent et voient que ça n'entraine ni erreur de syntaxe ni différence évidente à l'exécution, et en déduisent que c'est tout naturellement interprété exactement tel qu'ils l'auraient très très très vivement souhaité.
En fait on peut reprocher aux concepteur du langage de n'avoir pas prévu un moyen d'attribuer les mêmes caractéristiques à plusieurs variables, au moins en les spécifiant entre parenthèses séparés par des virgules. Il y a bien le suffixe de type à mettre derrière le nom qui permet quand même des déclarations plus courtes, mais malheureusement l'éditeur ne permet pas de les afficher dans une couleur différente qui leur serait spécifique, de sorte qu'ils gênent trop à mon gout leur repérage parmi les déclarations.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
72
Didierpasdoué
D
Réponses
2
Affichages
596
Réponses
5
Affichages
703
Réponses
40
Affichages
2 K
Réponses
11
Affichages
810
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
903
Retour