Avatar billede Katharina Juniormester
28. januar 2016 - 12:28 Der er 11 kommentarer og
1 løsning

Excel 2010/2016: Konverter tekst til kolonner sletter data

Hej,

Jeg har en masse data, som er delt med linjeskift. Teksten på hvert linjeskift vil jeg gerne have over i en ny celle i en ny kolonne.
Jeg har derfor erstattet linjeskift (alt+010) med €, hvorefter jeg ville benytte funktionen "Tekst til kolonner" med afgrænset opdeling på €.
Men når jeg benytter denne funktion sletter den al data, der står efter det første €-tegn og jeg ender ud med kun at have én kolonne med mangelfulde data.

Jeg kan ikke gennemskue, hvad det er jeg gør galt. Det er en funktion jeg har brugt virkelig mange gange før og jeg har aldrig oplevet dette problem tidligere.

Jeg har både forsøgt mig i Excel 2010 og 2016. Og jeg har også forsøgt at benytte komma til opdeling i stedet for €-tegn.

Er der nogen, der kan hjælpe? :)
Avatar billede supertekst Ekspert
28. januar 2016 - 13:17 #1
Demo:
I celle A1 er der indtastet aaaaaaaaaaa Alt+Cr bbbbbb Alt+Cr ccccc


Dim tekst As String, tabel As Variant, x As Integer
Sub opdel()
    tekst = Range("A1")
    tabel = Split(tekst, Chr(10))
   
    For x = 0 To UBound(tabel)
        MsgBox tabel(x)      'alle dele vises på skift
    Next x
End Sub
Avatar billede Katharina Juniormester
28. januar 2016 - 13:29 #2
Tak for svar, men jeg må nok indrømme, at jeg ikke helt forstår, hvordan jeg skal bruge ovenstående?? :)
Avatar billede supertekst Ekspert
28. januar 2016 - 13:38 #3
Du er måske ikke vant til at anvende makroer?
Avatar billede supertekst Ekspert
28. januar 2016 - 13:50 #4
Prøv at sende en fil med en opbygning, der ligner den virkelige - så skal jeg indlægge en makro.
@-adresse under min profil - hvis du er interesseret.
Avatar billede Michael B. Bom Juniormester
28. januar 2016 - 14:09 #5
Følger med

- tænker at teksten enten ønskes samlet i en "lang" tekststreng i B1 og/eller B1; C1; D1; osv. afhængigt af antallet af linieskift
Avatar billede Katharina Juniormester
28. januar 2016 - 14:17 #6
Nej, desværre ikke. Men det vil jeg meget gerne, tak! :) Jeg sender den med det samme.
Avatar billede Katharina Juniormester
28. januar 2016 - 14:23 #7
Så er den sendt :)

Og ja, i B1, C1, D1 osv. :)
Avatar billede supertekst Ekspert
28. januar 2016 - 15:11 #8
Den rigtige VBA-kode

Option Explicit

Dim antalRækker As Integer, ræk As Integer
Dim tekst As String, tabel As Variant, x As Integer
Sub opdel()
    Application.ScreenUpdating = False
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
   
    For ræk = 2 To antalRækker
        tekst = Range("B" & ræk)
        tabel = Split(tekst, ",")
   
        For x = 0 To UBound(tabel)
            Range("C" & ræk).Offset(0, x) = tabel(x)
        Next x
    Next ræk
End Sub
Avatar billede Michael B. Bom Juniormester
28. januar 2016 - 15:49 #9
Med tekst i A1, og A1 som active cell i regneark = ikke noget resultat i B1; C1 osv
Avatar billede supertekst Ekspert
28. januar 2016 - 15:58 #10
#9: I ovennævnte løsning var udgangspunktet kolonne B, da A indeholdt anden information.
Det kommer jo også an på skilletegnet.
Avatar billede Katharina Juniormester
29. januar 2016 - 08:37 #11
Så fik jeg også afgivet point. :)

Igen tusind tak for hjælpen :)
Avatar billede supertekst Ekspert
29. januar 2016 - 08:44 #12
Velbekomme...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester