Tekst bestanden importeren in Excel werkbladen

Inhoud

Inleiding

In dit artikel laat ik zien hoe je het importeren van .txt, .prn en/of .csv bestanden in een Excel werkblad kunt vereenvoudigen.

Als je ooit geprobeerd hebt om een tekstbestand te openen in Excel (Bestand, Openen, kies "Tekst bestanden" als bestandstype), dan heb je al kennis gemaakt met de "Wizard Tekst importeren". Als je bovendien wel eens een CSV bestand met Excel geopend hebt dan weet je ook, dat deze handige wizard niet wordt gestart bij dit type bestanden. Wat te doen, als je in de situatie zit dat je regelmatig bestanden moet importeren met een identieke structuur, waarbij je dus iedere keer precies dezelfde tekst importinstellingen nodig hebt? En hoe importeer je de gegevens uit die bestanden in hetzelfde werkblad, zonder de importdefinitie steeds opnieuw op te moeten geven?

In dit artikel laat ik zien hoe je deze taak makkelijk maakt met behulp van zowel Ophalen & transformeren, als met de oude wizard tekst importeren.

Ophalen en Transformeren (oftewel Power Query)

Voordat je de PowerQuery import stappen uitvoert, is het belangrijk eerst jezelf enkele vragen te stellen:

  1. Zal de naam van het te importeren bestand telkens hetzelfde zijn?
  2. Zal de locatie (regelmatig) veranderen?
  3. Wil ik één bestand importeren, of wellicht meerdere bestanden?

Als het antwoord op één van deze vragen Ja is, overweeg dan om andere stappen te kiezen dan degene die ik hieronder beschrijf. In dergelijke gevallen kan je beter gebruik maken van de keuze "Uit map": Gegevens tab, Gegevens ophalen knop, Uit bestand, Uit map. Deze route geeft je vervolgens de mogelijkheid om bijvoorbeeld de bestanden te filteren op extensie, eventueel ze te sorteren zodat de nieuwste bovenaan staat en vervolgens alleen dat bestand te importeren. Of misschien wil je alle .txt bestanden in een map openen die een naam hebben die start met "balans". De mogelijkheden zijn eindeloos.

Hoe dan ook, laten we eens een enkel CSV bestand importeren.

De Landinstellingen kiezen

CSV bestanden kennen geen internationale standaard. Het enige dat zeker is, is dat er gebruik wordt gemaakt van een scheidingsteken om de kolommen te scheiden. Hetzelfde geldt voor andere zaken in CSV bestanden: Er is geen overeenkomst over hoe een datum eruit ziet noch een afspraak over het decimaal- of het duizendtalscheidingsteken. Dit alles hangt af van de landinstellingen van de computer die de CSV heeft geproduceerd. Het kan dus zijn dat je te maken krijgt met een CSV met de puntkomma als scheidingsteken voor de kolommen, komma's als decimaalscheidingsteken en een datumvolgorde van dd-mm-jjjj. In de oude tekst importeren wizard (zie verderop in dit artikel), kies je deze instellingen pas nadat je het bestand hebt gekozen. In PowerQuery is het het makkelijkst als je dit vooraf doet.

Het is een goed idee om de CSV eerst even in Kladblok (Notepad) te openen, zodat je kunt zien wat het bestand bevat. Dat stelt je in staat om te zien hoe het zit met:

  • Kolom scheidingsteken
  • Decimaal scheidingsteken
  • Duizendtallen scheidingsteken
  • Datum opmaak en volgorde

Bekijk je CSV in kladblok (Notepad)

Als je een beetje geluk hebt, dan is de CSV gemaakt met standaard landinstellingen (en niet zoals bovenstaand voorbeeld waar de kolom- en decimaalscheidingstekens dezelfde zijn). Vertel PowerQuery dus welke landinstellingen het moet gebruiken bij het importeren. Klik de Gegevens tab, kies Gegevens ophalen en klik "Query opties". Klik vervolgens op de tab "Regionale instellingen" en kies de juiste landinstellingen:

De landinstellingen aanpassen voordat je een CSV importeert

Hoe weet je nu welke landinstellingen je nodig hebt?? Het dialoogvenster vertelt je niet welke scheidingstekens en formaten bij elke landinstelling horen. Google helpt hier enorm, Chris Webb heeft dit al voor ons uitgezocht! Chris heeft zelfs een Excel bestandje gemaakt met daarin alle instellingen.

Nu de landinstellingen goed staan zijn we klaar om het importeren te starten. Klik Gegevens, Uit tekst/CSV. Nadat je het gewenste bestand gekozen hebt, verschijnt dit venster:

De eerste stap uit de PowerQuery Uit tekst/CSV optie

Zoals je kunt zien heeft Power Query geprobeerd om zaken als het scheidingsteken en de gegevenstypen (op basis van de eerste 200 rijen) af te leiden uit de gegevens in het bestand. Wijzig deze instellingen als ze niet juist zijn.

De beste stap die je vervolgens kunt nemen is klikken op "Gegevens transformeren". Direct op Laden klikken is vrijwel nooit goed genoeg want je zult daarna veel kliks nodig hebben om alsnog wijzigingen aan te brengen indien bijvoorbeeld datums niet als datums zijn herkend tijdens het importeren. Klik dus altijd op Gegevens transformeren zodat je e.e.a. direct kan corrigeren.

Nadat je op Gegevens transformeren hebt geklikt, opent het Power Query venster. Controleer nu alle kolommen. Het icoontje naast hun naam in de koprij geeft aan welk gegevenstype voor die kolom geldt:

Het Power Query venster met een voorlopige weergave van de gegevens

Heeft een kolom het verkeerde gegevenstype, klik dan op het ikoontje en kies het juiste type. Dit is een belangrijke stap. Verkeerde gegevenstypen zorgen voor foute berekeningen in Excel!

Dit is het moment om dingen te doen als verwijderen van kolommen die niet nodig zijn of sorteren van de tabel op de gewenste kolommen. Zodra je tevreden bent met de gegevens klik je op Start tab van het PQ lint en op de vervolgkeuzelijst onder "Sluiten en laden", kies "Sluiten en laden naar..."

PowerQuery venster, sluiten en laden

In het daaropvolgende dialoogvenster kan je keuzes maken met betrekking tot waar PowerQuery de geïmporteerde gegevens moet laten:

Het gegevens importeren venster na klikken op sluiten en laden naar...

Helaas is hier de knop Eigenschappen niet beschikbaar. Klik op OK om -zoals ingesteld in het voorbeeld- de gegevens te laden in een tabel op het huidige werkblad.

Om alsnog de eigenschappen van de verbinding te kunnen aanpassen klik je in de tabel en vervolgens op de Tabelontwerp tab op de Eigenschappen knop:

De eigenschappen van de gegevensverbinding bewerken

In het dialoogvenster dat opent kan je dingen instellen zoals wat er moet gebeuren als er meer of juist minder rijen met gegevens worden geïmporteerd en of de kolombreedtes telkens mogen worden aangepast:

Het dialoogvenster Externe gegevenseigenschappen

Er zijn nog meer eigenschappen in te stellen. Deze vind je door ervoor te zorgen dat het venster Query's en verbindingen zichtbaar is door te klikken op de juiste knop op het lint op de Gegevens tab:

The Queries & Connections task pane

Je kunt dan rechts-klikken op de query en Eigenschappen kiezen:

Het dialoogvenster Queryeigenschappen

De oude wizard tekst importeren gebruiken

De oude wizards weer zichtbaar maken

Sinds Excel 2016 is Power Query ingebouwd in Excel. Om het gebruik van PowerQuery te promoten, zijn toen de oude wizards verborgen. Zo krijg je deze weer terug:

Klik Bestand, Opties en klik op de tab Gegevens. Vink de wizards aan die je nodig hebt, zie hieronder:

Enabling legacy data import wizards

Vervolgens vind je hier de oude wizard tekst importeren:

Import data from text files on Excel 2007/2010 ribbon.

Instellen welk (soort) bestand geïmporteerd moet worden

Selecteer eerst het werkblad waar je de gegevens in wilt ontvangen. Zoek op het lint de tab Gegevens en klik vervolgens op de drop-down "Gegevens ophalen", dan op Oude wizards en tenslotte op de knop "Uit tekst (verouderd)".

 De knop Uit tekst (verouderd) op het lint

Selecteer het juiste bestand uit het volgende dialoogvenster:

Het dialoogvenster Tekstbestand importeren

Het dialoogvenster Tekstbestand importeren.

Tot nu toe hebben we alleen maar opgegeven wat we willen importeren. Nu is het tijd om aan te geven hoe dit moet gebeuren.

Klik op de Openen knop. De Wizard Tekst importeren opent haar deuren:

Stap 1 van de Wizard Tekst importeren, definieer het bestandstype

Stap 1 van de Wizard Tekst importeren, definieer het bestandstype.

In dit voorbeeld heb ik aangegeven dat mijn bestand van het type Windows (ANSI) is en dat ik een bestand heb met scheidingstekens. Klik op Volgende als de instellingen goed staan voor jouw bestand.

Stap 2 van de wizard geeft de mogelijkheid om de scheidingstekens in te stellen. Ik heb hem ingesteld op Komma:

  Stap 1 van de Wizard Tekst importeren, definieer het scheidingsteken

Stap 2 van de Wizard Tekst importeren, definieer het scheidingsteken

Klik weer op Volgende om in stap 3 te komen, waar je voor iedere kolom kunt instellen wat het formaat van die kolom moet zijn. Ik heb het datumformaat van de eerste kolom ingesteld op de volgorde DMJ. Klik op een kolom als je het formaat ervan wilt aanpassen.

Stap 3 van de Wizard Tekst importeren, kolom formattering instellen

Stap 3 van de Wizard Tekst importeren, kolom formattering instellen

Als je op de knop Geavanceerd klikt, dan kan je instellen welk decimaalteken moet worden gebruikt tijdens het importeren:

Het dialoogvenster Geavanceerde instellingen voor tekst importeren

Het dialoogvenster Geavanceerde instellingen voor tekst importeren

Merk op, dat de instellingen in dit venster gelden voor alle kolommen.

Nadat alle kolommen zijn ingesteld klik je op de knop Voltooien. Excel opent nu het venster Gegevens importeren en vraagt daarmee waar je de gegevens wilt plaatsen. Selecteer de juiste plek in je bestand.

Het dialoogvenster Gegevens importeren

Het dialoogvenster Gegevens importeren

Ho nu even! Nog niet op OK klikken! Klik op de knop Eigenschappen. Het dialoogvenster Eigenschappen extern gegevensbereik opent zich. Hier kan je enkele belangrijke instellingen wijzigen.

Het dialoogvenster Eigenschappen extern gegevensbereik

Het dialoogvenster Eigenschappen extern gegevensbereik

Merk op, dat ik enkele belangrijke eigenschappen heb uitgelicht. Ik bespreek die hieronder.

Querydefinitie opslaan

Laat deze aangevinkt, anders moet je de instellingen telkens opnieuw doen en dat was nou net niet de bedoeling!

Vragen om bestandsnaam bij vernieuwen

Als je dit vakje aan vinkt, dan zal Excel bij het vernieuwen van de gegevens altijd om een bestandsnaam vragen. Laat dit vakje uitgevinkt als je bestandsnaam en -locatie steeds dezelfde is.

Bestaande cellen overschrijven met nieuwe gegevens, ongebruikte cellen wissen

Welke selectie hier het beste is, hangt helemaal af van je specifieke situatie. De eerste twee mogelijkheden zorgen ervoor, dat gegevens onder je importeerbereik omlaag geduwd worden c.q. omhoog getrokken worden als je meer of minder gegevens importeert.

Ik beveel aan om voor te importeren gegevens een apart werkblad te nemen, waarop niets anders staat dan het importeerbereik en eventuele naastgelegen formules.

Formules doorvoeren naar aangrenzende kolommen

Een hele handige optie. Heb je het plan om een berekening te doen met elke rij van de import, dan zorgt deze optie ervoor dat deze cellen ook formules blijven houden als de hoeveelheid gegevens toeneemt.

Klik OK als je tevreden bent met de instellingen.

Importeren van de gegevens

Tenslotte klik je op OK en je gegevens worden ingelezen.  Mijn werkblad ziet er nu zo uit:

Resultaten na het importeren

Resultaten na het importeren

Nu de import juist is ingesteld zou ik het bestand maar eens opslaan.

De gegevens vernieuwen

Tot nu toe was alles erop gericht om de import instellingen juist te krijgen en ervoor te zorgen dat we die niet nog eens hoeven in te stellen. Maar hoe importeer je nou een nieuw bestand? Heel eenvoudig. Klik op een willekeurige cel in de tabel.

Vervolgens moet er op "Vernieuwen" worden geklikt.

Op de tab Gegevens bevindt zich de groep "Verbindingen" met daarin de knop "Alles vernieuwen". Klik daarop en kies voor Vernieuwen:

De knop Vernieuwen in Excel 2007

Als je de optie om te vragen om een nieuw bestand had ingesteld moet je dat nieuwe bestand nu opgeven .

Zo. Klaar!

Conclusie

Het importeren van tekst bestanden in Excel kan een arbeidsintensief proces zijn, als je dezelfde stappen steeds opnieuw moet doen. Door de importopties die Excel biedt op de juiste manier te gebruiken kan je jezelf echter veel tijd besparen. Tegelijkertijd neemt hierdoor de consistentie van je gegevens toe doordat er geen fouten meer worden gemaakt bij het importeren.

Dit artikel heeft een overzicht gegeven over hoe e.e.a. in Excel kan worden ingericht.

Mocht je vragen en/of opmerkingen hebben, hieronder is de mogelijkheid deze in te vullen.


Vragen, suggesties en opmerkingen

Al het commentaar over deze pagina:


Commentaar van: Roel Rovers (29-11-2011 15:04:28) deeplink naar dit commentaar

Aansluitend op het bovenstaande verhaal heb ik een vraag.

Bankmutaties worden door mij gedownload in csv, over meerdere jaren en vele rekeningen. Deze aparte werkbladen zou ik willen samenvoegen tot een groot werkblad. Daarna wil ik met de draaitabel functie filters maken en rapporteren.

Wat tijdens het samenvoegen mij hindert is het einde gegevensbereik teken (pijltje). Hierdoor kan ik de gegevens van een tweede werkblad niet plakken onder de gegevens van het eerste werkblad.
Het vergroten van het gegevensbereik levert geen goed resultaat op bij namen beheer.

Weet u misschien een goede werkwijze?

Bij voorbaat dank voor het antwoord.

Roel Rovers


Commentaar van: Jan Karel Pieterse (29-11-2011 23:19:33) deeplink naar dit commentaar

Hallo Roel,

Gek genoeg zegt het einde gegevensbereik pijltje mij niets, is dat het piepkleine symbooltje dat in de cel helemaal rechts-onder van een Excel tabel te zien is (2007 en 2010)?

Zo ja, dan zou je de gegevens gewoon direct onder de tabel moeten kunnen plakken en dan zou Excel de tabel automatisch uit moeten breiden.


Commentaar van: Wouter (18-1-2012 08:43:36) deeplink naar dit commentaar

Ik heb het bovenstaande al eens toegepast. En dat werkt erg prettig, voornamelijk dat hij bij het openen vraag om welk bestand er gekoppeld moet worden.

Maar ik zit nu met een geval dat ik een .xls bestand wil gebruiken. Dit lukt op zich wel maar nu krijg ik de optie niet zichtbaar om hem bij het opstarten te vragen welk bestand er geopend moet worden. Hij opent altijd hetzelfde bestand. Is hier een mogelijkheid voor? Alvast bedankt voor het antwoord! Ik gebruik Excel 2007.

Met vriendelijke groet,

Wouter Lettinga


Commentaar van: Jan Karel Pieterse (18-1-2012 09:40:53) deeplink naar dit commentaar

Hallo Wouter,

Dat kan helaas niet zonder VBA. Welke code nodig is hangt af van de gebruikte methode van "koppelen". Hoe heb je dat gedaan?


Commentaar van: Wouter (20-1-2012 01:08:11) deeplink naar dit commentaar

Beste Jan Karel,

Bedankt voor je antwoord. Dat is in ieder geval duidelijk. VBA heb ik eigenlijk nooit gebruikt in excel. Ik denk dat ik het dan even handmatig doe. Maar in ieder geval bedankt.

Met vriendelijke groet,

Wouter


Commentaar van: Henk (5-6-2014 08:28:26) deeplink naar dit commentaar

Ik heb een csv bestand van mijn bank gedownload. Nu wil ik de bankinformatie aanvullen door een nieuw csv bestand te downloaden en bij het eerdere bestand te voegen. Dat doende verdwijnt alle eerder gedownloade informatie en wordt alleen de nieuwe informatie zichtbaar.
Wat doe ik verkeerd. Graag uw mogelijke oplossing.
Groet
henk


Commentaar van: Jan Karel Pieterse (5-6-2014 08:31:50) deeplink naar dit commentaar

Hoi Henk,

Wat je zou kunnen doen is voordat je het nieuwe bestand download, eerst het oude kopieren naar een ander werkblad. Als je volgende downloads steeds onder de voorgaande plakt, dan krijg je op die manier een historie.

NB: tekst geschreven in alleen hoofdletters wordt op internet geinterpreteerd als schreeuwen en dus als onbeleefd. Ik heb daarom even jouw bericht omgezet.


Commentaar van: Paul (18-9-2014 21:45:23) deeplink naar dit commentaar

Ik zou heel graag je hulp willen inroepen bij mijn onderstaande 2 uitdagingen.

