alpking | je suis débutant en VBA et j'ai essayé de faire une macro qui ferait les étapes suivantes :
1. Ouvrir une fenêtre qui permet à l'utilisateur de choisir le chemin d'un fichier .csv
2. Ouverture d'un nouveau workbook
3. Importation de données externe sous format texte (csv) délimité par une virgule, texte entre doubles guillemets et encodé en UTF-8. Certaines colonnes contiennent du texte, d'autre des dates en format Y-M-D. Il y a donc plusieurs type de données
4. Coller les données importées en A1
5. Mise en gras de la première ligne
6. Autofit de la largeur des colonnes
Voici ce que j'ai réussi à faire en enregistrant des macro et en essayant de copier-coller les résultats.
Code :
- Sub import_ccsv()
- '
- Dim F As Variant
-
- F = Application.GetOpenFilename("csv Files (*.csv), *.csv" )
-
- If F = False Then Exit Sub
- Workbooks.Add
- With ActiveSheet.QueryTables.Add(Connection:= _
- "TEXT;F", Destination _
- :=Range("$A$1" ))
- .Name = "fichier_client"
- .FieldNames = True
- .RowNumbers = False
- .FillAdjacentFormulas = False
- .PreserveFormatting = True
- .RefreshOnFileOpen = False
- .RefreshStyle = xlInsertDeleteCells
- .SavePassword = False
- .SaveData = True
- .AdjustColumnWidth = True
- .RefreshPeriod = 0
- .TextFilePromptOnRefresh = False
- .TextFilePlatform = 65001
- .TextFileStartRow = 1
- .TextFileParseType = xlDelimited
- .TextFileTextQualifier = xlTextQualifierDoubleQuote
- .TextFileConsecutiveDelimiter = False
- .TextFileTabDelimiter = True
- .TextFileSemicolonDelimiter = False
- .TextFileCommaDelimiter = True
- .TextFileSpaceDelimiter = False
- .TextFileColumnDataTypes = Array(2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
- 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 5, 2)
- .TextFileTrailingMinusNumbers = True
- End With
-
- Rows("1:1" ).Select
- Selection.Font.Bold = True
- Columns("A:A" ).Select
- Range(Selection, Selection.End(xlToRight)).Select
- Columns("A:AM" ).EntireColumn.AutoFit
- End Sub
|
Je sais bien qu'il ne s'agit pas là de la meilleure technique mais c'est tout ce que j'ai réussi à faire avec mon tout petit niveau !!
Est-ce que quelqu'un voit ou est-ce que ça cloche ? Message édité par alpking le 05-08-2009 à 17:10:05
|