Importer des données CSV vers plusieurs fichiers Excel

Bonjour à tous,

Je sollicite votre aide car j'aurais besoin d'une petite macro pour importer des données d'un fichiers csv extrait quotidiennement, vers plusieurs fichiers excel

L'idée est toute simple mais la mise en oeuvre par macro me parait trop complexe pour moi.

Dans la macro, je sais aller chercher le dossier CSV avec "GetOpenFile".

Dim wbMyWb As Workbook

Dim wbsource As Workbook

Dim Nom_Fichier As Variant

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Set wbsource = ThisWorkbook '.Worksheets("Feuil2")

Nom_Fichier = Application.GetOpenFilename("Fichiers excel (*.csv), *.xlsx")

If Nom_Fichier <> False Then

Set wbMyWb = Workbooks.Open(Nom_Fichier)

wbMyWb.Activate

...

Je souhaiterais que la macro ouvre les fichiers excel (les noms de fichier sont fixe) qui se trouvent dasn le dossier "effectifs et bon commande", importer les données du CSV (dont le nom est variable) dans les bons fichiers excel, le bon onglet et dans la bonne cellule.

Je vous joins les fichiers ci dessous:

Merci beaucoup pour votre aide.

En fait je pense qu'il me faudrait une boucle pour importer dans les fichiers excel.

Est il possible d'importer des données sans ouvrir les fichiers excel?

Bonjour Jyconnaisrien

le tableau recensé, à compléter si présence de points d'interrogation

"Etablissement dans CSV","fichier","Feuille"
"SAJ Aline Gaudet", "Saj.xls", "SAJ", _
"ESAT Les Ecluses", "Ecluses.xls", "Ecluses", _
"ESAT Rive Gauche", "Rive Gauche.xls", "Rive Gauche", _
"IME Le Rocher Fleuri", "IME.xls", "IME Midi", _
"IME A - Jonquille", "IME.xls", "IME A Jonquille", _
"IME B - Anis", "IME.xls", "IME B Anis", _
"IME C - Clémentine", "IME.xls", "IME C Clémentine", _
"APM Entreprise Adaptée", "APM???.xls", "???", _
"Foyer Occupationnel L'Etoile B", "Etoile.xls", "Etoile B", _
"Foyer Occupationnel L'Etoile C", "Etoile.xls", "Etoile C", _
"Foyer Occupationnel L'Etoile D", "Etoile.xls", "????????", _
"Siège social", "Siege????.xls", "????", _
"Foyer Hébergement Les caravelles 1 - Vert", "Caravelle.xls", "CAR1", _
"Foyer Hébergement Les caravelles 2 - Blanc", "Caravelle.xls", "CAR2", _
"Foyer Hébergement Les caravelles 3 - Vert", "Caravelle.xls", "CAR3", _
"FAM Eglantine 1 - Jaune", "FAM.xls", "Eglantine Jaune", _
"FAM Eglantine 2 - Vert", "FAM.xls", "Eglantine Vert", _
"FAM Eglantine 3 - Rose", "FAM.xls", "Eglantine Rose", _
"FAM Eglantine 4 - Blanc", "FAM.xls", "Eglantine Blanc", _
"????", "Grillons.xls","Grillons D1", _
"????","Grillons.xls","Grillons D2"

Bonjour Scraper et merci pour ton aide.

Ce projet est en cours de construction. Pour le moment, certains établissements apparaissent dans le fichier CSV mais ne sont pas tenu en compte pour les fichiers excel. J'en ai pas besoin dans le projet.

Voici les établissement recensés

"SAJ Aline Gaudet", "Saj.xls", "SAJ", _
"ESAT Les Ecluses", "Ecluses.xls", "Ecluses", _
"ESAT Rive Gauche", "Rive Gauche.xls", "Rive Gauche", _
"IME Le Rocher Fleuri", "IME.xls", "IME Midi", _
"IME A - Jonquille", "IME.xls", "IME A Jonquille", _
"IME B - Anis", "IME.xls", "IME B Anis", _
"IME C - Clémentine", "IME.xls", "IME C Clémentine", _

"Foyer Occupationnel L'Etoile B", "Etoile.xls", "Etoile B", _
"Foyer Occupationnel L'Etoile C", "Etoile.xls", "Etoile C", _
"Foyer Occupationnel L'Etoile D", "Etoile.xls", "Grillons", _

"Foyer Hébergement Les caravelles 1 - Vert", "Caravelle.xls", "CAR1", _
"Foyer Hébergement Les caravelles 2 - Blanc", "Caravelle.xls", "CAR2", _
"Foyer Hébergement Les caravelles 3 - Vert", "Caravelle.xls", "CAR3", _
"FAM Eglantine 1 - Jaune", "FAM.xls", "Eglantine Jaune", _
"FAM Eglantine 2 - Vert", "FAM.xls", "Eglantine Vert", _
"FAM Eglantine 3 - Rose", "FAM.xls", "Eglantine Rose", _
"FAM Eglantine 4 - Blanc", "FAM.xls", "Eglantine Blanc", _
"Etoile D", "Grillons.xls","Grillons D1", _
"Etoile D","Grillons.xls","Grillons D2"

Le bon recensement ci dessous :