Ik importeer ook mijn bankgegevens en heb een macro hiervoor gemaakt. In de macro staat de naam van het te importeren bestand. De naam van dat bestand is nagenoeg telkens gelijk op een datum achter de naam na. Ik zou graag willen dat ik in de macro een ' wildcard' achter het eerste deel van het te importeren bestand zet zodat ik niet steeds de naam hoef aan te passen van het gedownloade bestand van de bank. Kun je aangeven of dat kan en hoe dat zou kunnen.

Daarnaast komt de macro telkens terug met een te bevestigen 'ok' als reactie op het verwijderen van een tijdelijk tabblad door de macro. Die ok-bevestiging zou ik ook graag willen 'automatiseren' in de macro. Is dat mogelijk ? en zo ja hoe kan ik dat doen ?

bvd


Commentaar van: Jan Karel Pieterse (19-9-2014 12:11:04) deeplink naar dit commentaar

Hoi Paul,

Kan je niet de procedure gebruiken die in bovenstaand artikel staat? Dan heb je die macro niet nodig.

Zet dit in je code om de waarschuwing te voorkomen (wel na de actie weer op false zetten):

Application.DisplayAlerts = False


Commentaar van: Paul (20-9-2014 15:20:26) deeplink naar dit commentaar

Hoi Jan Karel
Omdat ik ook wel eens andere bestanden importeer kies ik niet voor de bovenstaande uitwerking maar een macro die telkens de instellingen afloopt. Nadeel is dus de te importeren bestandsnaam met datum van de bank. Dat pas ik na import dus handmatig aan door de datum te verwijderen. Een ' wildcard' of een manier om alleen het eerste deel van de bestandsnaam te laten lezen door excel zou dus handig zijn voor me, maar ik heb geen idee hoe ik dat voor elkaar zou kunnen krijgen.

De application.DisplayAlerts = False (zonder de toevoeging) werkt prima bij me !! Aan het einde van de macro heb ik 'm weer op True gezet. Werkt echt prima !! Mocht je nog een mooie oplossing weten voor de bestandsnaam dan hoor ik dat graag. Heel erg bedankt voor je hulp !!!!

mvrgr Paul


Commentaar van: Jan Karel Pieterse (22-9-2014 13:29:50) deeplink naar dit commentaar

Hoi Paul,

Kijk eens naar de functie "GetOpenFileName", bijv:

Sub GetOpenFileNameExample()
    Dim vFilename As Variant
    Dim sPath As String
    sPath = "c:\windows\temp\"
    ChDrive sPath
    ChDir sPath
    vFilename = Application.GetOpenFilename("text files (*.txt),*.txt", , "Please select the file(s) to import", , False)
    If TypeName(vFilename) = "Boolean" Then Exit Sub
    If CStr(vFilename) = "" Then Exit Sub
    If Dir(CStr(vFilename)) <> "" Then
    MsgBox "Exists!!!"
    Else
' Now do something with vfilename, like:
' Workbook.OpenText Filename:=vFilename
End If
End Sub



Commentaar van: Ies Biekart (29-9-2014 15:15:05) deeplink naar dit commentaar

Hallo Jan Karel
Ik importeer (Excel 2010)geregeld bestanden van de bank als csv bestand (penningmeester vereniging)en doe dat op de manier zoals beschreven en in een apart werkblad. Daarna kopieer ik de gewenste gegevens naar het uiteindelijke werkblad waar ik ze nodig heb. Er zijn inmiddels aardig wat gekoppelde csv-bestanden en loop er nu tegen aan dat ik geen nieuwe bestanden meer kan importeren. (de velden in het tabblad "gegevens" van het lint blijven grijs). Wellicht had ik eerde op diezelfde plek een (verkeerd) csv bestand gemporteerd en heb dat verwijderd, maar weet dat niet zeker. Mijn vraag: Is er een maximum aantal csv bestanden wat je kunt importeren? wat kun je aandragen als mogelijke fout en wat is de oplossing? Alvast hartstikke bedankt!


Commentaar van: Jan Karel Pieterse (29-9-2014 16:30:13) deeplink naar dit commentaar

Hallo Ies,

Het kan zijn dat de de import-definitie per ongeluk hebt verwijderd. Kan je het hele blad leegmaken en opnieuw die csv definitie instellen?


Commentaar van: MJ (ies) Biekart (1-10-2014 11:59:44) deeplink naar dit commentaar

