leerzeichen zählen, löschen und zelle verschieben

05/06/2008 - 10:42 von Marco | Report spam
Hallo NG,

Ich bekomme als Export aus einem anderen Programm Textzeilen, die
unterschiedlich weit eingerückt sind (mit einer geraden Anzahl an
Leerzeichen). Ich möchte nun, dass die Zellen in Abhàngigkeit von der
Anzahl Leerzeichen am Anfang des Strings nach rechts verschoben werden
(also wenn dem String zwei Leerstellen vorangehen um eine Zelle nach
rechts verschieben, bei vier Leerstellen um zwei Zellen, usw.).
Im Anschluss sollen noch die Leerstellen gelöscht werden.

Habe mich schon umgeschaut und das Zàhlen eines strings in einem
anderen sollte kein Problem sein. Es geht mir aber nur um die
Leerstellen am Anfang des strings. Spàtere Leerstellen sollen nicht
berücksichtigt werden.

Š A Š B Š
Š
"strukturname" Š
" Ebene 1a" Š
" Ebene 2a" Š
" Ebene 2b" Š
" Ebene 1b" Š

Die " gehören nicht zum string, sollen nur zeigen, dass es sich um
einen handelt.

soll werden zu:

Š A Š B Š C Š

"strukturname" Š
Š"Ebene 1a" Š
Š Š"Ebene 2a" Š
Š Š"Ebene 2b" Š
Š"Ebene 1b" Š

Dank euch schonmal für die Hilfe.

Gruss
Marco
 

Lesen sie die antworten

#1 Peter Schleif
05/06/2008 - 11:07 | Warnen spam
Marco schrieb am 05.06.2008 10:42 Uhr:

"strukturname" Š
" Ebene 1a" Š
" Ebene 2a" Š
" Ebene 2b" Š
" Ebene 1b" Š



Mit VBA ist es recht einfach.

Peter


Sub verschieben()
Dim z As Long

With CreateObject("VBScript.RegExp")
.Pattern = "(\ *)[^\ ].*"
For z = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(z, Int(Len(.Replace(Cells(z, "A"), "$1")) / 2) + 1) _
= Trim(Cells(z, "A"))
Next
End With
End Sub

Ähnliche fragen