Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1392to1396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leerstellen

Leerstellen
18.11.2014 13:10:22
Andreas
Hallo an alle Excel Freunde
ich möchte gern eine 10-stellige Zahl/Buchstabenkombination ( 3F123GR3Z5)
eingeben, Jedoch möchte ich diese Kombination mit 5 Leerstellen zwischen den einzelnen Zahlen/Buchstaben entzerren, weil es in eine Vorlage eingefügt wird.
Ich bekomme leider die Zellformation nicht gebacken.
Könnte mir jemand einen Tip geben, wie diese aussehen muss.
Danke im voraus.
mfg
Andreas

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerstellen
18.11.2014 13:14:25
Hajo_Zi
Hallo Andreas,
das ist Text und da geht keine Formatierung.
Gruß Hajo

AW: Leerstellen
18.11.2014 13:16:27
Rudi
Hallo,
Text kann man kein spezielles Format geben.
Gruß
Rudi

AW: Leerstellen
18.11.2014 13:20:30
Michael
Hallo Andreas!
Da ich nicht weiß, wie genau Du das in der Tabelle brauchst, hier ein (holpriger) Versuch, wie Du das erreichen kannst. Du benötigst eine Hilfsspalte: In Spalte 1 gibst Du Deine Kombination ein, in der Zelle daneben kannst Du folgende Formel eingeben: (in meinem Bsp. steht Deine Kombination in Zelle G15
=VERKETTEN(LINKS(G15;5);" ";" ";" ";" ";" ";RECHTS(G15;5))
So hast Du Deine eingegebene Kombination "optisch getrennt"
Gib Bescheid, ob Dir das hilft!
Michael

Anzeige
AW: Leerstellen
18.11.2014 13:46:09
Rudi
Hallo,
was sollen denn die vielen " ";?
=VERKETTEN(LINKS(A2;5);"     ";RECHTS(A2;5))
bzw.
=LINKS(A2;5) & "     " & RECHTS(A2;5)
Gruß
Rudi

AW: Leerstellen
18.11.2014 13:53:13
Michael
Hallo Rudi!
Danke für die Klärung. Da war ich etwas sparsam in meiner Erklärung: ich wollte damit eigentlich aufzeigen, dass "Verketten" hier mehrere Elemente aufnehmen kann, und Andreas sich hiermit evtl. noch andere Konstruktionen bauen kann, wenn gewünscht.
War gut gemeint, sorry! @ Andreas: Wenn's nur um 5 Leerzeichen geht, ist Rudis Variante selbstverständlich sinnvoller.
Michael

Anzeige
Man kann Texte nur formatieren, indem man ...
18.11.2014 13:48:05
Luc:-?
…den gewünschten Text, also so wie er im konkreten Fall aussehen soll, als benutzerdefiniertes Format mit 3 vorangestellten Semikolons einträgt, Andreas,
also hier zB ;;;"3 F 123 GR 3 Z 5" (was dann aber 6 Leerzeichen wären!).
Da dieser Vorschlag schon in der Vergangenheit abundzu gemacht wurde und deshalb auch im Archiv auffindbar ist, wundert es mich denn doch, dass diese Möglichkeit weitgehend unbekannt ist. Allerdings ist sie manuell unflexibel und sollte deshalb per VBA über das Worksheet_Change-Ereignis gesteuert wdn.
Eine andere Methode, falls die Buchstaben immer gleich blieben, wäre es, nur die Ziffern als Zahl zu verwenden und die Buchstaben erst mit dem benutzerdefinierten Format einzufügen. Würde man dann aber das sichtbare Ergebnis als Text (für Vgle u.ä.) benötigen, müsste per VBA der Zell.Text ausgelesen wdn, aus dem dann ggf auch noch die Leerzeichen entfernt wdn müssten.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Man kann Texte nur formatieren, indem man ...
18.11.2014 13:57:00
Andreas
Hallo an Alle, die mir dazun geschrieben haben.
Ich wußte nicht, das man Zellen mit Buchstaben nicht formatieren kann.
Die fünf Leerzeichen sollen auch zwischen jeder einzelnen Zahl oder Buchstabe vorhanden sein
( 1.....D.....1.....2.....H.....B..... usw.)
Da sich die Buchstaben immer in Anzahl und Ort der 10-stelligen Kombination ändert
werde ich diese doch wohl die nächsten 20 Jahre (so lange muss ich noch) weiterhin so von Hand eingeben.
Ich danke Euch allen für die Mühen und die zahlreichen Antworten.
einen schönen Tag noch
Andreas

und warum keine normale Eingabe ..:
18.11.2014 15:02:39
neopa
Hallo Andreas,
... also die 10 Zeichen hintereinanderweg in einer "Eingabehilfsspalte" und die Eingabe-Ergebnisspalte mit einer Formel erzeugen?
Angenommen die "Eingabehilfsspalte" wäre Spalte E dann in die "Eingabe-Ergebnisspalte" folgende Formel:
in der ersten Zeile:
=WECHSELN(LINKS(E1;1)&"#"&TEIL(E1;2;1)&"#"&TEIL(E1;3;1)&"#"& ... &TEIL(E1;10;1);"#";" ")
Für die drei Punkte musst natürlich noch die Formelergänzung für Zeichen 4 bis 9 vornehmen.
Gruß Werner
.. , - ...

Anzeige
AW: und warum keine normale Eingabe ..:
18.11.2014 15:18:25
Andreas
Hallo Werner
also "Hut ab".
Funktioniert einwandfrei. Danke für deine Mühen.
Das erleichert die Arbeit doch auf die Dauer.
ich wünsche eine schönen Tag noch.
Andreas - Danke nochmal

Na, da hatten wir dich ja ziemlich miss- ...
18.11.2014 16:15:42
Luc:-?
…verstanden, Andreas;
da es ja nur um das zeichen­gerechte Positionieren in einem Formular geht, muss ja nichts formatiert, sondern nur erzeugt wdn. Also reichen die angegebenen Fml-Lösungen (speziell von Werner mit Ergebniszellen) oder Rudis DirektLösung am Original.
Falls eine kürzere Fml-Lösung unter Einsatz auch anderweitig nutzbarer universeller UDFs interessant wäre, könnte die zB so aussehen: =VJoin(Sprite(A1;"");WIEDERHOLEN(" ";5))
Hier könnte natürlich auch gleich 5 Leerzeichen statt WIEDERHOLEN(" ";5) und die universellere UDF MxJoin (im Archiv zu finden) verwendet wdn. Ansonsten folgende PgmCodes in ein allgemeines Modul (Einfügen - Modul) des (VBA-)Projekts kopieren:
Rem Verbinden aller Elemente eines beliebigen Vektors
'   Vs1.0 -LSr -cd:20130904 -1pub:20130905herber -lupd:20130904t
Function VJoin(Bezug, Optional ByVal BindeZ As String = " ")
On Error Resume Next
With WorksheetFunction
If TypeName(Bezug) = "Range" Then
Bezug = .Transpose(.Transpose(Bezug))
End If
If IsError(LBound(Bezug, 2)) Then
VJoin = Join(Bezug, BindeZ)
Else: Bezug = .Transpose(Bezug)
If IsError(LBound(Bezug, 2)) Then
VJoin = Join(Bezug, BindeZ)
Else: VJoin = CVErr(xlErrRef)
End If
End If
End With
End Function

Rem F18: udF erzeugt aus TextBezug(sVektor) m.def TrennZch 1 ZeilVekt(bzw 1 Matrix)Feld
'   Auf volle MxFmlFähigk b.diff QuellTxt u.Verarbeit v.MxKonstt in Textform erweiterte
'   VarKomb d.xxlFktt Splint u.TransFor aus xlAddIn FXsubset v.Autor LSr[CyWorXxl.FXss]
'   Vs2.3 -Autor: LSr -CDate: 20070427 -1Pub: 20070428 herber.de (1.2) -lUpD: 20110810n
Function Sprite(ByVal Bezug, Optional ByVal TrennZ As String = " ")
Const orMxKlTr As String = "{ , ; }"
Dim s As Long, z As Long, i As Integer, n As Integer, arvErg(), ZwErg As Variant, _
DzTr As String, LiTr As String, MxKl(1) As String, MxTr(1) As String, arvBez
On Error Resume Next
With Application
DzTr = .International(xlDecimalSeparator)
LiTr = .International(xlListSeparator)
MxKl(0) = .International(xlLeftBrace)
MxKl(1) = .International(xlRightBrace)
MxTr(0) = .International(xlColumnSeparator)
MxTr(1) = .International(xlRowSeparator)
End With
If IsArray(Bezug) Then
arvBez = Bezug
If TypeName(arvBez) = "Range" Then
ReDim arvErg(arvBez.Cells.Count - 1, 0)
ElseIf IsError(LBound(arvBez, 2)) Then
ReDim arvErg(UBound(arvBez) - LBound(arvBez), 0)
ElseIf UBound(arvBez, 2) = LBound(arvBez, 2) Then
arvBez = WorksheetFunction.Transpose(arvBez)
If IsError(LBound(arvBez, 2)) Then
ReDim arvErg(UBound(arvBez) - LBound(arvBez), 0)
Else: Sprite = CVErr(xlErrRef): Exit Function
End If
Else: ReDim arvErg(UBound(arvBez) - LBound(arvBez), 0)
End If
For Each Bezug In arvBez
GoSub eb: ZwErg = Sprite
If UBound(ZwErg) > UBound(arvErg, 2) Then _
ReDim Preserve arvErg(UBound(arvErg, 1), UBound(ZwErg))
For s = 0 To UBound(ZwErg)
arvErg(z, s) = ZwErg(s)
Next s
z = z + 1
Next Bezug
Sprite = arvErg: Exit Function
End If
eb: If Left(Bezug, 1) = MxKl(0) And Right(Bezug, 1) = MxKl(1) Then
If TrennZ = "" Then
If Mid(Bezug, 2, 1) = """" Then
i = 3: n = 2: TrennZ = """" & MxTr(0) & """"
ElseIf IsNumeric(Mid(Bezug, 2, Len(Bezug) - 2)) Then
i = 2: n = 1: TrennZ = MxTr(0)
Else: Bezug = MxKl(0) & """" & Mid(Bezug, 2, Len(Bezug) - 2) & _
"""" & MxKl(1): i = 3: n = 2
TrennZ = """" & MxTr(0) & """"
End If
While i 
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Na, da hatten wir dich ja ziemlich miss- ...
18.11.2014 16:21:39
Andreas
Hallo Luc
wenn ihr mich missverstanden habt, tut es mir leid, war nicht die Absicht.
Ich habe mich bestimmt auch falsch ausgedrückt.
Da ich in VBA nicht zurecht komme, ist mir die Lösung von Werner recht angenehm.
Trotzdem danke ich dir für Deine Hilfe und Mühe, aber mit deiner Ausführrung
wäre ich restlich überfordert.
Schönen Abende noch
Andreas

Nett, dass du mir auch noch mal antwortest, ...
18.11.2014 16:56:46
Luc:-?
…Andreas,
leider aber nicht Rudi, für dessen Lösung ich mal ebenfalls Überforderung deinerseits annehmen will. ;-)
Es ist in Xl leider so, dass es MS bisher nicht für nötig hielt, manche Fktt, die es in anderer Software und auch in VBA gibt, in Xl zu implementieren, was besonders auf textver­arbeitende Fktt zutrifft. Deshalb ist man nicht schlecht beraten, wenn man sich ein kleines Arsenal in VBA pgmierter sog UDFs zulegt. Allerdings sollte man dann nicht Mappen mit Fmln, die diese enthalten, an Dritte, die nicht über diese UDFs verfügen, weitergeben (sind die UDFs in der Mappe mit ihren Pgmm enthalten, ist das nur dann ein Problem, wenn der Empfänger nicht über VBA verfügen kann/darf). Diese Fmln sollten dann zuvor durch ihre Ergebnisse ersetzt wdn.
Luc :-?

Anzeige
AW: Leerstellen per VBA
18.11.2014 15:23:11
Rudi
Hallo,
für den markierten Bereich:
Sub aaaa()
Dim bytIn() As Byte, strOut As String, i As Integer, rngC As Range
For Each rngC In Selection
strOut = ""
bytIn = rngC.Text
For i = 0 To UBound(bytIn) Step 2
strOut = strOut & String(5, " ") & Chr(bytIn(i))
Next
rngC = Mid(strOut, 6)
Next
End Sub

Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige