Bonjour � tous !
Je dois faire un petit outils au boulot qui va manipuler pas mal de donn�es. Je pr�f�re utiliser R habituellement mais mes collaborateurs pr�f�rent que j'utilise vba car ils ont peur de se trouver dans la panade quand je partirais, ce que je peux comprendre
Le probl�me auquel je m'oppose est le suivant:
Pour l'outils J'aurais un certain nombre de fichiers csv (5 � 30), dans un m�me dossier et tous organis� de la m�me fa�on,
- Colonne "Date de la mesure"
- Colonne "Heure de la mesure"
- Colonne "Valeur"
Il y a d'autre truc mais je n'en ai pas besoin
Ce que j'aimerais c'est r�cup�rer les trois colonnes du premier fichier pour le mettre dans un onglet "TOP 10" de mon outil, mettre en colonne 4 la colonne "Valeur" du fichier 2, en colonne 5 la colonne "Valeur" du fichier 3, et etc...
J'ai essay� des choses avec une fonction que j'ai trouv�e sur le net
Je balai ensuite l'ensemble du dossier pour extraire les donn�es de mes fichiers
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 Function SelectionRep() As String Const ssfTous = &H1 Dim objShell As Object, objFolder As Object, oFolderItem As Object Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", ssfTous) If objFolder Is Nothing Then Exit Function Set oFolderItem = objFolder.Items.Item SelectionRep = oFolderItem.Path Set objShell = Nothing Set objFolder = Nothing Set oFolderItem = Nothing End Function
J'ai ensuite essayer de prendre un bout de code que je n'ai pas fait et que je n'arrive pas � adapter � mon cas.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Option Explicit Dim Lig As Long Dim Chemin As String Sub ExtractionCSV() Dim Fichier Lig = 2 Chemin = SelectionRep() & "\" Fichier = Dir(Chemin) Do While Fichier <> "" Lig = Lig + 1 CopierData Fichier Fichier = Dir Loop Sheets(2).Cells.ClearContents Sheets(1).Select End Sub
Ca n'extrait que le premier fichier csv et en plus j'ai l'ensemble du fichier sur une seule et m�me colonne !
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Sub CopierData(Fichier) With Sheets(1) .Cells.ClearContents With .QueryTables.Add(Connection:="TEXT;" & Chemin & Fichier, Destination _ :=.Range("A1")) .Name = Fichier .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 1252 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileOtherDelimiter = """" .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With .Range("L1:L6").Copy Sheets("TOP10").Cells(Lig, 2).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True End With End Sub
Tout �l�ment de r�ponse � mon probl�me serait d'une aide pr�cieuse
En esp�rant avoir �t� clair et en attendant de vous lire,
Je vous souhaites une agr�able fin de semaine
Partager