Het probleem
Voor mijn werk ben ik bezig met een Excel bestand, waarin gegevens in .csv-formaat kunnen worden geïmporteerd. De klant levert namelijk elke maand gegevens uit zijn kassasysteem aan in dat formaat. Vervolgens moet die data worden gerecapituleerd en verwerkt in een journaalpost. Dat laatste heb ik al voor elkaar, maar het werkt nu alleen met Excel (*.xlsx) bestanden. Bij het importeren van een .csv-bestand gaat het mis op het splitsen van de kolommen. Deze bestanden zijn gescheiden met ";", maar dit wordt niet herkend. Als ik het .csv-bestand rechtstreeks met Excel open gaat dit wel goed.
Mijn vraag
Via dit forum wil ik vragen of iemand voor mij een stukje script in Visual Basic wil schrijven waarmee een .csv-bestand in Excel wordt geïmporteerd. Van belang is dat de gebruiker een bestand kan selecteren en dat in het script gekozen kan worden op welk blad de data komt te staan, door het wijzigen van de TargetSheet. Uiteindelijk worden namelijk 4 bestanden geïmporteerd die samen de journaalpost maken. Bij het importeren moet Excel dus rekening houden met het scheiden van de kolommen op de plaats waar een ";" staat.
Gebruikte software
- Excel 2010
Voorbeeldscrip import van Excel-bestand
Hieronder de code waarmee een Excel bestand kan worden geïmporteerd. Een soortgelijke werking zou ik graag zien bij het importeren van een .csv bestand.
Voor mijn werk ben ik bezig met een Excel bestand, waarin gegevens in .csv-formaat kunnen worden geïmporteerd. De klant levert namelijk elke maand gegevens uit zijn kassasysteem aan in dat formaat. Vervolgens moet die data worden gerecapituleerd en verwerkt in een journaalpost. Dat laatste heb ik al voor elkaar, maar het werkt nu alleen met Excel (*.xlsx) bestanden. Bij het importeren van een .csv-bestand gaat het mis op het splitsen van de kolommen. Deze bestanden zijn gescheiden met ";", maar dit wordt niet herkend. Als ik het .csv-bestand rechtstreeks met Excel open gaat dit wel goed.
Mijn vraag
Via dit forum wil ik vragen of iemand voor mij een stukje script in Visual Basic wil schrijven waarmee een .csv-bestand in Excel wordt geïmporteerd. Van belang is dat de gebruiker een bestand kan selecteren en dat in het script gekozen kan worden op welk blad de data komt te staan, door het wijzigen van de TargetSheet. Uiteindelijk worden namelijk 4 bestanden geïmporteerd die samen de journaalpost maken. Bij het importeren moet Excel dus rekening houden met het scheiden van de kolommen op de plaats waar een ";" staat.
Gebruikte software
- Excel 2010
Voorbeeldscrip import van Excel-bestand
Hieronder de code waarmee een Excel bestand kan worden geïmporteerd. Een soortgelijke werking zou ik graag zien bij het importeren van een .csv bestand.
Bovenstaande code heb ik ook niet zelf geschreven. Bron.Sub Verkopen()
Application.ScreenUpdating = False
Dim customerBook As Workbook
Dim filter As String
Dim caption As String
Dim customerFilename As String
Dim customerWorkbook As Workbook
Dim targetWorkbook As Workbook
Set targetWorkbook = Application.ActiveWorkbook
filter = "Excel bestanden (*.xlsx),*.xlsx"
caption = "Open een bestand "
customerFilename = Application.GetOpenFilename(filter, , caption)
Set customerWorkbook = Application.Workbooks.Open(customerFilename)
Dim targetSheet As Worksheet
Set targetSheet = targetWorkbook.Worksheets(2)
Dim sourceSheet As Worksheet
Set sourceSheet = customerWorkbook.Worksheets(1)
targetSheet.Range("A1", "Z99").Value = sourceSheet.Range("A1", "Z99").Value
customerWorkbook.Close
End Sub