Avatar billede KenneyD71 Nybegynder
01. december 2014 - 11:20 Der er 6 kommentarer og
1 løsning

Automatisk tekstombrydning til x antal tegn.

jeg får løbende en række tekststrenge af diverse størrelser og længder, som jeg skal taste ind i et web-modul.
Det er ikke muligt at omkode web-modulet.

men er et muligt måske at lave en fix ting, der gør at jeg kan indtaste i en celle og så får jeg så leveret den samme tekst i en anden celle blot ombrudt i linier af 60 tegn (ombrudt for hvert hele ord naturligvis).
Avatar billede supertekst Ekspert
01. december 2014 - 14:05 #1
Nærmeste under eller over 60 tegn?
Avatar billede KenneyD71 Nybegynder
01. december 2014 - 15:11 #2
Nærmeste under 60 tegn.
Avatar billede jens48 Ekspert
01. december 2014 - 16:59 #3
Måske kan denne makro bruges

Sub LineShift()
Dim C As Range
Dim T As String
Dim Ttemp As String
For Each C In Range("D1:D12").Cells 'her vælges området med oprindelig tekst
Ttemp = C
T = ""
Do Until Len(Ttemp) = 0
If Len(C) < 60 Then
T = T & Ttemp
Ttemp = ""
Else
For x = 60 To 1 Step -1
If Mid(Ttemp, x, 1) = " " Then
y = x
GoTo A:
End If
Next
A:
T = T & Left(Ttemp, y)
Ttemp = Mid(Ttemp, y + 1, 9999)
If Len(Ttemp) > 60 Then
T = T & vbCrLf
End If
End If
Loop
C.Offset(0, 1) = T '1-tallet bestemmer at den ombrudte tekst står en kolonne til venstre for oprindelige tekst
Next C
End Sub
Avatar billede jens48 Ekspert
01. december 2014 - 17:04 #4
Rettelse til konmentaren i 4. sidste linie: til højre for oprindelige tekst
Avatar billede KenneyD71 Nybegynder
01. december 2014 - 20:14 #5
Det var præcis det jeg havde brug for, Jens.
Kopierer du ikke lige ind i et svar, så jeg kan give dig nogle point for det.

Mange tak.
Avatar billede KenneyD71 Nybegynder
01. december 2014 - 20:55 #6
Kan du evt justere i koden, så den først "retter teksten ud".
Nogle gange er teksten, der står i cellen allerede halvvejs ombrudt og det tror jeg måske vil få den til at se "fjollet" ud.
Avatar billede jens48 Ekspert
02. december 2014 - 07:07 #7
Sub LineShift()
Dim C As Range
Dim T As String
Dim Ttemp As String
For Each C In Range("D1:D12").Cells 'her vælges området med oprindelig tekst
Ttemp = C
Ttemp = Replace(C, Chr(10), " ")
Ttemp = Replace(Ttemp, "  ", " ")
T = ""
Do Until Len(Ttemp) = 0
If Len(C) < 60 Then
T = T & Ttemp
Ttemp = ""
Else
For x = 60 To 1 Step -1
If Mid(Ttemp, x, 1) = " " Then
y = x
GoTo A:
End If
Next
A:
T = T & Left(Ttemp, y)
Ttemp = Mid(Ttemp, y + 1, 9999)
If Len(Ttemp) > 60 Then
T = T & vbCrLf
End If
End If
Loop
C.Offset(0, 1) = T '1-tallet bestemmer at den ombrudte tekst står en kolonne til højre for oprindelige tekst
Next C
End Sub
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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