Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Tekst naar kolommen (recepten)  (gelezen 1872 keer)

0 leden en 1 gast bekijken dit topic.

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Tekst naar kolommen (recepten)
« Reactie #15 Gepost op: 15 december 2022, 14:15:47 »
Dankjewel Molly,

Werkt perfect  :)

Mijn antwoord op jouw vragen was niet duidelijk, sorry  0:-)

Citaat
beter zoeken in een bestand waar de tekstbestanden staan

Bedoelde dat ik beter één map zou aanmaken met daarin de tekstbestanden en de Excel met de VBA code.

Met jouw huidige code ben ik weer een hele stap verder  :)

Geprobeerd met de map tussen de haakjes te plaatsen, maar dit lukte niet!  :(
Citaat
.InitialFileName = ThisWorkbook.Path & "\"
Citaat
.InitialFileName = ThisWorkbook.Path & "C:\Users\FORUM_OPLOSSING"

Heb weer wat codetekst om op te zoeken en te begrijpen  :D

Groetjes,
Georgyboy

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: Tekst naar kolommen (recepten)
« Reactie #16 Gepost op: 15 december 2022, 14:23:02 »
Hallo Georgyboy,

Ik gok dat je dit wou proberen:
.InitialFileName = "C:\Users\FORUM_OPLOSSING\"
Mvg,
Molly

Edit: wel vreemd dat op je computer een gebruiker bestaat met de naam FORUM_OPLOSSING...
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Tekst naar kolommen (recepten)
« Reactie #17 Gepost op: 15 december 2022, 14:55:26 »
Goed gegokt  :)

Citaat
gebruiker bestaat met de naam FORUM_OPLOSSING
Niet vreemd hoor, is belangrijk en hecht er veel belang aan! Idem voor een ander forum en belangrijke oplossers.
In mijn stadium moet je dikwijls terugvallen op vorige oplossingen, altijd handig!  :D

Mvg Georgyboy

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: Tekst naar kolommen (recepten)
« Reactie #18 Gepost op: 15 december 2022, 15:55:50 »
Hallo Georgyboy,

Het is te zeggen, ik vind het zeker niet vreemd dat je heel wat voorbeelden e.d. bijhoudt, maar wel dat je ze onder USERS hebt staan, die map wordt daar meestal niet voor gebruikt (om het voorzichtig uit te drukken).
Ondertussen heb ik me nog even 'geamuseerd'. Er staan in je tekstbestanden zowel CR, LF als =-tekens. Ik mijn vorige versie was ik dat 'probleem' uit de weg gegaan door per rij in te lezen, maar ik werd daar eigenlijk een beetje :( van.
Daarom dus nog even verder gekeken en (kortere) versie 3 :D gemaakt.

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Tekst naar kolommen (recepten)
« Reactie #19 Gepost op: 15 december 2022, 18:29:24 »
Dankjewel Molly,

Het is iedere keer straffer en straffer  :)
Studie materiaal genoeg om alles onder de knie te krijgen  ;) O-O

Citaat
onder USERS hebt staan, die map wordt daar meestal niet voor gebruikt (om het voorzichtig uit te drukken)

Staat hier, weer goed opgemerkt  ;)
C:\Users\G.......\Documents\G......\FORUM_OPLOSSING\MollyVH

Mvg Georgyboy

Offline Margriet1932

  • Lid
  • *
  • Berichten: 43
  • Geslacht: Vrouw
  • Hey, ik ben nieuw hier !
Re: Tekst naar kolommen (recepten)
« Reactie #20 Gepost op: 16 december 2022, 00:17:43 »
je kan het anders direct met vbCrLf doen ...
 
tekst = Split(Input(LOF(1), 1), vbCrLf)

Offline Margriet1932

  • Lid
  • *
  • Berichten: 43
  • Geslacht: Vrouw
  • Hey, ik ben nieuw hier !
