• 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.

Tekst bestand naar kolommen

Status
Niet open voor verdere reacties.

Georgyboy

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

Mijn éérste probeersel om tekst naar kolommen te plaatsen.
weet dat dit véél korter en beter kan, maar het is een begin en wil daar nog véél in leren, wat hier kan :)

Graag leer ik bij indien mogelijk hoe het beter kan.

Het tekst bestand komt uit een ERP systeem waar je kan opslaan als tekstbestand of via het klembord plakken in Excel.
De tabel kan afhankelijk van het tekstbestand meer of minder kolommen bevatten alsook meer of minder rijen.

Code:
Sub Txt_Naar_Tabel()

[Tabel!A2] = [tekst!a3]
[Tabel!A4] = [tekst!a5]

[Tabel!A6] = [tekst!a6]

  Range("A6:A6").TextToColumns _
        DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(26, 1), Array(47, 1), Array(69, 1)), _
        TrailingMinusNumbers:=True



 Worksheets("tekst").Range("A22:a30").Copy Worksheets("tabel").Range("A10:a18")

Range("A10:A18").TextToColumns _
        DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(4, 1), Array(12, 1), Array(22, 1), Array(29, 1), _
        Array(33, 1), Array(74, 1), Array(83, 1), Array(88, 1)), TrailingMinusNumbers:=True

Columns("a:i").EntireColumn.AutoFit
End Sub

Alvast bedankt!
Alle tips ter verbetering en extra kennis is van ganser harte welkom.

Met vriendelijke groeten,
Georgyboy
 

Bijlagen

Het voorbeeldbestand klopt niet met de geplaatste code. Waarom er nog steeds mensen/bedrijven zijn die een soort van print lay-out informatie willen maken ontgaat mij. Vraag gewoon de informatie uit welk systeem dan ook op in een tabelvorm. Als een rapport gegeneerd kan worden dan is de onderliggende data bekend en kan dan ook gewoon geëxporteerd worden.
 
Goedemorgen,

Het is een Pervasive databases basis waar we sommige documenten via klembord als tabel kunnen exporteren, maar dit document kan enkel als TXT
en bewerken in excel of word of ........

Daarmee is extra kennis makkelijk voor zulke documenten te kunnen bewerken.

Mvg Georgyboy
 
Waar gaat het dan precies mis in je code?
 
Code:
Sub M_snb()
  Blad1.Columns(1).Replace "=", ""
  Blad1.Columns(1).Replace "-", ""
  Blad1.Columns(1).Replace "  ", ";"

  Do
    Blad1.Columns(1).Replace ";;", ";"
  Loop Until Blad1.Columns(1).Find(";;") Is Nothing
    
  Blad1.Columns(1).TextToColumns , , , -1, 0, -1, 0, 0, 0
End Sub
 
Laatst bewerkt:
Dank om te willen helpen :)

De bedoeling is om alles beter te kunnen begrijpen en gelijkaardige tekstbestanden zelf te kunnen bewerken.

In bijlage tabbladen gewenst, gewenst(2), gewenst(3) dit zijn enkele voorbeelden van hoe ik wil leren begrijpen om het zelf te kunnen. Andere opmaken ook natuurlijk welkom.

De code die ik heb gemaakt werkt deels goed maar ik denk dat dit véél korter kan.
Stel dat er een recept is met 20 rijen ipv van 5 dan zal dit niet lukken, vermoed dat dan ergens
HTML:
"Cells(Rows.Count, 1).End(xlUp).Row"
zal moeten gebruikt worden.

Graag wil ik ook de array begrijpen vb.
HTML:
FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(18, 1), Array(29, 1), Array(33, 1), _
        Array(65, 1), Array(83, 1), Array(88, 1)), TrailingMinusNumbers:=True

Hoop alles beter te kunnen begrijpen en daardoor ook voor andere personen nuttig te kunnen zijn.

@ snb
dank voor je véél kortere code :)
Misschien met aanpassing kan onderstaande er beter uitzien, ik zal graag je hulp nog eens vragen en er uiteraard weer kan van leren.
;25,000 kg;25,000 KG; VARKENSBUIK VOOR GEHA KT;8010100;96,48 %;

Nogmaals het is de bedoeling om alles beter te begrijpen en mijn dank is groot met alle tips op dit goede forum. :thumb:
Alvast bedankt
 

Bijlagen

Je kunt veel beter het tekstbestand plaatsen.
 
Afhankelijk van je Excel/Windows versie:

Code:
Sub M_snb()
   sn = Filter(Filter(Filter(Filter(Filter(Filter(Filter(Filter(Split(Replace(Replace(Application.Trim(CreateObject("scripting.filesystemobject").opentextfile("G:\OF\__tekst_24-05-2021.txt").readall), vbCrLf & " ", vbCrLf), ",", "."), vbCrLf), "=", 0), "-", 0), "XXX", 0), "Opm", 0), "Pag", 0), "Recept ", 0), "Prod", 0), "Week", 0)
   For j = 0 To UBound(sn)
      If sn(j) = "" Then sn(j) = "~"
      If InStr(sn(j), "%") Then sn(j) = Replace(sn(j), " ", ";")
      If InStr(sn(j), ":") Then sn(j) = Replace(Replace(Replace(sn(j), ": ", ":_"), " ", ";"), "_", " ")
      If sn(j) = "Recept" Then sn(j) = "~"
    Next
    sn = Filter(sn, "~", 0)
    CreateObject("scripting.filesystemobject").createtextfile("G:\OF\recept.csv").write Join(sn, vbLf)

    Sheets.Add , Sheets(Sheets.Count), , "G:\OF\recept.csv"
End Sub
 
Dankjewel snb, :thumb:

Zelf Uw opmerkingen kunnen aanpassen :)

In bijlage via:
1) Vba code
2) in excel gegevens naar kolommen

Dit helpt me weer een stuk verder :thumb:
 

Bijlagen

  • Teksbestand naar excel 24-05-2021.jpg
    Teksbestand naar excel 24-05-2021.jpg
    59,6 KB · Weergaven: 26
  • tekstbestand naar kolommen 21-05-2021.jpg
    tekstbestand naar kolommen 21-05-2021.jpg
    69,5 KB · Weergaven: 23
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan