Ga naar inhoud

excel - lange tekst afbreken naar extra cel


Anoniem2

Aanbevolen berichten

Net nieuw als member en eerlijk gezegd omdat ik hulp kan gebruiken met een excel probleem.\r\n\r\nIk heb in excel een database met in een bepaalde kolom te lange tekst (max 50 karakters). Mijn vraag is of iemand mij kan uitleggen hoe ik tekst kan afbreken en kan verplaatsen naar een volgende cel.\r\n\r\nHet liefst wil ik dan hele woorden houden, dus afbreken op de laatste spatie voor de 50e karakter en de tekst door laten gaan op bijvoorbeelde de cel eronder. Dus geen terugloop in een cel, want ik ben gebonden aan een maximale tekst van 50 karakters.\r\n\r\nBen benieuwd of iemand dit aan mij kan uitleggen. Daarbij misschien handig te melden dat ik weliswaar veel met excel werk, maar VBA helaas niet (kopieer ik soms om iets aan te passen zodat het hopelijk werkt.\r\n\r\nAlvast bedankt voor uw reactie.\r\nmvrgr\r\nRemco
Link naar reactie
[CODE]\n\nPrivate Sub CommandButton1_Click()\n01)Do\n02) regel = regel + 1\n03) If Cells(regel, 1) = \"\" Then Exit Sub\n04) tekst = Cells(regel, 1)\n05) Cells(regel, 4) = Len(tekst)\n06) If Len(tekst) > 10 Then\n07) For teken = 11 To 1 Step -1\n08) If Mid$(tekst, teken, 1) = \" \" Then\n09) Cells(regel, 1) = Left$(tekst, teken-1)\n10) Cells(regel, 2) = Right$(tekst, Len(tekst) - (teken-1))\n11) Cells(regel, 3) = teken\n12) Exit For\n13) End If\n14) Next\n15) End If\n16)Loop\nEnd Sub\n[/CODE]Dit stukje code zou moeten doen wat jij wilt. Ik heb er even regelnummers voorgezet, voor het gemak. \n\nIk ben er even vanuit gegaan dat er altijd tekst in de kolom staat, en wanneer er geen tekst in staat hij moet stoppen\n\nUitleg: \n1) begin van de loop\n2) Verhoogt regel, zodat hij de volgende regel pakt\n3) Kijkt of cel leeg is. Zo ja Verlaat hij de sub, einde macro\n4) Zet de tekst van de cel in de variabele tekst\n5) zet de lengte van de tekst in kolom D (is voor testen)\n6) Als de lengte van tekst>10 moet hij doorgaan op de volgende regel, anders doorgaan op regel 16\n7) hier begint een loop die bekijkt vanaf teken 11 tot teken 1, of het een spatie is. (ik begin op teken 11, omdat, als teken 11 een spatie is, teken 1 t/m 10 in cel 1 komt, en de rest in cel 2) . Door de step -1 gaat hij tergzoeken van het 11de teken, naar teken 1. \n8 ) Als het een spatie is ga door op de volgende regel, ga anders verder na regel 13\n9) Hier pakt hij het eerste stukje tekst, zonder de spatie (zou je de -1 weglaten pakt hij de spatie mee, en zou je 11 tekens kunnen krijgen, wat ongewenst is), en zet dat in cel 1\n10) Hier pakt hij de rest, met de spatie(zou je de -1 weglaten laat hij de spatie weg), en zet dat in cel 2\n11) test regel, zet neer op welk teken in de regel hij splitst (weglaten) \n12) Omdat de regel gesplitst is, kan hij de for/next van regel 7 verlaten door te springen naar regel 15\n13) einde van de if op regel 8\n14) Ga weer terug naar regel 7 en pak het volgende teken\n15) Einde van de if op regel 6\n16) Ga terug naar regel 1.\n\nAls je het wil laten afbreken op teken 50, verander je de 10 in regel 6 naar 50, en de 11 in regel 7 naar 51. Vergeet niet om regel 4 en 11 eruit te halen :)\n\nEen excel sheet met een voorbeeld kan je hier downloaden [URL=\"http://natuurpics.nl/zooi/splitsen.xlsm\"]splitsen.xlsm[/URL]\n\nSucces, en laat even weten of het gelukt is
Link naar reactie
Goede morgen Marc,\r\n\r\nLaat ik beginnen te zeggen dat ik het alleraardigst vind dat je de tijd en moeite hebt genomen om mij zo\'n uitgebreid antwoord te sturen! Dat alleen al maakt me blij :)\r\n\r\nIk kan niet wachten om het te testen, doch moet me eerst door een paar dozijn emails worstelen hier op mijn werk. Nogmaals, ik vind het heerlijk om met excel te werken en ben blij dat ik deze hobby kan toepassen in mijn werk. Maar na zo\'n 15 jaar excel loop ik vast op visual basic taal waar ik niets van begrijp, maar dolgraag zou willen leren. Dus je gedetaileerde uitleg waardeer ik zeer. Hartelijk dank en ik kom er eind van de dag op terug zodra ik het heb kunnen uitproberen.\r\n\r\nMet vriendelijke groet,\r\nRemco
Link naar reactie
Beste Marc,\r\n\r\nMijn verontschuldiging voor deze late reactie. Door griep geveld en erg druk op mijn werk heeft mij nog altijd belemmerd goed naar je formule te kijken en dat terwijl ik nog altijd erg nieuwsgierig ben of het in mijn spreadsheet werkt. Nog voordat ik het kan proberen heb ik eigenlijk nog een vraag: \r\nOp het tabblad waar de gegevens staan heb ik via een macro gegevens verplaatst naar een tweede tabblad. Van de kolom met de (nog te lange) tekst worden de cellen naar het tweede tabblad waarvan in de kolom ernaast een aantal is ingevuld. Nu is er echter nog een tweede kolom naast die originele tekst waarvan ik de gegevens ook wil verplaatsen (mits gevuld !) naar en extra cel onder de gekopieerde cel.\r\n\r\nZou je het heel erg vinden als ik mijn spreadsheet met je deel en dan uitleg wat ik bedoel? Ik hoop niet dat je het erg vind dat ik zo brutaal ben om het te vragen. Ik ben best trots op de huidige spreadsheet, maar met het inkorten van de tekst en deze extra regel toegevoeg zou het de meest geavenceerde spreadsheet zijn die ik ooit heb kunnen maken :)\r\n\r\nIk hoor het wel. Maar als het niet kan dan ben ik sowieso al erg dankbaar met je hulp zover.\r\n\r\nMet vriendelijke groet,\r\nRemco
Link naar reactie
zonder moeilijk te doen is volgens mij ook nog word wrap mogelijk\r\n\r\nhierdoor wordt de cel rij wel langer, maar de cel breedte blijft gelijk\r\n\r\nik werk met qp dus weet neit of het op dezelfde plek staat\r\n\r\ncel (cellen) selecteren\r\nrechtsklik\r\n\r\nceleigenschappen\r\n\r\ntabblad uitlijning\r\n\r\nbij tekst configuratie vinkje plaatsen bij terugloop
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...