Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: csv automatisch inlezen  (gelezen 2498 keer)

0 leden en 1 gast bekijken dit topic.

Offline sambat4u2

  • Nieuw lid
  • Berichten: 1
  • Oplossing.be
csv automatisch inlezen
« Gepost op: 18 december 2006, 14:21:19 »
Hallo, experts

ik heb volgend probleem: :'(
ik ontvang een csv-bestand waarbij de strings die ik moet ontleden als scheidingsteken komma's bevatten.
ik moet de inhoud van dat csv-bestand inlezen in mijn excelbestand om daar allerlei bewerkingen mee te doen...
als ik gewoon kopieer en plak van csv naar excel: alles werkt
wanneer ik hetzelfde opneem in een macro, dan wordt de inhoud van de string verdeeld over verschillende cellen (door die komma's vermoed ik...); ook plakken speciaal en waarden biedt zo te zien geen oplossing
Het csv'tje zet ik in bijlage.
Dus automatiseren van het kopiëren en de vooledige celinhoud bij elkaar houden is 't probleem
hieronder zet ik mijn code...

Workbooks.Open Filename:="Z:\Administratie\matrix\gegevens.csv"
Cells.Select
Selection.Copy
Windows("matrix (version 1).xls").Activate
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("gegevens.csv").Activate
ActiveWindow.Close
Range("A1").Select

Alvast bedankt
groetjes
Sammy
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re:csv automatisch inlezen
« Reactie #1 Gepost op: 18 december 2006, 17:24:36 »
Sammy, Je hebt het volgens mij bij het rechte eind voor wat betrreft de komma´s....
Een komma is in een txt of csv bestand inderdaad een scheidingsteken. Wat je volgens mij het beste kan doen, is de extentie van je csv bestand tijdelijk te wijzigen in .txt en dan dit bestand openen terwijl je macrorecorder op opnemen staat. Je krijgt dan soortgelijk resultaat:
Sub Macro2()
    Workbooks.OpenText Filename:="I:\ICT_Logistiek\ReclamePakketten\pakA.txt", _
        Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1)), TrailingMinusNumbers:=True
End Sub
Vooral dit stukje Comma:=False is belangrijk. Hiermee geef je aan dat de komma géén scheidingsteken is. Als je dan vervolgens de extentie van de naam in je listing weer veranderd in .csv, zou het allemaal goed moeten gaan. O ja, en natuurlijk ook weer van je .csv bestandje de tijdelijke extentie .txt veranderen....  ;)

Ik hoop dat je hier mee verder komt.

Groet, Leo
______________________________

Groet, Leo

 


www.combell.com