importer un csv avec une macro

E

erdal

Guest
Bonjour le forum!

Je cherche a importer automatiquement un fichier .csv de données brutes pour le mettre sur la feuil2 d'un fichier excel. Est-ce faisable avec une macro? Et si tel est le cas, est-il possible de spécifier que le fichier .csv à ouvrir aura pour nom la date du jour précédent?

Je vous remercie de votre aide,

Erdal
 

john

XLDnaute Impliqué
Bonjour,

Voici la solution à ton problème :

Sub ouvre_csv()
application.ScreenUpdating = False 'je désactive le raffraichissement de l'écran afin d'empêcher l clignotement de l'écran lors des manip ci-dessous
nom_classeur_ouvert = ActiveWorkbook.Name 'ici je prend le nom du fichier en cours
jour = Format(Day(Date - 1), '##00') 'ici je format le texte pour ne pas avoir un seul caractère si le jour est entre 1 et 9 et pour tjrs avoir le même format de nom de fichier
mois = Format(Month(Date), '##00')
annee = Format(Year(Date), '####0000')
nom_classeur_a_ouvrir = jour & mois & annee & '.csv' 'je créé le nom du fichier avec l'extension 'csv'
With Application
Set fich = .Workbooks.Open('C:\\Mes documents\\' & nom_classeur_a_ouvrir)
fich.Sheets(1).Columns(1).TextToColumns Range('A1'), xlTextQualifierDoubleQuote, , False, , , , , True, ';', Array(1, 4)
End With
Cells.Select 'je séléctionne toutes les cellules
Selection.Copy 'je la copie
Windows(nom_classeur_ouvert).Activate 'je réactive le premier classeur
Sheets('Feuil2').Select 'j'active la feuille 2
ActiveSheet.Paste 'je colle le contenu sur la page
Range('A1').Select 'je séléctionne la première cellule de la page
Sheets('Feuil1').Select 'je re-séléctionne la première page
Windows(nom_classeur_a_ouvrir).Activate 'je ré-active le classeur 'csv'
Range('A1').Select 'je séléctionne la première cellule de la page
Application.CutCopyMode = False 'ici je désactive la séléction des cellules
Application.DisplayAlerts = False 'je bloque le message d'alerte comme de quoi le fichier cs n'a pas été sauvegarder
ActiveWorkbook.Close 'je ferme le classeur csv
Application.DisplayAlerts = True 'je réactive les messages d'alerte
MsgBox 'Vos données du fichier ' & nom_classeur_a_ouvrir & ' sont copiées sur la feuille 2 de votre classeur', vbInformation + vbOKOnly, 'Importation de données CSV'
application.ScreenUpdating = True'je réactive le raffraichissement de l'écran
End Sub

ci-joint un exemple.

Bonne fin de journée.

John [file name=ouvre_csv_20051222144922.zip size=11581]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ouvre_csv_20051222144922.zip[/file]

Message édité par: john, à: 22/12/2005 15:02
 

Pièces jointes

  • ouvre_csv_20051222144922.zip
    11.3 KB · Affichages: 1 159

Discussions similaires

Réponses
10
Affichages
354
Réponses
3
Affichages
410

Statistiques des forums

Discussions
312 443
Messages
2 088 472
Membres
103 862
dernier inscrit
pln47