Au sujet des CodeName

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

  • KPI.zip
    18.9 KB · Affichages: 34
  • KPI.zip
    18.9 KB · Affichages: 33
  • KPI.zip
    18.9 KB · Affichages: 32

Patmos

XLDnaute Nouveau
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 ?
 

mécano41

XLDnaute Accro
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
 

Patmos

XLDnaute Nouveau
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)
 

mécano41

XLDnaute Accro
Re : Au sujet des CodeName

Bonjour,

Je ne peux pas te dire car chez moi, après avoir défini et donné des valeurs aux variables Nom_Feuille et NbrFeuille, ton code ne fonctionne pas (en le lançant par F5, dans le VBE)

Désolé! ...

Cordialement
 

Discussions similaires

Réponses
2
Affichages
372

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal