Wij zijn op zoek naar een manier om kolommen te verwijderen uit een csv bestand. We hebben het hele internet al afgezocht naar mogelijkheden maar we komen er maar niet uit. We zijn totaal niet bekend met VBA of andere scripting mogelijkheden als perl of een andere taal. Wat we nu hebben gedaan is een macro maken die simpel weg kolom 1, 2, 3, 6, 7, 8 en 9 verwijderd, daarvoor zit nog een CSV import code. Echter willen we deze macro over 500+ bestanden uitvoeren zonder dat een gebruiker daar naar hoeft te kijken, deze bestanden hebben natuurlijk allemaal een andere naam dus moet het import bestand variabel worden. Ik zit te denken aan iets van een for lus met een variabel van alle .csv bestanden in een map, maar omdat ik absoluut geen kennis heb van VBA heb ik geen idee hoe ik dit zou moeten realiseren. Het is trouwens geen probleem als het bestand daarna weer als excel sheet wordt opgeslagen. Kan iemand mij in de goede richting helpen?
whoops, misschien handig als ik de code erbij zet die ik nu heb
whoops, misschien handig als ik de code erbij zet die ik nu heb
code:
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
39
| Sub DeleteColum()
'
' DeleteColum Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:="TEXT;F:\EDDRXP727.csv", _
Destination:=Range("$A$1"))
.Name = "EDDRXP727"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("A:C").Select
Range("C1").Activate
Selection.Delete Shift:=xlToLeft
Columns("C:F").Select
Selection.Delete Shift:=xlToLeft
End Sub |
[ Voor 41% gewijzigd door Soepstengel op 17-09-2008 12:30 ]
Desktop: Ryzen 7 7800X3D | 32 GB | Radeon RX 6800