Au sujet des CodeName

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 !

Patmos

XLDnaute Nouveau
Bonjour à tous,

Le sujet des CodeName des feuilles à déjà été abordé, mais je me retrouve bien embêté avec un comportement bizarre de mon excel.

Mon objectif :
Faire une importation mensuelle d'un fichier texte dans une feuille excel.
Chaque importation dois se retrouver dans une feuille différente.
Il avoir un fichier glissant sur 12 mois, cad la 13ème importation viens écraser la 1ère (après une sauvegarde dans un autre fichier, mais c'est une autre histoire)

Pour gérer le système glissant sur 12 mois, il me semblait pas mal d'utiliser les codename.

Le format du fichier : KPI mm-aa.txt

Je fais l'import comme je le veut, je change le nom de la feuille de destination comme je le veux, puis en codename je mets ce que je veux, uniquement si j'ai le fenêtre VBE d'ouverte, ce qui n'est pas bon vu qu'au final les utilisateur du fichier ne l'auront pas d'ouverte.

Lorsque je ferme la fenêtre et que j'exécute la macro, j'ai cette erreur au moment de changer le codename :
Erreur d'exécution '9' :
L'indice n'appartient pas à la sélection

Si je vais en débug et que je poursuit l'exécution, tout se termine comme il faut (feuille créer, import fait, codename changé)
Si je place un on error resume next juste avant, je n'ai plus le message d'erreur, mais le codename n'est pas changé.


J'utilise ce code là pour modifier le codename

Code:
With ThisWorkbook
.VBProject.VBComponents(.Worksheets(Nom_Feuille).CodeName).Name = "Feuil" & NbrFeuille
End With

Nom_Feuille et NbrFeuille sont générés avant.
La sécurité des macro est à faible
J'ai coché de faire confiance à tous les modèles et compléments installés et au projet VB
Et je suis sur excel 2003


En pièce jointe le fichier excel et un fichier txt pour jouer avec.


Merci de vos suggestions et excellente journée à tous.
 

Pièces jointes

Re : Au sujet des CodeName

En fait le nom de chaque onglet sera :
Jan, Fev, Mars, Avr, Mai, Juin, Juil, Aout, Sept, Oct, Nov et Dec plus à chaque fois l'année (cad Jan10 etc...)

Le tout restant sur 12 mois (donc quand on a fait Dec10, on retourne après sur Jan11, et Jan10 devra être copié dans un autre classeur pour sauvegarde.)


L'idée des codename est que :
Je fait l'import dans une feuille et je lui donne le codename feuil et le nombre de mois traité (feuil1 jusqu'à 12). Ca me paraissiat plus simple après pour gérer le 13ème import.

C'est plus clair ?
Tu veux que je t'envoie les fichiers ailleurs ?
 
Re : Au sujet des CodeName

Bonjour,

Pas sûr d'avoir compris mais ... peut-être ... (issu de l'aide VBA):

CodeName, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie le nom de code de l'objet. Type de données String en lecture seule.

Remarque La valeur qui apparaît dans la cellule affichée à droite de (Nom) dans la fenêtre Propriétés correspond au nom de code de l'objet sélectionné. Au moment de la création, vous pouvez changer le nom de code d'un objet en modifiant cette valeur. Il est toutefois impossible de modifier cette propriété par programmation au moment de l'exécution.

Cordialement
 
Re : Au sujet des CodeName

Merci pour la réponse, je trouve ça un peu étrange quand même :

Avec VBE ouvert, j'arrive à le modifier avec ce code ci :

Code:
' Renomme la feuille en Feuil + le nombre de mois importé
' /!\ ne fonctionne qu'avec VBE ouvert /!\
'With ThisWorkbook
'.VBProject.VBComponents(.Worksheets(Nom_Feuille).CodeName).Name = "Feuil" & NbrFeuille
'End With

Avec VBE fermé non, c'est pour ça que je trouve étrange le comportement d'excel (le 2003)
 
- 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

Réponses
6
Affichages
516
Réponses
3
Affichages
300
Retour