Jan Karel,
bij toeval heb ik zelf de oplossing ontdekt. Ik had inderdaad in die cel al eerder een import van gegevens uitgevoerd, die ik later had weggehaald omdat de import onjuist was (verkeerde tekstbestandje). Toen ik een paar rijen naar beneden ging kon ik ineens wel importeren. De oplossing was dus om die "geinfecteerde" rijen te verwijderen. (Er stond gelukkig nog niets anders in)
De rijnummering wordt daarna automatisch weer opgelijnd en importeren is weer mogelijk.
Dank voor je antwoord.
Groetjes,
Ies


Commentaar van: Jan Karel Pieterse (1-10-2014 12:40:32) deeplink naar dit commentaar

Hoi Ies,

Mooi zo!


Commentaar van: Jeroen (17-12-2014 11:24:39) deeplink naar dit commentaar

Beste Jan Karel
Is het ook mogelijk bij het inlezen van een tekstbestand in excel (via een macro) alleen die regels in te lezen waarbij de inhoud van 1 kolom voldoet aan een bepaalde voorwaarde. Dus iets in de trant van:
"WHERE gemeentenummer = 200"
Alvast bedankt voor je reactie!
Jeroen


Commentaar van: Jan Karel Pieterse (17-12-2014 12:45:55) deeplink naar dit commentaar

Hoi Jeroen,

Ja dat kan, maar dan moet je de gegevens inlezen via MSQuery en daar als bestandstype Tekst kiezen. Kan zijn dat je er een nieuwe gegevensverbinding voor moet opstellen.


Commentaar van: Gerard (18-12-2014 11:35:59) deeplink naar dit commentaar

Beste Jan Karel,
Zou je deze laatste vraag iets uitgebreider willen beantwoorden? Ik zou nl ook graag een filter wille zetten in een "connection". Ik begrijp dat dat niet kan, maar Kan MSquery niet vinden. Ikmaak gebruik van excel 2010. Zit dit onder de groep "Get external Data" daar heb ik tekst gekozen maar kom dan in een soortgelijke schermen als bij de connection. Nergens zie ik waar ik het filter kan plaatsen.


Commentaar van: Jan Karel Pieterse (18-12-2014 15:10:03) deeplink naar dit commentaar

Hoi Gerard,

Je klikt op Gegevens, Van Andere bronnen en dan Van MS Query.

Dan kies je <nieuwe gegevensbron> en klik je op OK

Vervolgens geef je je nieuwe bron een naam en kies je in de drop down eronder voor "Microsoft Text Driver (*.txt, *.csv)"
Klik op Verbinden en haal het vinkje weg bij "Huidige map" als je een andere map dan de standaard map gebruiken wilt.

Klik op "Opties" om nader te specificeren welk tekstbestand je wilt gaan importeren. Kies een formaat en klik op "Opmaak definieren" (of zo, ik heb een Engelse versie van MS Query) en stel alles in.
Mij lukte het alleen zo niet omdat ik geen geschikte bestanden had.


Commentaar van: Gerard (19-12-2014 19:06:33) deeplink naar dit commentaar

Hartelijk dank voor de snelle reactie. Dat is inderdaad wel wat ik gedaan heb.
Maar onderstaand voorbeeld wat ik als document1.csv opgeslagen heb, wordt door MS query niet met kolommen geopend, er wordt niets met de ; gedaan. Alles komt in kolom A cel 1 tm 3 te staan, ipv kolom A tm C.
(De filter zou dan op kolom B <> leeg komen te staan.)
Enig idee wat ik niet goed doe?

Voorbeeld csv tekst:

kolom1;kolom2;kolom3
10;20;30
20;;58


Commentaar van: Jan Karel Pieterse (19-12-2014 22:12:36) deeplink naar dit commentaar

Hoi Gerard,

MSQuery is inderdaad niet erg handig mbt impoteren van tekstbestanden, het viel mij ook tegen. Misschien dat dit beter gaat via msAccess? Dus importeren in Access, daarna is filteren vanuit Excel simpel.


Commentaar van: Antoine (1-1-2015 14:43:53) deeplink naar dit commentaar

Goedemiddag Jan Karel, ik heb jouw stappenplan gevolgd, maar het lukt mij niet om de csv bestanden boven elkaar gevoegd te krijgen.
Excel maakt nieuwe kolommen in plaats van nieuwe rijen. Ik alle 3 de opties bij "eigenschappen gegevens bereik" geprobeerd. En heb gekozen voor bestaand werkblad bereik =$A$1. Wat doe ik verkeerd? Ik gebruik office 365


Commentaar van: Jan Karel Pieterse (4-1-2015 15:54:14) deeplink naar dit commentaar

Hoi Antoine,

Kan je uitleggen wat je bedoelt? Met het voorbeeld op deze pagina kan je alleen gegevens van meerdere CSV's onder elkaar krijgen met hulp van wat VBA die de connectie steeds aanpast, vernieuwd en dan de gegevens naar een ander tabblad kopieert. Volgens mij staat er op de engelse variant van deze pagina we ergens een voorbeeld in de commentaren:
https://jkp-ads.com/Articles/importtext.asp?AllComments=True


Commentaar van: Patrick Van Den Noortgaete (14-4-2015 11:30:08) deeplink naar dit commentaar

Hallo,

Vanop een site word een CSV bestand gedownload mat als decimaal teken "." en géén duizendtal-scheidingsteken.
Het zijn getallen (decimale graden).

Van zodra ik het bestand open converteert EXCEL het decimale teken van "." naar komma "," conform aan de LANDENINSTELLING.

EXCEL zet dan ook automatisch een punt als scheidingsteken voor de 1000-tallen.
Het helpt niet om dat veld BLANCO te laten in de instellingen van EXCEL, want ik wil géén scheidingsteken, het zijn decimale graden.

Ik voeg er wat data aan toe, en dan moet ik die file terug uploaden naar die site met "." als decimaal teken, dus als getallen (graden) en niet als tekst.

Maar dat gaat niet want EXCEL laat niet toe om voor die ene file de LANDENINSTELLINGEN aan te passen. Dat moet op WINDOWS niveau gebeuren, maar dan veranderen al mijn files.

Ik kan het omzeilen door een 2° gebruiker aan te maken met andere LANDENINSTELLINGEN en daar te werken, maar dit is niet zo praktisch.

Enige suggestie?


Commentaar van: Jan Karel Pieterse (14-4-2015 11:57:02) deeplink naar dit commentaar

Hallo Patrick,

Dat gaat inderdaad niet anders tenzij je VBA gebruikt zoals Dick Kusleika hier laat zien:

http://dailydoseofexcel.com/archives/2004/11/09/roll-your-own-csv/


Commentaar van: Pepita (15-4-2015 13:34:31) deeplink naar dit commentaar

Wat een lifesaver deze instructie....

Dankjewel.

Pepita


Commentaar van: Martijn Oomen (22-5-2016 21:22:56) deeplink naar dit commentaar

Ik ondervind een probleem bij de import van een CSV document in Excel.
Hopelijk kun je mij hierbij helpen.

Nadat ik mijn contacten heb geëxporteerd vanuit Outlook (CSV) lukt het mij niet deze op een goede manier te importeren in Excel.
Het probleem zit hem in het veld "notities" in Outlook.
Bij vele contacten in mijn outlook staat hier veel tekst (meerdere regels).
Ik gebruik dit veld om data van klanten in bij te houden (korte omschrijving van elk contact).
Nu krijg ik dit veld met geen mogelijkheid op een correcte manier in Excel.
De eerste lijn komt in de juiste cel maar vanaf dan gaat het mis.
Alle andere lijnen komen als aparte nieuwe lijnen in Excel te staan.
Op deze manier kan ik er niets mee doen.

Is er een manier om het veld "notities" vanuit outlook in één cel van een Excel werkblad te krijgen?

Bij voorbaat dank!


Commentaar van: Jan Karel Pieterse (23-5-2016 09:23:19) deeplink naar dit commentaar

Hoi Martijn,

Kan je mij een (anoniem gemaakt) deel van die csv mailen (zie mail adres hieronder)?


Commentaar van: Fons Pelzers (21-6-2016 15:03:49) deeplink naar dit commentaar

hoe kan je de lege kolommen en de kolom met een komma makkelijk kan verwijderen uit een csv bestand?


Commentaar van: Jan Karel Pieterse (21-6-2016 16:05:21) deeplink naar dit commentaar

Hoi Fons,

In stap 3 kan je per kolom aangeven of deze moet worden geimporteerd of niet.


Commentaar van: Sander Veldkamp (1-8-2016 13:12:16) deeplink naar dit commentaar

Is het ook mogelijk om van een csv bestand ook elke Nde rij in een aparte kolom te plaatsen ? Dus bijvoorbeeld rij 1,4,7,10,13, etc. in kolom 2 en rij 2,5,8,11, etc in kolom 3 en rij 3,6,9,12,etc. in kolom 3 ?


