Clever-Excel-Forum

Normale Version: Sonderzeichen soll alle Leerzeichen in einem String durchlaufen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo VBA-Denksportler,

ich habe folgendes Problem. Ein Sonderzeichen "#" soll nacheinander alle Leerzeichen in einem Satz durchlaufen. Das Ergebnis soll dann folgendermaßen aussehen:

Position 5 : Dies#ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 9 : Dies ist#ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 13 : Dies ist ein#Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 19 : Dies ist ein Satz,#in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 22 : Dies ist ein Satz, in#dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 26 : Dies ist ein Satz, in dem#ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 30 : Dies ist ein Satz, in dem ein#Sonderzeichen nacheinander alle Leerzeichen durchläuft.
Position 44 : Dies ist ein Satz, in dem ein Sonderzeichen#nacheinander alle Leerzeichen durchläuft.
Position 57 : Dies ist ein Satz, in dem ein Sonderzeichen nacheinander#alle Leerzeichen durchläuft.
Position 62 : Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle#Leerzeichen durchläuft.
Position 74 : Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen#durchläuft.

Wie kriege ich das auf die Reihe?
Moin

Wozu VBA wenn es mit zwei Formeln erledigt werden kann?
Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1 Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
25Dies#ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
39Dies ist#ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
413Dies ist ein#Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
519Dies ist ein Satz,#in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
622Dies ist ein Satz, in#dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
726Dies ist ein Satz, in dem#ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.
830Dies ist ein Satz, in dem ein#Sonderzeichen nacheinander alle Leerzeichen durchläuft.
944Dies ist ein Satz, in dem ein Sonderzeichen#nacheinander alle Leerzeichen durchläuft.
1057Dies ist ein Satz, in dem ein Sonderzeichen nacheinander#alle Leerzeichen durchläuft.
1162Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle#Leerzeichen durchläuft.
1274Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen#durchläuft.

ZelleFormel
A2=SUCHEN(" ";$B$1;A1+1)
B2=ERSETZEN(B$1;A2;1;"#")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Hallo,

eigentlich reicht schon das:


Code:
=WECHSELN($B$1;" ";"#";ZEILE(A1))
Hallo Leute,

also schon mal besten Dank für die beiden Formel-Vorschläge zur Lösung . Aber ich suche doch eine Lösung über VBA Code.
Hi,

(10.02.2016, 15:54)Schülerin schrieb: [ -> ]Aber ich suche doch eine Lösung über VBA Code.

das hattest Du nicht gesagt!
Hallo Ralf,

dann bitte ich vielmals um Entschuldigung. Aber man lernt ja auch aus den Formellösungen.
Hi!
Na, wenn Du daraus lernst, warum wendest Du die Formel von BoskoBiati nicht per VBA an?
Schau mal:

Sub NaDannSo()
Dim strSatz As String, iSpace As Long
strSatz = "Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
iSpace = Ubound(Split(strSatz))
Range("A1") = strSatz
With Range("A2:A" & iSpace + 1)
   .Formula = "=SUBSTITUTE(A$1,"" "",""#"",ROW(A1))"
   .Formula = .Value
   .EntireColumn.AutoFit
End With
End Sub

Gruß Ralf
Hallo Ralf,

schon mal vielen Dank. Aber wie sieht das Ganze aus wenn ich die einzelnen Werte mit Debug.print angeben will.
Ich muss auch zugeben, dass ich mich Excelformeln nun so gar nicht auskenne.
Hallo Schülerin,

hier noch eine Variante, die das Ergebnis mit Debug.Print ausgibt

PHP-Code:
Public Sub Durchlaufen()

Dim sText    As String
Dim iLaenge  As Integer
Dim iStart   
As IntegeriStart 
   
   sText 
"Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
 
  
   Debug
.Print sText
   
   
For iLaenge iStart To Len(sText)
 
     If Mid(sTextiLaenge1) = " " Then
         Debug
.Print Left(sTextiLaenge 1) & "#" _
            Mid
(sTextiLaenge 1)
 
        iStart iLaenge 1          
      End 
If
 
  Next iLaenge
  
End Sub

Gruß Peter 
(10.02.2016, 16:09)Rabe schrieb: [ -> ]Hi,

(10.02.2016, 15:54)Schülerin schrieb: [ -> ]Aber ich suche doch eine Lösung über VBA Code.

das hattest Du nicht gesagt!


Hallo Ralf, hat sie!

Zitat:Hallo VBA-Denksportler,

ich habe folgendes Problem.
Seiten: 1 2