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

lange zinnen/alinea b.v. 250 karakters, afbreken in werkbare zinsbreedtes voor excel

  • Onderwerp starter Onderwerp starter Ropw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Ropw

Gebruiker
Lid geworden
12 apr 2017
Berichten
192
regelmatig selecteer ik tekst uit PDF of Word bestanden met copy/paste of middels een CSV bestand. om in Excel verder een onderdeel te laten zijn.
Nou vind ik Ku Tools een prachtig middel, maar met Merge&Spit breekt hij midden in een woord af.

Daarentegen vond ik in dit forum een prachtige formule die niet midden in één woord afbreekt, alleen het vervolg van de zin in opvolgende rijen, kan ik
niet bedenken. Hopelijk schept bijgaand bestandje meer duidelijkheid.

Mijn wens is eigenlijk om zinnen/alinea tot een bruikbare tekst in Excel om te zetten.
bedankt alvast voor het meedenken.
 

Bijlagen

je kan een ersatz_***ool-function maken ...
Code:
Function Ersatz_***ools(tekst, lengte, Splitsen As Boolean)
     Dim s     As String
     Do While Len(tekst)
          i = InStrRev(tekst, " ", lengte)   'zoek achteruit vanaf karakter x naar een spatie
          If i = 0 Then                      'geen spaties meer in de tekst onder de x karakters
               If lengte <= Len(tekst) Then
                    i = lengte + 1
                    tekst = Left(tekst, lengte) & " " & Mid(tekst, lengte + 1)     'dan voeg je er zelf ééntje in
               Else
                    i = Len(tekst) + 1
               End If
          End If

          s = s & vbLf & Left(tekst, i - 1)  'stuk er af knippen
          tekst = Mid(tekst, i + 1)          'rest tekst
     Loop

     If Splitsen Then
          Ersatz_***ools = Application.Transpose(Split(Mid(s, 2), vbLf))     'over meerdere cellen onder elkaar splitsen
     Else
          Ersatz_***ools = Mid(s, 2)         'binnen dezelfde cel met terugloop
     End If
End Function

:o door de site wordt "K u Tools" (zonder spaties) weggecensureerd naar "***ools" :D
 

Bijlagen

Laatst bewerkt:
hartelijk dank Koe, Grandioos dit voldoet. Althans in het door jouw meegstuurde voorbeeldbestand werkt het perfect. Als ik de module overzet in mijn uiteindelijke Excel bestand en ik maak de formule Ersatz_K U Tools(A2;25;1) dan zie ik slechts 1 rij met ingekorte tekst, terwijl in jouw voorbeeld (met herhaling formule) de tekst goed gesplitst wordt op de volgende regels. Nog even aan het puzzelen om dit resultaat ook bij mij te evenaren.
 
je moet vermoedelijk in de celeigenschappen, de terugloop aanvinken en even linkerbovenhoek aanklikken zodat alles geselecteerd is, daarna even in linkerkantlijn met de cijfers van de rijen even op de onderkant van een bepaalde rij gaan staan en dan dubbleklikken, zodat de rijhoogtes zich automatisch aanpassen of een ander gelijkaardige actie uitvoeren.
 
dank Cow 18 voor de aanvullende suggestie
Helaas lukt het me nog niet. In jouw voorbeeldbestand kan ik ook de formule cellen niet verplaatsen of verwijderen (melding: U kunt een deel van een matrix niet wijzigen).
(Dat de tekst met terugloop, in 1 cel geplaatst wordt is voor mij niet nodig). Heb je nog een tip voor me?
 
Als die UDF het over meerdere cellen splitst, dan is het een "matrix"-formule en die zag er in de iets oudere versies (niet Excel365) uit met accolades er rond, dus {} en moest je afsluiten met CTRL+Shift+Enter. Behalve de eerste cel kan je daarin niets wijzigen, want die wil zelf zijn bereik bepalen. Dus het enige dat je rest is de 1e cel wissen of verplaatsen of transponeren als je die horizontaal zou willen bv. (wil je die altijd horizontaal, dan doe je dat beter in de macro zelf) of bv. met index werken als je 1 of meerdere elementen eruit wil vissen.
 
Na vele uren puzzelen , weet ik nu hoe het werkt. Onkunde van mij. Ik moet eerst een range definiëren en dan pas de formule in de cel intikken. Onwijs bedankt voor de mooie toepassing, cow18
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan