Microsoft Excel

Herbers Excel/VBA-Archiv

Ab Leerzeichen entfernen

Betrifft: Ab Leerzeichen entfernen von: Mister-B
Geschrieben am: 20.11.2012 17:55:11

Hallo,

ich hoffe Ihr habe eine Idee.

in einer Zelle steht Text. Wie kann ich mit VBA alles was rechts vom ersten leerzeichen entfernen.

Gruß
Martin

  

Betrifft: AW: Ab Leerzeichen entfernen von: robert
Geschrieben am: 20.11.2012 18:49:54

Hi,

so vielleicht? Texte stehen in Spalte A, ev.anpassen

Gruß
robert

Sub tt()
Dim i%, x%, mylng%
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  mylng = Len(Cells(i, 1))
  x = InStr(1, Cells(i, 1), " ")
  Cells(i, 2) = Left(Cells(i, 1), x - 1)
Next i
End Sub



  

Betrifft: AW: Ab Leerzeichen entfernen von: Uduuh
Geschrieben am: 20.11.2012 18:53:52

Hallo,
wo ist der Sinn?
Dann sind nur noch Leerzeichen in der Zelle.

Gruß aus’m Pott
Udo



  

Betrifft: wieso ? ich habs so... von: robert
Geschrieben am: 20.11.2012 19:01:49

verstanden-Udo,

zB. in A1 steht: Text ist irgendwas usw.

NEU in A1 steht: Text

oder lieg ich falsch?

Gruß
robert


  

Betrifft: Sicher nicht, Robert, wird ... von: Luc:-?
Geschrieben am: 20.11.2012 19:12:26

…wohl eher Udo sein, dem da der „blinde Fleck“ in die Quere gekommen ist… ;-)
Übrigens, Robert, wäre das auch ein Einsatzgebiet für Splitt bzw SplitVx in einer ZellFml bzw vbFkt Split wie hier x = Split(text)(0) oder als ZellFml =Splitt(text) in einer Zelle. Soll's der nächste Teil in nur einer Zelle sein, dann =INDEX(Splitt(text);2). Mit SplitVx analog und mit Splint (hast du ja wohl auch!) =Splint(text;;2;2). Damit hättest du schon mal ein Anwendungsbsp! ;-)
Gruß Luc :-?


  

Betrifft: Danke Luc, aber.. von: robert
Geschrieben am: 20.11.2012 19:30:54

Hi Luc,

genau da ! liegt mein Problem.....

Du bietest mehrere Vorschläge an, ohne onkret ein Beispiel zu erstellen :-)

Mir wäre sehr geholfen, wenn Du Deine Varianten in mein Makro einbauen könntest.

Ich brauch das halt, um etwas zu verstehen-sorry....

Gruß
robert


  

Betrifft: Mit Bsp ist Bsp f.d.dir v.mir geschickten ... von: Luc:-?
Geschrieben am: 20.11.2012 20:05:42

…Fktt gemeint, Robert;
das konkrete Bsp wäre dann das Frager-Problem, das man (nicht nur) so einfach per Fml lösen könnte (Bspp dafür habe ich ja genannt).
Was die vbFkt Split betrifft → die ersetzt deine ganze Schleife! Du brauchst das Leerzeichen nicht zu suchen, das findet Split allein, denn das bei Split(text) fehlende Arg2 ist dann standardmäßig Leerzeichen. Mit dem nachgestellten Index 0 behältst du in x (kann auch die gleiche Variable sein, in der text steht oder gleich die Zelle, wenn's keine Fkt, sondern 'ne Subroutine wdn soll) nur den gewünschten linken Textteil bis zum Leerzeichen, das dabei verlorengeht.
Im Grunde genommen hast du mit deiner Lösung ja quasi versucht, Split nachzubauen. Das ist aber nur für xlVss vor Xl9 erforderlich!
Gruß Luc :-?


  

Betrifft: Split eingebaut .... von: robert
Geschrieben am: 20.11.2012 20:21:35

Danke Luc,

meinst Du so ?

Gruß
robert

Sub tt() 'Text nach 1.Leerzeichen entfernen
Dim i%
On Error Resume Next
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
   Cells(i, 3) = Split(Cells(i, 1))
 Next
End Sub



  

Betrifft: Fehlt nur noch d.Index (0), sonst könnte's evtl... von: Luc:-?
Geschrieben am: 20.11.2012 20:58:57

…Fehler #WERT! geben, Robert,
weil VBA viell versucht, das ganze Datenfeld in einer Zelle unterzubringen. In ZellFmln ginge das aber.
Gruß Luc :-?


  

Betrifft: Index (0), , wo und wie ?????...... von: robert
Geschrieben am: 21.11.2012 08:53:38

Cells(i, 3) = Split(Cells(i, 1))

Gruß

robert


  

Betrifft: Augen auf, schon geht's- Danke Luc owT von: robert
Geschrieben am: 21.11.2012 09:01:58




  

Betrifft: Korrektur: Ersetzt natürl nicht ... von: Luc:-?
Geschrieben am: 25.11.2012 18:51:15

…diese Schleife, Robert,
sondern nur die Suche, aber das hattest du ja schon bemerkt. Insofern ist das auch kein (vollständiger) Nachbau von Split, sondern höchstens einer für ein erstmaliges Auftreten des Default-Delimiters. ;-)
Bei einem vollständigen Nachbau könnte man mit einer Schleife alle Zeichen des TextArguments durchgehen und dabei mit dem vorgegebenen Trennzeichen (Delimiter) vgln oder sich mit Instr(letztefundstelle+1,…) per Do While o.ä. von TrennzeichenAuftritt zu -Auftritt „durchhangeln“, was ggf schneller wäre.
Gruß Luc :-?

PS: Bin fast fertig!


  

Betrifft: AW: Ab Leerzeichen entfernen von: Mister-B
Geschrieben am: 20.11.2012 19:22:58

Hallo,

Robert hat es schon richtig verstanden, vielleicht habe ich mich nicht deutlich ausgedruckt. Sorry.

Ich möchte in den Variabel ActiveSheet.Cells(x, 7) alles ab dem ersten Leerzeichen links weg haben. Der Text in der Zelle sieht so aus, Name Zusatztext. Der Zusatztext und Leerzeichen sollen weg.

Gruß
martin


  

Betrifft: und das Makro ausprobiert? ow t von: robert
Geschrieben am: 20.11.2012 19:35:15




  

Betrifft: hatte ne Fehlfunktion. Sorry. owT von: Uduuh
Geschrieben am: 20.11.2012 19:37:57




  

Betrifft: Soll vorkommen; ist auch IT-gemäßer als ... von: Luc:-?
Geschrieben am: 20.11.2012 20:08:47

…„Blinder Fleck“, Udo… ;-))
Gruß Luc :-?


  

Betrifft: AW: Ab Leerzeichen entfernen von: Mister-B
Geschrieben am: 24.11.2012 19:40:21

Hallo,

tut mir Leid, dass ich jetzt eine Rückmeldung gebe.

Leider reichen meine VBA Kenntnisse nicht aus um den Vorschlag von Robert für meine Bedürfnisse anzupassen. Ich habe allerdings mein Problem mit der Formel:

=WENNFEHLER(LINKS(F10;FINDEN(" ";F10)-1);F10)

gelöst. Trotzdem danke für die Hilfe.

Gruß
Martin


 

Beiträge aus den Excel-Beispielen zum Thema "Ab Leerzeichen entfernen"