Commentaar van: Jan Karel Pieterse (3-8-2016 11:42:51) deeplink naar dit commentaar

Hoi Sander,

Met deze functionaliteit gaat dit niet eenvoudig. Je zou eens naar POwerQuery (Get and Transform) moeten kijken, daar gaat het wel mee denk ik.
Of een VBA macrootje maken die dit doet.


Commentaar van: daan (22-6-2017 11:55:25) deeplink naar dit commentaar

Office 365 heeft excel verandert. Als txt document is een file van bijv. behr.nl niet meer op te slaan als opslaan als maar het wordt bijv. 170620 NN Basic_Mat_php en is dan in excel als CSV bestand niet meer te importeren. Hoe moet dat??? Bij een download van bijv. ING krijgt men als datum bijv. 20170620 hoe maakt men hier bijvoorbeeld 20-06-2017 van


Commentaar van: Jan Karel Pieterse (22-6-2017 14:01:30) deeplink naar dit commentaar

Hoi Daan,

Ik begrijp de vraag even niet, kan je deze in kleinere deelproblemen opdelen en uitleggen?


Commentaar van: Philip (14-7-2017 09:19:15) deeplink naar dit commentaar

Weet iemand waarom onderstaande twee manieren om een bestand te openen een verschil opleveren in resultaat m.b.t. kolommen e.d.?

Onderstaande methode opent direct het bestand met verkeerde kolomindeling

strBestand = Application.GetOpenFilename
    Workbooks.Open Filename:=strBestand

Onderstaande methode opent meteen het bestand met alle kolommen goed...

Workbooks.Open Filename:= _
        "K:\BankNL template.csv"


Commentaar van: Jan Karel Pieterse (14-7-2017 16:18:18) deeplink naar dit commentaar

Hoi Philip,

Dat heeft te maken met het gegeven dat VBA "Amerikaans" spreekt, maar kennelijk niet altijd :-) Als je de techniek hierboven beschreven gebruikt, dan heb je dit probleem niet.


Commentaar van: Philip (17-7-2017 09:15:35) deeplink naar dit commentaar

Hoi Jan Karel,

Maar hoe kan ik met die methode "variabel" bestand openen? Ik wil elke dag een ander bestand openen waarbij de naam telkens veranderd, dat zie ik in bovenstaande methode niet terug komen. Daarnaast moeten meerdere mensen gebruik maken van deze macro.

groeten, Philip


Commentaar van: Jan Karel Pieterse (18-7-2017 21:46:32) deeplink naar dit commentaar

Hoi Philip,

Als je op vernieuwen klikt, dan zal Excel om een bestand vragen.


Commentaar van: Marco (25-7-2017 13:17:55) deeplink naar dit commentaar

ik heb txt bestanden met uniforme naamstellingen (alleen maandcode) is anders. voorbeeld "A001-Y17M01.txt" en "A001-Y17M02.txt". nu wil ik deze open met VBA , maar dan in een bestaand werkblad met de naam bij "Y17M01" (nu wordt er steeds een nieuw bestand met nieuw werkblad aangemaakt. Hoe kan ik dit het beste doen ?


Sub inlezen_KB__mnd()
    Sheets("Y17M01").Select
    Range("A1").Activate
    ChDir "L:\Boekhouding\KB_mnd\Y17"
    Workbooks.OpenText Filename:= _
        "L:\Boekhouding\Y17\A001-KB_export_M01_LAY760.txt" _
        , Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
    Columns("A:C").Select
    Columns("A:C").EntireColumn.AutoFit
    Range("A2").Select
End Sub


Commentaar van: Jan Karel Pieterse (13-8-2017 17:12:05) deeplink naar dit commentaar

Hoi Marco,

Is je vraag nog actueel?


Commentaar van: Krijn Boone (30-12-2019 22:08:00) deeplink naar dit commentaar

Geachte,
importeer al jaren de ING csv info in excel om zo mijn financien te beheren.
nu heb ik recent office 365 en kan ik voor het importeren niet meer kiezen vanaf welke regel.dus waar zit dat?
deze regel met kolomnamen is naderhand niet te verwijderen door mij, wat zie ik over het hoofd??
kan 365 wel zo instellen dat het op de "oude" manier gaat maar daar heb ik geen abonnement voor


Commentaar van: Jan Karel Pieterse (6-1-2020 11:48:00) deeplink naar dit commentaar

Hoi Krijn,

ALs je de oude text import wizard gebruikt zou dat nog gewoon moeten werken.


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: excelexperts.nl/forum/index.php.




Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].