Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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)
Antworten Top
#3
(21.12.2016, 10: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.
Antworten 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)
Antworten Top
#5
Die Spalten A:C liegen jetzt vor, Ralf :)

Daher: =WECHSELN(A1;" ";"") bzw. das VBA-Äqu. mit nur den ersten drei Argumenten
Antworten 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.
Antworten 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)
Antworten 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)
Antworten 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.
Antworten 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
Antworten Top


Gehe zu:


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