Re: Tekst naar kolommen (recepten)
« Reactie #21 Gepost op: 18 december 2022, 15:00:53 »
die transpose is eigenlijk overbodig en je loopt vast in het geval dat het aantal rijen uitloopt (+65.500).
Dus nog een beetje korter
Sub Maak_Recept()

     Set filekeuze = Application.FileDialog(msoFileDialogFilePicker)
     With filekeuze
          .InitialFileName = ThisWorkbook.Path & "\"
          .Filters.Clear
          .Filters.Add "text files", "*.txt"
          .AllowMultiSelect = False
          If .Show = True Then
               tekstfile = .SelectedItems(1)
          End If
     End With
     If tekstfile = "" Then Exit Sub
     Open tekstfile For Input As #1
     tekst = Split(Input(LOF(1), 1), vbCrLf)
     Close #1

     ReDim resultaat(1 To UBound(tekst), 1 To 4)
     For i = 1 To UBound(tekst)
          Select Case LCase(Left(tekst(i), 9))
               Case "grondstof": bRecept = True
               Case WorksheetFunction.Rept("-", 9): If bRecept Then Exit For
               Case Else
                    If bRecept And Len(tekst(i)) Then
                         ptr = ptr + 1
                         resultaat(ptr, 1) = Trim(Left(tekst(i), 35))
                         resultaat(ptr, 2) = Mid(tekst(i), 37, 8)
                         resultaat(ptr, 3) = Mid(tekst(i), 46, 14)
                         resultaat(ptr, 4) = Mid(tekst(i), 61, 7)
                    End If
          End Select
     Next i

     With Sheets("recept")
          .Columns("A:D").ClearContents
          .Cells(1, 1).Resize(, 4) = Array("Grondstof", "Artikel", "Gewicht", "%")
          .Cells(2, 1).Resize(ptr, 4) = resultaat
          .Columns("A:D").EntireColumn.AutoFit
     End With

End Sub

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Tekst naar kolommen (recepten)
« Reactie #22 Gepost op: 19 december 2022, 16:44:40 »
@Margriet1932,

Dank ook voor deze aangepaste versie :)

Vraagje hoe komt het dat het tabblad "recept" is ingevuld en er geen gegevens staan in het tabblad "blad1" ?

Alvast bedankt!

Groeten,
Georgyboy

Offline Margriet1932

  • Lid
  • *
  • Berichten: 43
  • Geslacht: Vrouw
  • Hey, ik ben nieuw hier !
Re: Tekst naar kolommen (recepten)
« Reactie #23 Gepost op: 19 december 2022, 18:15:14 »
goeie dag,
in Molly's macro wordt de gesplitste inhoud van dat csv-bestand getransponeerd (moest anders schreef he weg in de 1e rij ipv. de 1e kolom) weggeschreven naar blad1.
Daarna wordt, in dat tabblad, vanaf de 29e rij naar beneden gekeken voor een aaneensluitend blok van niet-lege cellen, dus het bereik van je recept, dus zonder die uitleg erachter. Dat bereik wordt terug getransponeerd en overschrijft de oorspronkelijke array "tekst" om verder te verwerken. Dat wegschrijven is mijns inziens dus eigenlijk een beetje voor niets, want je kon met de oorspronkelijke array eigenlijk ook al vanaf index 28 verder werken tot aan het einde van het recept.

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Tekst naar kolommen (recepten)
« Reactie #24 Gepost op: 19 december 2022, 20:20:03 »
@ Margriet1932

Heb het nu gezien, dit kan gewoon rechtsreeks in het tabblad "recept" zonder blad1 als tussenstap.
Weer iets bijgeleerd :)

Mag ik jullie allen bedanken voor alle mooie codes, jullie tijd en uitleg op mijn vraag.
Begrijp niet veel, maar helpt om het beter te begrijpen aan de hand van mij bekent voorbeeld.

Bedankt,  _/-\o_
@ MollyVH
@ Margriet1932
@ SoftAid

 


www.combell.com