Fermacelli
Gebruiker
- Lid geworden
- 9 jun 2011
- Berichten
- 34
Beste vrijwilligers,
De laatste weken zie ik in dat VBA veel kan en ik ben mezelf aan het verdiepen hierin.
Waar ik nu tegen aan loop is dat ik dagelijks een voorraaddump wil importeren uit een CSV bestand (met behulp van een Auto_open Macro).
Wanneer dit echter gebeurd, blijft de oude data staan en worden de kolommen uit de dump links voor de oude data geplakt.
De auto_open importeert twee verschillende CSV bestanden in twee verschillende werkbladen in Excel.
Momenteel heb ik de onderstaande code:
Sheets("B14_S").Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\kmarcell\Dump\B14_SR_1.3 Stock details v0.2.csv", Destination _
:=Range("$A$1"))
.Name = "B14_SR_1.3 Stock details v0.2_1"
.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
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Een optie is natuurlijk om de data te verwijderen met behulp van 'Record Macro', maar kan een van jullie wellicht vertellen of ik niet gewoon een regel kan toevoegen in het script welke dit voor me doet? Het functioneert namelijk niet goed als ik dit 'handmatig' doe met 'Record Macro'.
Let op: zoals in ColumnDataTypes te zien valt, bestaat de 1e dump uit 12 kolommen en de 2e dump uit 17 kolommen. In de kolommen hier rechts van staan formules, dus deze dienen niet verwijderd te worden.
Hopelijk kan iemand me verder helpen.
Met vriendelijke groet,
Koen
De laatste weken zie ik in dat VBA veel kan en ik ben mezelf aan het verdiepen hierin.
Waar ik nu tegen aan loop is dat ik dagelijks een voorraaddump wil importeren uit een CSV bestand (met behulp van een Auto_open Macro).
Wanneer dit echter gebeurd, blijft de oude data staan en worden de kolommen uit de dump links voor de oude data geplakt.
De auto_open importeert twee verschillende CSV bestanden in twee verschillende werkbladen in Excel.
Momenteel heb ik de onderstaande code:
PHP:
Sub Auto_open()
'
' Auto_open Macro
'
'
Sheets("B14_V").Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\kmarcell\Dump\B14_TR_Transaction_Report_Inkoop.csv", _
Destination:=Range("$A$1"))
.Name = "B14_TR_Transaction_Report_Inkoop_1"
.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
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\kmarcell\Dump\B14_SR_1.3 Stock details v0.2.csv", Destination _
:=Range("$A$1"))
.Name = "B14_SR_1.3 Stock details v0.2_1"
.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
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Een optie is natuurlijk om de data te verwijderen met behulp van 'Record Macro', maar kan een van jullie wellicht vertellen of ik niet gewoon een regel kan toevoegen in het script welke dit voor me doet? Het functioneert namelijk niet goed als ik dit 'handmatig' doe met 'Record Macro'.
Let op: zoals in ColumnDataTypes te zien valt, bestaat de 1e dump uit 12 kolommen en de 2e dump uit 17 kolommen. In de kolommen hier rechts van staan formules, dus deze dienen niet verwijderd te worden.
Hopelijk kan iemand me verder helpen.
Met vriendelijke groet,
Koen