| 
		
	
	
	
		
	Registriert seit: 10.04.2014
	
Version(en): 2016 + 365
 
	
	
		Hi,  (10.02.2016, 18:59)coemm schrieb:  hat sie! ok, dann entschuldige ich mich!
	 
	
	
	
		
	Registriert seit: 12.10.2014
	
Version(en): 365 Insider (64 Bit)
 
	
		
		
		10.02.2016, 19:32 
(Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2016, 19:32 von RPP63.
 Bearbeitungsgrund: Screenshot hinzugefügt
)
		
	 
		Hallo mal wieder! Zitat: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.
 Wäre aber nicht schlecht.  :21:  Peter hat Dir zwar bereits die "klassische" Variante gepostet, ich bin aber der Meinung, dass man Excelformeln auch in VBA nutzen sollte! Da Du es ja gerne im Direktfenster haben willst: Sub OderAnders()Dim strSatz As String, iSpace As Long
 strSatz = "Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
 For iSpace = 1 To Ubound(Split(strSatz))
 Debug.Print WorksheetFunction.Substitute(strSatz, " ", "#", iSpace)
 Next
 End Sub
   Gruß Ralf
	
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
 
	
	
	
		
	Registriert seit: 10.09.2014
	
Version(en): 2013
 
	
	
		Code: Sub LeerstellenimString(vbPosition, anzahl)vbSonder = "#"
 vbSatz = "Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
 
 If Not vbPosition = 0 Then
 Mid(vbSatz, InStr(vbPosition, vbSatz, " "), 1) = Replace(Mid(vbSatz, InStr(vbPosition, vbSatz, " "), 1), " ", vbSonder)
 Debug.Print anzahl & ". = " & InStr(vbPosition, vbSatz, vbSonder) & " " & vbSatz '1
 LeerstellenimString (InStr(vbPosition, vbSatz, " ")), anzahl + 1 '2 '3
 End If
 
 vbSatz = Replace(vbSatz, vbSonder, " ")
 End Sub
 
 Sub AlleLeerstellenimString()
 Call LeerstellenimString(1, 1)
 End Sub
Ansatz über rekursive Programmierung
	 
	
	
	
		
	Registriert seit: 10.09.2014
	
Version(en): 2013
 
	
		
		
		11.02.2016, 12:23 
(Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2016, 12:23 von juliatoll.)
		
	 
		weiterer Lösungsvorschlag: Code: Sub A_SonderzeichenindieLeerstellen()'Die Leerstellen werden nacheinander von einem Sonderzeichen durchlaufen
 vbSonder = "#" 'Sonderzeichen
 vbSatz = "Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
 
 vbPosition = InStr(1, vbSatz, " ") 'Startwert
 While Not vbPosition = 0
 Mid(vbSatz, InStr(vbPosition, vbSatz, " "), 1) = Replace(Mid(vbSatz, InStr(vbPosition, vbSatz, " "), 1), " ", vbSonder)
 Debug.Print "Position " & vbPosition & " : " & vbSatz
 vbPosition = InStr(vbPosition + 1, vbSatz, " ")
 vbSatz = Replace(vbSatz, vbSonder, " ")
 Wend
 
 End Sub
 
	
	
	
		
	Registriert seit: 10.09.2014
	
Version(en): 2013
 
	
	
		Code: Sub DurchlaufSonderzeichen()vbSonder = "#"
 vbSatz = "Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."
 
 For i = 1 To UBound(Split(vbSatz, " "))
 vbPosition = InStr(vbPosition + 1, vbSatz, " ")
 Debug.Print i & ". " & Left(vbSatz, vbPosition - 1) & vbSonder & Right(vbSatz, Len(vbSatz) - vbPosition)
 Next i
 
 End Sub
 
	
	
	
		
	Registriert seit: 29.09.2015
	
Version(en): 2030,5
 
	
	
		Code: Sub M_snb()Debug.Print Join([transpose(substitute("Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft."," ","#",row(1:11)))], vbLf)
 End Sub
 
	![[-]](https://www.clever-excel-forum.de/images/collapse.png) Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
	  • Schülerin 
	
	
	
		
	Registriert seit: 10.09.2014
	
Version(en): 2013
 
	
		
		
		13.02.2016, 15:25 
(Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2016, 18:22 von Rabe.
 Bearbeitungsgrund: Name des seitherigen Königsweg-Vorstellers geändert!
)
		
	 
		Hallo SNB,
 weiß zwar noch nicht ganz wie dein Code funktioniert, aber eine Super-Lösung! Dachte bisher immer der Königsweg wäre der von RPP63/Ralf (sicherlich leichter zu verstehen). Sei's drum.
 Codealternativen sind immer interessant.
 
	
	
	
		
	Registriert seit: 29.09.2015
	
Version(en): 2030,5
 
	
		
		
		13.02.2016, 16:18 
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2016, 16:19 von snb.)
		
	 
		Dann gibt's noch eine Alternative ohne Excel Formel (weil 'substitute' eine Excel Formel ist): Code: Sub M_snb()sn = Split("Dies ist ein Satz, in dem ein Sonderzeichen nacheinander alle Leerzeichen durchläuft.")
 
 For j = 1 To UBound(sn)
 sn(j) = "#" & sn(j)
 Debug.Print Replace(Join(sn), " #", "#")
 sn(j) = Mid(sn(j), 2)
 Next
 End Sub
 
	![[-]](https://www.clever-excel-forum.de/images/collapse.png) Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
	  • Schülerin |