Traitement fichiers dans un dossier
Bonjour à toutes et tous...
SVP je cherche à établir une macro qui me permettrait de récupérer une seule colonne (253 champs à la suite dans la colonne) dans tous les fichiers d'un même répertoire à la racine de la partition "C" nommé : "Fichier" et recopier toutes les colonnes dans une même page excel (nouveau fichier) une colonne à la suite ou à côté de l'autre...
j'ai regardé de nombreuses macros, mais aucune n'est adaptée (les colonnes s'affichent une sous l'autre ou une sur l'autre...
je vous remercie de tout coeur par avance de l'entraide apportée sur cet espace...
bien à vous,
Pascal
Salut,
Ta question n'est pas des plus claires, mais j'ai tenté une solution.
Si tu places les 3 fichiers ci-joints - et uniquement ceux-ci - dans un dossier, que tu ouvres le fichier Essai 02.10 et que tu lances la macros qui y est placée, tu as le report des données des deux autres fichiers, les unes à côté des autres.
S'il faut adapter ce code, tes fichiers réels sont nécessaires.
Cordialement.
tout d'abord un grand merci pour cette macro !
oui je crois que ma sollicitation n'était pas suffisamment claire...
en fait, voici quelques précisions...
initialement j'avais réalisé un programme de Numérologie sous GFA Basic (ce n'est pas hier...) qui me sauvegarde chaque fiche, le nom du fichier est le nom de la personne et l'extension les 3 lettres du prénom... et cela dans un dossier dénommé "Fichier"... situé à la racine de "C:"
j'ai trouvé une macro excel qui me permet de charger automatiquement tous les fichiers de ce dossier et me les sauvegarde dans le même répertoire individuellement en reprenant le nom initial du fichier en ajoutant l'extension excel (ex : martin.pie devient martin.pie.xls ou bocuse_.pau devient bocuse_.pau.xls )... donc convertis en données excel...
mes données dans ces fichiers excel sont enregistrés sur une seule colonne (de A1 à A251) sachant que A1 est vide) et ce dans chaque fiche... le nombre des champs de ces fichiers est identique (sur une seule colonne "A"), bien les sûr les valeurs sont propres à chaque fichiers avec certains champs vides...
je souhaiterai pouvoir afficher chaque colonne (A) de chaque fichier (en conservant les champs vide de chaque fiche) dans une seule page d'un nouveau classeur excel afin de pouvoir ensuite comparer et extraire certain champs des nombreuses colonnes par la suite...
voilà j'espère être un peu plus clair ?
en tout cas merci de tout coeur de ton assistance cela fait quelques jours que je galère...
bien à toi
Salut,
Je pense que mon travail correspond exactement à ce que tu souhaites.
T'es-tu seulement donné la peine de teste ma macro ? Si oui, en quoi diffère-t-elle de ce que tu souhaites ?
Je t'avais demandé de fournir tes fichiers ou du moins un fichier modèle.
Cordialement.
salut,
merci, oui bien sûr ta macro m'a réellement aidé, je l'ai adapté et mon problème est résolu.
je vais maintenant m'attaché à réaliser une macro pour comparer les données de cette nouvelle feuille excel et les ressortir sur une autre feuille...
encore MERCI,
bien à toi
cordialement
rebonjour,
j'aurais encore besoin d'aide...
je souhaiterai afficher toutes les 15 colonnes le contenu de la colonne 1 (les paramètres des données récupérées), en fait l'affichage de la macro avant la boucle qui me permet de lire et récupérer les données de l'ensemble des fichiers de mon répertoire...
j'ai essayé sans succès...
peux-tu STP m'aider ?
et aussi, lorsque mon répertoire aura de nouveau fichier est-il possible (sans trop galérer...) seulement d'ajouter les nouveaux fichiers dans cette page créée par cette macro ou devrais-je relancer cette macro ?
merci par avance,
bien à toi
voilà la macro :
Sub recup()
Range("A1").Select 'sélectionner la cellule de début
Chemin = "c:\FICHIERS PARAMETRES NB\" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(Chemin & "PARAMETRES NB.xlsx") ' Premier fichier
Workbooks.Open Filename:=Chemin & Fichier
Range(("A2,A3,A4,A5,A6,A13:A30,A51:A59,A123,A125,A132,A133")).Copy
ThisWorkbook.Activate
ActiveSheet.Paste
Windows(Fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
k = 1
Range("A1").End(xlUp).Offset(0, k).Select
Range("B1").Select 'sélectionner la cellule de début
Chemin = "c:\FICHIERS\" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(Chemin & "*.xls") ' Premier fichier
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Range(("A2,A3,A4,A5,A6,A13:A30,A51:A59,A123,A125,A132,A133")).Copy
ThisWorkbook.Activate
ActiveSheet.Paste
Windows(Fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("B1").End(xlUp).Offset(0, k).Select
k = k + 1
'If k = 15 Then
'Range("A:A").Copy Range("G:G")
'k = k + 1
'End If
Fichier = Dir ' Fichier suivant
Loop
End Sub
Salut,
Je ne peux pas te garantir que je puisse t'aider et peut-être pas avant lundi ou mardi prochain, mais dans tous les cas, je m'en sors mieux si j'ai tes fichiers à disposition. Peux-tu alors me fournir le fichier de base dans lequel tu as la macro et un modèle de fichier dans lequel tu vas chercher les données ?
Tu peux créer des fichiers modèles sur la base de tes fichiers réels dans lesquels tu remplaces simplement les données confidentielles par des données anonymes, mais représentatives.
Chaleureusement.
Bonjour Yvouille,
je te joins les fichiers,
la condition if then endif que j'ai essayé me stoppe la boucle...
le langage vba me parait plus ardu que le gfa basic que je maitrisais pas trop mal...
encore merci,
belle journée, beau week-end
Salut,
Ton fichier PARAMETRES NB.xlsx est un fichier sans macro. Dois-je comprendre que tu as tes macros dans un autre fichier encore ?
Si oui, peux-tu me le fournir et m'expliquer comment sont placés ces 4 fichiers dans ton arborescences ? Tous au même endroit ? Sinon avec quelle échelonnement ?
A te relire.
salut,
voilà mon fichier avec la macro...
mes fichiers xls à traiter sont à la racine de C: dans un répertoire nommé : FICHIERS
je t'ai envoyé 4 fichiers mais bien entendu le nombre réel est plus important et j'en ajouterai régulièrement...
le fichier paramètres est à la racine de C: dans un répertoire nommé : FICHIERS PARAMETRES NB
merci encore et beau dimanche
Bonjour à tous
Tu postes des xls, format périmé depuis 12 ans et un xlsx
Peux-tu préciser ta version ?
A partir de 2010 on peut se passer de VBA pour juxtaposer les colonnes issues de tous les classeurs d'un dossier.
Par ailleurs réintercaler Paramètres toutes les 15 colonnes laisse penser à une comparaison plus on moins manuelle.
Il est possible de faire un tableau de choix pour choisir parmi les noms (donc colonnes)via une liste déroulante, ceux à juxtaposer afin de ne visualiser que ces colonnes.
Tout cela sans une ligne de code VBA...
Salut Chris,
Je pensais m'en sortir, mais si tu veux reprendre ce fil - plutôt que de prendre en charge un fil sans réponse - je te laisse la main.
Cordialement.
bonsoir,
en effet j'utilise excel 2007...
la macro que j'ai jointe à Yvouille fonctionne plutôt bien, malgré l'antériorité de ma version excel
je souhaite ensuite pouvoir exploiter, comparer certaines valeurs des colonnes en rapport avec les autres afin de faire automatiquement des rapprochement de colonnes (profils)...
merci de votre sollicitude
Bonsoir Yvouille
Cela fait longtemps qu'on se croise ci et ailleurs.
Je pensais m'en sortir, mais si tu veux reprendre ce fil - plutôt que de prendre en charge un fil sans réponse - je te laisse la main.
Non, simplement ces formats différents de classeurs et cette histoire de répétition de colonne toutes les 15 colonnes m'ayant paru bizarre, d'autant qu'en figeant les volets on doit avoir le même effet, j'ai regardé ce qu'on pourrait faire avec PowerQuery.
(Je creuse ce filon sur nombre de fils pour améliorer ma maîtrise de cet outil)
Mais 2007...
Bonne soirée à toi.