Excel:inscrire dans en-tête nom du classeur

Popione -  
 Ivanhoe -
Bonjour,

J'exporte régulièrement sous excel depuis une base de donnée des informations sur divers pays et sur des combinaisons de pays.
L'exportation donne le nom des pays ou combinaisons de pays aux fichiers xls ainsi créés, mais c'est la seule chose qui me permette de les différencier.
Si je les imprimais tous par exemple, je n'aurais plus moyen de voir à quel pays j'ai à faire.

J'aurais donc besoin de pouvoir - dans l'en-tête de préférence - afficher le nom du fichier.
Et j'aurais besoin de le faire d'un coup pour tous les fichiers présents dans le dossier - il y en a une centaine et j'aimerais éviter avoir à renouveller la même opération 100 fois à chaque fois que je procède à mon exportation.

Y a-t-il un moyen d'automatiser cette tâche ? A l'aide d'une macro par exemple ?

Je vous remercie pour votre aide !

Popione
A voir également:

5 réponses

Le Pingou Messages postés 12350 Date d'inscription   Statut Contributeur Dernière intervention   1 470
 
Bonsoir,
Si vous exportez, alors se sont vos correspondants qui doivent se préocuper des titres...
Dans le cas d'une importation il est très simple d'introduire un titre pour la plage des données concernées et de même pour chaque classeur si nécessaire.
Comment voulez-vous qu'une macro fabrique un titre sans savoir ou le trouver.
0
Ivanhoe
 
Bonsoir Popione,
avec une macro, il est possible d'aller chercher un par un tous les fichiers d'un dossier et de les modifier.
voici en gros la marche à suivre, j'espère que ça répondra à ta question
(nb : la procédure ci-dessous n'applique un en-tete qu'à la première feuille de chaque classeur. Tes classeurs exportés comportent-ils plusieurs feuilles ? )
(nb : la procédure ci-dessous traite tous les fichiers du dossier concerné. Ce dossier contient-il aussi des fichiers à ne pas traiter ? auquel cas il faudra cibler un peu mieux)

Allez, à +

Sub Allermodifiertouslesentetes()

Dim NOMFICHIER as string 'variable qui va prendre le nom de chaque fichier à traiter un par un
Dim CHEMINDACCES as string
CHEMINDACCES = "D:\etc\NomduDossier\" 'chemin d'accès du dossier où sont rangés tous les fichiers à traiter

NOMFICHIER = DIR(CHEMINDACCES) 'aller chercher le premier fichier
Do While NOMFICHIER <> empty 'début de la boucle

workbooks.open CHEMINDACCES & NOMFICHIER 'ouvrir le fichier

'apporter les modifications aux entetes
with workbooks (NOMFICHIER)
.with sheets(1).pagesetup
.leftheader = "&Z&F"
.centerheader = "mettre ce que tu veux dans l'en tete"
end with
.close True 'fermer le fichier en enregistrant les modifications (True)
end with

NOMFICHIER = DIR() 'aller chercher le fichier suivant

Loop 'fin de la boucle

End Sub
0
Popione
 
Bonjour,

Merci à vous deux pour vos réponses.
Pingou
"Si vous exportez, alors se sont vos correspondants qui doivent se préocuper des titres... "
Pas forcément, j'exporte pour plusieurs raisons, une partie desquelles demandent que ce soit moi qui fasse l'effort de base et pas mes interlocuteurs finaux (tout en laissant à chacun tout loisir de modifications supplémentaires, d'où l'intérêt d'excel).
"Comment voulez-vous qu'une macro fabrique un titre sans savoir ou le trouver."
le titre est le nom du fichier, comme je l'ai expliqué. Si vous avez à partir de ces commentaires des éléments de réponses supplémentaires, je vous en serais très reconnaissant.

Ivanohe, merci beaucoup de la précision de ta réponse. Je n'ai pour le moment pas le loisir de tester ta macro, n'étant pas sur le bon ordinateur, j'espère avoir l'occasion de faire tout cela demain, je te tiendrai au courant.
Quant à tes questions: mes classeurs n'ont en effet qu'une seule feuille, donc pas de problème de ce côté là.
En revanche, j'ai bien un fichier dans le dossier à ne pas traiter, c'est le fichier texte qui donne à la base la liste des territoires à exporter. je dois pouvoir contourner ce problème en procédant en deux fois (exportation puis déplacement du fichier txt puis application de la maccro) donc je ne suis pas absolument inquiet non plus de ce côté.

Encore merci,
A bientôt,
Popione
0
Le Pingou Messages postés 12350 Date d'inscription   Statut Contributeur Dernière intervention   1 470
 
Bonjour Popione,
Merci pour l'information. Maintenant tout est clair pour moi.
Je souscris aux réponses d' Ivanohe.
Bon dimanche.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ivanhoe
 
Bonjour Popione,

pour le coup du fichier texte à exclure de la procédure, il suffirait de modifier comme suit :
NOMFICHIER = DIR(CHEMINDACCES & "*.xls")
Ainsi, la fonction DIR ne va chercher que les fichier .xls

Pour tester la macro, évidemment, tu le feras sur un dossier test ne contenant que quelques fichiers test, n'est ce pas ? (et non pas directement sur tes cent fichiers originaux...)

A suivre !
0