Microsoft Excel

Herbers Excel/VBA-Archiv

Zeichenfolge entfernen | Herbers Excel-Forum


Betrifft: Zeichenfolge entfernen von: steffen
Geschrieben am: 30.11.2009 13:30:39

Hallo in die Runde,

wie kann ich es per VBA anstellen, einen text ab einem bestimmt vorkommenden Zeichen zu löschen.

ich suche eine Möglichkeit um soetwas aufzuarbeiten

vorher: 123.34 uhz8937
nachher: 123.34

also ab einem Leerzeichen alles nach rechts löschen.
ich denke, da ist die Instr-Funktion gefragt, aber damit habe ich noch keine erfahrung.

Gruß Steffen

  

Betrifft: AW: Zeichenfolge entfernen von: Ramses
Geschrieben am: 30.11.2009 13:54:13

Hallo

"...ich denke, da ist die Instr-Funktion gefragt, aber damit habe ich noch keine erfahrung..."

Gib mal "Instr" als Suchbegriff in der VBA Hilfe ein. Das ist dort sehr schön erklärt.
Ansonsten gibt es hier die Forum Suchfunktion. Geschätzte 120000 Treffer

Gruss Rainer


  

Betrifft: AW: Zeichenfolge entfernen von: steffen
Geschrieben am: 30.11.2009 14:00:28

Hi Ramses,

mit der hilfe finde ich zwar die Zeichenposition, aber ich bekomme nicht raus, wie ich ab dort alle zeichen, die rechts davon stehen, entferne.

Gruß Steffen


  

Betrifft: AW: Zeichenfolge entfernen von: ptonka
Geschrieben am: 30.11.2009 14:09:52

Hallo zusammen,

angenommen, der Wert steht in A1 dann:

Sub aaa()
Wert = Range("A1").Value
Leerzeichen = InStr(1, Wert, " ")
Ausgabe = Mid(Wert, 1, Len(Wert) - Leerzeichen)
Range("B1").Value = Ausgabe
End Sub

In B1 wird dann der gewünschte Wert ausgegeben.

Gruß,
Ptonka


  

Betrifft: AW: Zeichenfolge entfernen von: steffen
Geschrieben am: 30.11.2009 14:18:51

Hi Ptonka,

leider nicht erfolgreich, es werden die soviele Stellen, an denen sich das Leerzeichen befindet weggeschnitten.

vorher: 123.23 eue1234567
jetzt: 123.23 eue
soll: 123.23

Gruß Steffen


  

Betrifft: AW: Zeichenfolge entfernen von: Ramses
Geschrieben am: 30.11.2009 14:24:58

Hallo

Es stehen genügend Beispiele zum extrahieren in der Suche.
Also so schwer wäre das ja nicht

Sub aaa()
Wert = Range("A1").Value
Leerzeichen = InStr(1, Wert, " ")
Range("B1").Value = left(Wert, Leerzeichen-1)
End Sub
Gruss Rainer


  

Betrifft: Danke von: steffen
Geschrieben am: 30.11.2009 14:36:45

danke der Tips, hab mich nun auch "durchgewurstelt".

habe nun meine ganze Spalte abgerackert damit
lrow = Cells(Rows.Count, 1).End(xlUp).Row
For a = 1 To lrow
Wert = Cells(a, 1).Value
leerzeichen = InStr(1, Wert, " ")
wert2 = Len(Cells(a, 1)) + 1
wert3 = wert2 - leerzeichen
Ausgabe = Mid(Wert, 1, Len(Wert) - wert3)
Cells(a, 1) = Ausgabe
Next a

Gruß Steffen


  

Betrifft: AW: war gerade.... von: hary
Geschrieben am: 30.11.2009 15:07:53

hi Steffen
...im Gange. Damit nicht Unnuetz.

'----sollten keine Leerzellen im Bereich sein, dann koennen die Zeilen mit "raus" raus-----
Dim i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) <> "" Then  'raus
Cells(i, 1) = Left(Cells(i, 1), InStr(1, Cells(i, 1), " ") - 1)
End If    'raus
Next

gruss hary


  

Betrifft: AW: Zeichenfolge entfernen mit Split von: Daniel
Geschrieben am: 30.11.2009 21:07:12

Hi

alternativ zu INSTR und LEFT könntest du in diesem Fall auch die SPLIT-Funktion verwenden

dim AlterText as string
dim NeuerText as string

AlterText = "123.456 abcde"
NeuerText = Split(AlterText, " ")(0)
das funktioniert aber erst in den neueren Excelversionen (XP auf jeden Fall, ggf auch Excel 2000)

Gruß, Daniel


  

Betrifft: Selbstverständl Splittet auch xl9 (2000)! Gruß owT von: Luc:-?
Geschrieben am: 01.12.2009 01:30:26

:-?


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