cs_dvdman
Messages postés1Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention 3 décembre 2003 3 déc. 2003 à 20:04
1) est ce que les fichiers csv sont avec en entete les noms de colonnes et ensuite les données
car si c'est le cas tu peux considérer tes fichiers csv comme des bases de données et effectuées des requetes dessus et exporter le résultat dans la feuille considérer
j'ai dja fait ce genre de truc sur 800 fichiers csv dans 1 meme rep, avec des conditions dans mes colonnes
le résultat est un fichier excel avec le resultat de la requete dans une feuille portant les données extraites du fichier en question.
Si la condition 1) est bonne je peux retrouver le code en question
chevalpat
Messages postés6Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention27 avril 20098 15 févr. 2009 à 23:52
code:
Sub OuvreTTFichiers()
Dim Fichier As Variant
Dim Source As Variant
Dim Origine As Variant
Dim n As Integer
Origine = ActiveWorkbook.Name ' récupère le nom du fichier pour pouvoir le sélectionner ensuite
' Ouvrir 1 fichier
Reponse = MsgBox("Sélectionnez le répertoire qui contient les fichiers d'export (.csv), puis cliquez sur 1 des fichiers.", vbInformation + vbOKCancel, "Importation des noms et résultats des élèves")
If Reponse = 2 Then Exit Sub
Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
' Ouvre 1 fichier si c'est 1 csv avec ; on ajoute , Local:=True
' (à partir d'Excel 2002)
Sheets("format").Visible = True 'rend visible la feuille "format" sinon plantage
monfichier = Dir("*.csv")
While monfichier <> ""
Workbooks.Open monfichier, Local:=True
' copie d'1 plage
Range("C6:CY355").Copy
' Désactive la fenêtre d'alerte "beaucoup de données dans le PP"
Application.DisplayAlerts = False
' Ne demande pas d'enregistrement
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
' Active la feuille de circ et colle les données csv
Windows(Origine).Activate ' se place sur le fichier de départ
Sheets.Add after:=Worksheets(Worksheets.Count) 'ajoute un feuille à la fin
Range("A6").Select
ActiveSheet.Paste ' colle le contenu du presse papier
'Application.CutCopyMode = False 'vide le presse papier ???
' récupération du nom du fichier et écriture dans l'onglet et cellule B7
Range("A1").Select
x Len(monfichier) - 4 ' 4 nb de caractères pour l'extension .csv
nom = Left(monfichier, x)
'MsgBox "nom onglet = " & nom
Range("B7") = nom
ActiveSheet.Name = nom
monfichier = Dir()
'Réactive les messages d'alerte
Application.DisplayAlerts = True
'Formatage des colonnes etc par copier/coller du formatage de la feuille "format"