"SAJ Aline Gaudet", "Saj.xls", "SAJ", _
"ESAT Les Ecluses", "Ecluses.xls", "Ecluses", _
"ESAT Rive Gauche", "Rive Gauche.xls", "Rive Gauche", _
"IME Le Rocher Fleuri", "IME.xls", "IME Midi", _
"IME A - Jonquille", "IME.xls", "IME A Jonquille", _
"IME B - Anis", "IME.xls", "IME B Anis", _
"IME C - Clémentine", "IME.xls", "IME C Clémentine", _

"Foyer Occupationnel L'Etoile B", "Etoile.xls", "Etoile B", _
"Foyer Occupationnel L'Etoile C", "Etoile.xls", "Etoile C", _
"Foyer Occupationnel L'Etoile D", "Grillons.xls", "Grillons D1", _

"Foyer Hébergement Les caravelles 1 - Vert", "Caravelle.xls", "CAR1", _
"Foyer Hébergement Les caravelles 2 - Blanc", "Caravelle.xls", "CAR2", _
"Foyer Hébergement Les caravelles 3 - Vert", "Caravelle.xls", "CAR3", _
"FAM Eglantine 1 - Jaune", "FAM.xls", "Eglantine Jaune", _
"FAM Eglantine 2 - Vert", "FAM.xls", "Eglantine Vert", _
"FAM Eglantine 3 - Rose", "FAM.xls", "Eglantine Rose", _
"FAM Eglantine 4 - Blanc", "FAM.xls", "Eglantine Blanc", _

J 'ai trouvé comment ouvrir un fichier spécifique dans le dossier actif

ChDir ThisWorkbook.Path

Application.GetOpenFilename ("Fichiers csv (*.csv), *.csv")

C'est un tout petit début lol

Bonjour

Je commence à pouvoir traiter de manière automatisée, encore un peu de patience

Bonjour Scraper,

Merci beaucoup pour ton aide

Je poursuis mes recherches également de mon coté avec des bouts de code mais je rame...Cela me dépasse lol

Un premier essai à renommer en extension bas et à importer

Merci pour ta proposition. Une très jolie macro réalisée que je vais tenter de comprendre

J'ai testé ta proposition. J'ai rajouté la variable

Dim oFSO As Object

Par contre j'ai des codes erreur :

Ligne : Set ws = wb.Sheets(CSV_Etab(3 * iEtab + 2))
Ligne : var = Application.match(text, ws.Columns(2), 0)

Remarque dans le fichier excel:

1/ Je remarque dans les fichiers excel un décalage dans les colonnes : 1 sur 6 au lieu de 1 sur 4

je me suis basé sur le fichier Caravelles.xls que j'ai mis dans mon répertoire de test

Les codes erreurs c'est pour l'IME Clémentine? J'ai rencontré un problème avec le codage de l'accent sur la troisieme lettre de Clémentine. Est-ce cela qui pose toujours problème?

il faudrait peut-être faire un match pour trouver les colonnes des jours.

J'aurais pu rechercher l'index des colonnes "Lundi","Mardi",... pour ne pas utiliser la constante 6 pour la colonne F

Sans importance: J'ai remarqué que les fichiers excel utilisent des colonnes de faibles largeurs vides pour une raison qui m'échappent.

Un fichier qui était utilisé manuellement et que j'avais repris dans mon projet. J'avais gardé les colonnes cachés pour un éventuel besoin.

Effectivement, quand il y a plusieurs onglets sur la feuille ca beug. comme par exemple pour IME A, IME B, IME C , la macro s'execute uniquement sur le premier onglet IME Midi.

Pour Etoile B, Etoile C, la macro selectionne le 3eme onglet

et en suite la macro s'arrete sur cette feuille Grillons D1

En fait pour faire suite, la macro ne doit pas traiter les onglets. les feuilles restent vide.

Sur les autres feuilles, les valeurs sont bien importées mais il y a un décalage dans les colonnes. certaines restent vide et d'autres contiennent une valeur alors qu'il ne devrait pas avoir de valeur.

Pour le décalage de colonnes j'ai enlevé le "Step 2". Sur les intitulé je supprimais le mot Repas alors qu'il faut je crois l'ajouter. Je reprends les tests sur l'ensemble des fichiers.

"Step 2" enlevé ca fonctionne très bien. Il n' y a que les feuilles avec plusieurs onglets qui ne fonctionnent pas.

Merci beaucoup scraper pour ton investissement

Bonjour

Voilà corrigé et testé de bout en bout sur tous les fichiers Excel et en pas à pas (à renommer et importer, attention de supprimer le précédent import)

Alors la chapeau!!! je vais regarder en détail pour essayer de comprendre ta remarquable macro.

J'ai juste une dernière petite question et tout sera parfait

Les feuilles excel se trouvent dans un sous dossier appeler "Effectifs et bon de commande". La macro s’exécute d'un autre fichier présent dans classeur actif. Comment pourrais je indiquer le sous dossier?

Thisworkbook.path & "\Effectifs et bon de commande"

Et encore un grand merci à toi, c'est parfait!!!

Voici la modification que j'ai apporté pour traiter les fichiers dans un sous dossier :

ThisWorkbook.Path & "\votre dossier"
Rechercher des sujets similaires à "importer donnees csv fichiers"