VBA Leerzeichen entfernen
#1
Hallo,

zu diesem Thema konnte ich leider nichts finden.

Der Inhalt aus einer PDF Datei wird in einer Excel-Tabelle eingefügt.

Danach steht alles untereinander in A.

Beispiel:

Test A  40,99 30,55

Nur im Text soll das Leerzeichen entfernt werden und danach zusammen geschrieben werden.

Da es nach Leerzeichen getrennt wird und die zahlen dann in B und C stehen.
Zur Zeit mache ich es mit suchen und ersetzen . Das ist aber aufwendig.
Gruß
Stephan
Top
#2
Moin Stefan!
Markiere Spalte A
Daten, Text in Spalten
im zweiten Schritt des Assistenten Leerzeichen anhaken

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)
Top
#3
(21.12.2016, 11:14)RPP63 schrieb: Moin Stefan!
Markiere Spalte A
Daten, Text in Spalten
im zweiten Schritt des Assistenten Leerzeichen anhaken

Gruß Ralf

Moin Ralf,

dies wird schon per VBA Gemacht.
 Das sieht dann so aus

Test A 40,99 35,55

In A Test in B A in C und D die Zahlen.
Ich möchte aber das nur das Leerzeichen im Text entfernt und zusammengeschrieben wird, das der Text nur in A steht.
Zur Zeit mache ich es mit suchen und ersetzen . Dies ist aber sehr aufwendig.
Jede Bezeichnung zusammenzuschreiben.
Top
#4
Hi!
Gib mal ein paar Beispiele.
Um nur das erste Leerzeichen zu entfernen, ginge ja:
=WECHSELN(A1;" ";"";1)

Per VBA:
ActiveCell = Replace(ActiveCell, " ", "", 1, 1)

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)
Top
#5
Die Spalten A:C liegen jetzt vor, Ralf :)

Daher: =WECHSELN(A1;" ";"") bzw. das VBA-Äqu. mit nur den ersten drei Argumenten
Top
#6
Hallo,


Code:
Cells(x,1)=Replace(cells(x,1)," ","") & Cells(x,2)


und x als Schleifenzähler über die ganze Tabelle.

Anschließend Spalte B löschen.

Nach diesem:


Zitat:In A Test in B A in C und D die Zahlen.


A1: Test
B1: A
C1: 40,99
D1: 35,55

Per Formel in E:


Code:
=glätten(a1)&" "&glätten(B1)


nach unten ziehen; E kopieren, in A --> Inhalte einfügen, Werte und B/E löschen
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
Soderle!
Ich gehe mal stumpf nach dem Eingangsposting. ;)
Ausgangsposition:
A
1Test A  40,99 30,55
2Test B 17,2 100

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Folgender Code
Code:
Sub RPP()
Dim Zelle As Range
For Each Zelle In Range("A1", Range("A1").End(xlDown))
   Zelle = Replace(Zelle, " ", "", 1, 1)
Next
End Sub
führt dazu:
A
1TestA  40,99 30,55
2TestB 17,2 100

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Jetzt noch ein .TextToColumns drüber und fertig.

Aber ich bat ja um aussagekräftige Beispiele. ;)

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)
Top
#8
Zusammen dann so:
Sub RPP()
Dim Zelle As Range
For Each Zelle In Range("A1", Range("A1").End(xlDown))
  Zelle = Replace(Zelle, " ", "", 1, 1)
Next
Call TTC
End Sub

Sub TTC()
With Columns(1)
  .TextToColumns .Cells(1), Space:=True
End With
End Sub

Führt zu:
ABC
1TestA 40,9930,55
2TestB17,2100

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

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)
Top
#9
Erstmal Danke für die Antworten.
Leider funktioniert es nicht.
Habe es mit ein Button versucht.
Call RPP

Es wird ein Fehler angezeigt.
Top
#10
Hallo Stephan

mir ist etwas aufgefdallen, als ich diesen Text kopierte und den VBA Code von Ralf anwendete:  Test A  40,99 30,55  

In diesem Text gibt es ausser dem normalen Space " " auch das Sonderzeichen Charakter 160 als Space. Das kann man nicht mit " " löschen. Probiere bitte mal den folgenden Code. Wenn du den Range Bereich festlegst sollte es auch ohne  For Next Schleife gehen. Würde mich sehr freuen wenn es so klappt!

Ich wünsche dir und allen Kollegen ein frohes Weihnachtsfest.

mfg  Gast 123


Code:
'dieses Programm löscht normale Space + Charakter 160 Space

Sub Space_löschen()
Dim LZell as Long

  'für die ganze Tabelle gilt:
   Cells.Replace What:=" ", Replacement:=""
   Cells.Replace What:=Chr(160), Replacement:=""

   'oder de3n Range Bereich selbst festlegen
   Range("A1:A1000").Replace What:=" ", Replacement:=""
   Range("A1:A1000").Replace What:=Chr(160), Replacement:=""

   'Range Bereich über LastZell festlegen
   LZell = Range("A1").End(xlDown).Row
   Range("A1:A" & LZell).Replace What:=" ", Replacement:=""
   Range("A1:A" & LZell).Replace What:=Chr(160), Replacement:=""
End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste