• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tekstbestanden bewerken in excel

Status
Niet open voor verdere reacties.

Georgyboy

Terugkerende gebruiker
Lid geworden
6 jan 2007
Berichten
1.020
Besturingssysteem
Windows 11
Office versie
365
Goeiedag iedereen,

Ik zit met een vraag om grote excelbestanden in excel te bewerken.
Vroeger heb ik reeds die vraag gesteld en had niet echt een goed antwoord,
vermoedelijk omdat kzelf niet duidelijk genoeg was. (Mijn excuses daarvoor)

Zelf ben ik al dikwijls geholpen op dit fantastisch goed forum waar veel mensen
zich hard inzetten om anderen (zoals ik) te helpen. bedankt allen !!!!

In bijlage een vereenvoudigd tekstbestand met reeds gewiste rijen, spaties, etc.
In het voorbeeld gaat dit om een klein aantal geselecteerde gegevens, meestal
is dit 100 x groter.

Reeds gedaan = tekst naar kolommen via gegevens om spaties te wissen.
Dan via een een extra kolom gegevens invoegen (vb AAA) om in een andere kolom de
lege rijen, ==========, en ongewenste gegevens te wissen.
Dan de ingevoegde kolom met AAA terug wissen

Adres gegevens samenvoegen via filter + cel & cel & cel & cel.
Deze gegevens dan kopieren -> plakken speciaal -> waarden
Dan loopt het fout omdat ik maar enkele regels in de filter kan doortrekken.

Tablad 1 = tekstbestand
Tablad 2 = gewenste gegvens (reeds manueel ingevuld)

Hopelijk heeft iemand daar meer ervaring mee om dit snel
(met een macro of formules te kunnen omzetten)

Vele groeten
Georgyboy
 

Bijlagen

Ik verwerk de gegevens vanuit het txt-bestand (dat gaat het snelst).

Code:
Sub tst()
  Open "E:\george.txt" For Input As #1
    c0 = Input(LOF(1), #1)
  Close
  sq = Split(c0, "Debiteur" & Chr(9) & ":")
  For j = 1 To UBound(sq)
    sn = Filter(Split(sq(j), vbCrLf), Chr(9))
    st = Split(sn(0), Chr(9))
    c0 = Replace(Trim(st(0)), " ", "|") & "|" & st(UBound(st) - 1) & st(UBound(st))
    For jj = 1 To UBound(sn)
      sn(jj) = c0 & "|" & Replace(sn(jj), Chr(9), "|")
    Next
    c1 = c1 & Join(Filter(sn, "|"), vbCr) & vbCr
  Next
  sr = Split(c1, vbCr)
  With ThisWorkbook.Sheets("Blad1")
    .Cells(1, 1).Resize(UBound(sr)) = WorksheetFunction.Transpose(sr)
    .Columns(1).TextToColumns , xlDelimited, xlNone, False, False, False, False, False, True, "|"
End Sub
 
Beste Georgyboy ;)

Zie bestandje met formules.

Wat op tabblad Tekstbestand in het beige is gekleurd is het bereik met de formules.
Hetzelfde resultaat zoals op tabblad Gewenst.

Neem de eerste 2 rijen over en sleep dan vanaf rij 2 naar beneden.

Daarna moet je alles kopiëren en speciaal plakken en op waarden klikken.

Groetjes Danny. :thumb:
 

Bijlagen

Bedankt SNB en Danny, :)

Ik heb geprobeerd met Uw macro SNB en krijg een compileerfout
Bij c0

welliswaar getest op mijn groot bestand vanuit een txt bestand.

Code:
Sub tst()

  Open "d:\OMZET TXT.txt" For Input As #1
   [COLOR="Red"] c0[/COLOR] = Input(LOF(1), #1)
  Close
  sq = Split(c0, "Debiteur" & Chr(9) & ":")
  For j = 1 To UBound(sq)
    sn = Filter(Split(sq(j), vbCrLf), Chr(9))
    st = Split(sn(0), Chr(9))
    c0 = Replace(Trim(st(0)), " ", "|") & "|" & st(UBound(st) - 1) & st(UBound(st))
    For jj = 1 To UBound(sn)
      sn(jj) = c0 & "|" & Replace(sn(jj), Chr(9), "|")
    Next
    c1 = c1 & Join(Filter(sn, "|"), vbCr) & vbCr
  Next
  sr = Split(c1, vbCr)
  With ThisWorkbook.Sheets("Blad1")
    .Cells(1, 1).Resize(UBound(sr)) = WorksheetFunction.Transpose(sr)
    .Columns(1).TextToColumns , xlDelimited, xlNone, False, False, False, False, False, True, "|"
End Sub

End Sub

Danny wat Uw formules betreft zak ik wat tijd nodig hebben om dit te begrijpen, sorry maar zo knap als jullie ben ik niet! Meestal sta ik versteld van jullie kennis.

Voor een gewoon txt bestand om te zetten gaat dit vrij goed en is ook eenvoudig,
het is moeilijk wanneer rijen dien samengevoegd en dan in een extra kolom moeten staan.

Bedankt voor jullie hulpvaardigheid ! :thumb:

Groeten,
Georges
 
Beste Georgyboy ;)

Heb iets over het hoofd gezien denk ik :eek:

Bij debiteur heb ik debiteur geplaatst ipv cijfers Vb. 19, 58, 207 enz...

Als je dat graag wilt zal ik dan corigeren.

Groetjes Danny. :thumb:
 
Compileerfout:

verwijder 'Option Explicit'
 
Dag SNB,

'Option Explicit' = verwijderd

melding bij End sub

Er wordt End With verwacht

Danny als je graag die Debiteur verwijderd mag dit, maar ik wil ook niet teveel vragen.

Groeten,
Georgyboy
 
Beste Georgyboy ;)

Ziehier aangepast bestandje.

Zorg ervoor dat de debiteur nr. min. 2 cijfers en max. 3 cijfers zijn.

Groetjes Danny. :thumb:
 

Bijlagen

Bedankt voor je moeite Danny,

Nu nog de formule begrijpen !

Groeten,
Georges
 
Compileerfout:

verwijder 'Option Explicit'

Of dimensioneer de variabelen :p

Vooral bij grootschalige acties scheelt dit veel rekencapaciteit. Source van vba zal, indien niet gedimensioneerd een variabele behandelen als 'object' (of variant) en een aantal tests uitvoeren om te achterhalen wat voor datatype dit is. Daarnaast zijn gediminsioneerde variabelen vaak "kleiner" in RAM.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan