Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Bindestriche und Leerzeichen finden und e

Doppelte Bindestriche und Leerzeichen finden und e
24.04.2003 18:02:56
Hans Hauck
Hallo!
Also ich habe das folgende Problem:

Nach Import von Daten aus einer CSV.Datei befinden sich in einer Zeile Artikelbeschreibungen. Diese enthalten sowohl mehrere Leerzeichen, als auch mehrere Bindestriche. Mein Wunsch ist es nun, alle doppelten (und teilweise auch drei- oder vierfachen) Leerzeichen bis auf eines zu entfernen. Die Bindestriche sollen alle bis auf einen entfernt werden und dieser letzte soll in einen Zeilenumbruch verwandelt werden, da sonst in der Zeile immer ##### steht.

Nun stöbere ich schon einen Tag durch das Forum und kann keine Fortschritte verbuchen. Hat jemand eine Idee, welche mir weiterhilft?

Grüsse,
Hans

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Doppelte Bindestriche und Leerzeichen finden und e
24.04.2003 18:07:09
Nike

Hi,
einfach mit Suchen Ersetzen (Tastenkombi Strg und H)
Dann suchen nach "---" ersetzen durch "-"
jeweils ohne "

Bye

Nike

Re: Doppelte Bindestriche und Leerzeichen finden und e
24.04.2003 21:40:06
Hans Hauck

Sorry, da war ich wohl etwas ungenau. Ich benötige ein Macro, da ich diese Datei (insgesamt 5000 Zeilen) jeden Tag durcharbeiten muss. Habe schon ein Macro erstellt, dass doppelte Zeilen löscht und Preise aufrundet... Das ist nun die letzte Option.
Grüsse,
Hans

Re: Doppelte Bindestriche und Leerzeichen finden und e
24.04.2003 23:13:36
gordon

Hallo Hans,

via VBA mit TRIM() die Leerzeichen auf eins 'eindampfen', den letzten Bindestrich mit InstrRev() suchen und gegen Chr(10) austauschen.

Dann die übrigen Bindestriche mit
range.Replace What:="-", Replacement:="" entfernen.

Gruß
gordon

Anzeige
Re: Doppelte Bindestriche und Leerzeichen finden und e
25.04.2003 23:23:39
Hans Hauck

Danke Gordon,
aber kannst Du das einem Excel-DAU mal bitte näher erläutern? Ein Beispiel wäre nicht schlecht ;-)
Wo bekomme ich eigentlich gute Literatur zu dem Thema? Aus der Excel-Hilfe werde ich nicht schlau.
Grüsse,
Hans

Re: Doppelte Bindestriche und Leerzeichen finden und e
26.04.2003 19:32:18
gordon

Hallo Hans,

das ist der prinzipielle Ablauf eines VBA-Makros, das Deine Aufgabe erledigen würde. Kenne mich mit VBA prinzipiell besser aus als mit Excel-Funktionen, habe allerdings noch folgendes im Angebot:

Zelle A1 enthält z.b.
Wort1 - -Wort2-- Wort3---NeueZeile
Dann in Zelle B1 folgende Formel und Zelle mit Format-> Ausrichtung->Zeilenumbruch versehen:
=GLÄTTEN(WECHSELN(A1;"-";ZEICHEN(10);LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";))))
B1 enthält dann:
Wort1 - -Wort2-- Wort3--
NeueZeile

Wie schaut's damit ?

Gruß
gordon



Anzeige
Re: Doppelte Bindestriche und Leerzeichen finden und e
26.04.2003 21:59:19
Hans Hauck

Hallo Gordon!
Das ganze jetzt als Macro wäre super!
Grüsse,
Hans

Re: Doppelte Bindestriche und Leerzeichen finden und e
26.04.2003 22:19:01
gordon

Hallo Hans,

na dann ab ... Den Weg habe ich doch vorher bereits beschrieben, dachte nur, Du wolltest jetzt alternativ das Ganze als Formel.
Versuch mal Dein Glück, wenns nicht klappt melde Dich mit Deinem Code nochmal.

Gruß
gordon

Re: Doppelte Bindestriche und Leerzeichen finden und e
27.04.2003 16:47:36
gordon



Re: Doppelte Bindestriche und Leerzeichen finden und e
02.05.2003 21:35:30
Hans Hauck

Hallo Gordon!
Danke erstmal für Deinen Tipp. Habe endlich die Zeit gefunden, Deinen Vorschlag testen zu können. Leider funktioniert er nicht!
Bekomme immer den "Laufzeitfehler 5" angezeigt.
Wie gesagt, was Excel angeht bin ich ein echter DAU!
Also mir wäre es Recht, wenn das so einfach wie möglich wäre, da ich leider überhaupt nicht verstehe, was Du da schreibst!!!
Der Text, den ich ändern will, steht in nur einer Zeile eines Arbeitsblattes und soll auch nur da arbeiten. Es sieht wie gesagt so aus, dass ich jeden Morgen eine Datei importieren muss. Nur diese eine und da auch nur diese Zelle. Es braucht also kein Kunstwerk zu sein.
Könntest Du mir da weiterhelfen?
Grüsse,
Hans

Anzeige
Re: Doppelte Bindestriche und Leerzeichen finden und e
03.05.2003 16:52:44
gordon

Hallo Hans,

wenn es sich nur um eine Zelle handelt, dann nimm doch die Formel.

Das Makro ( da Du extra ein Makro wolltest, bin ich davon ausgegangen, Du kennst Dich mit VBA ein wenig aus...)
schaut in "Tabelle1" (die natürlich so namentlich auch vorhanden sein muss, sonst eben im Makro den Namen entsprechend anpassen) in der ersten Spalte (also "A") ab Zeile 1 in jeder einzelnen Zelle.

Stehen die Werte in einer anderen Spalte und/oder nicht ab der ersten Zeile, dann die Makrozeilen

If .Cells(65536, 1).Value = "" Then lRow = .Cells(65536, 1).End(xlUp).Row
Set rng = .Range(.Cells(1, 1), .Cells(lRow, 1))

entsprechend anpassen, z.B. für Spalte G (7.Spalte) ab Zeile 13

If .Cells(65536, 7).Value = "" Then lRow = .Cells(65536, 7).End(xlUp).Row
Set rng = .Range(.Cells(13, 7), .Cells(lRow, 7))

Gruß
gordon



Anzeige
Re: Doppelte Bindestriche und Leerzeichen finden und e
06.05.2003 22:06:18
Hans Hauck

Hallo Gordon!
Also nochmal der Reihe nach. Aus dem Forum habe ich mir einige Tipps geholt, wie man meine Probleme lösen kann. Habe ansonsten von VBA keine Ahnung ! Null!
Es wäre sehr hilfreich, wenn Du mir eine Lösung senden könntest, die ich einfach eintragen kann. Vielleicht kann ich Dich ja mal mit einem Stück günstiger Hardware entschädigen (Bin Händler!)
Wenn ich Deinen Vorschlag umsetze, ergibt sich folgender Fehler:

424: Objekt erforderlich

So sieht das Ganze bei mir aus:

Sub doppelte()
lRow = 65536
With ws
If .Cells(65536, 7).Value = "" Then
lRow = .Cells(65536, 7).End(xlUp).Row
End If
Set rng = .Range(.Cells(1, 7), .Cells(lRow, 7))
For Each r In rng
Do Until InStr(r.Value, " ") = 0
r.Value = Left(r.Value, InStr(r.Value, " ")) & _
Mid(r.Value, InStr(r.Value, " ") + 2)
Loop
r.Value = (Left(r.Value, _
InStrRev(r.Value, "-") - 1) & Chr(10) & _
Mid(r.Value, InStrRev(r.Value, "-") + 1))
Next r
End With
End Sub

Also vielleicht (bitte, bitte) ist es möglich, dass Du mir ein Macro schreibst, welches folgende Dinge macht:

1. Alle Zeilenanfänge in dieser Spalte mit "- " durch "" ersetzt.
2. Alle doppelten Leerzeichen durch ein Leerzeichen ersetzt.
3. Alle doppelten Bindestriche mit einem Leerzeichen davor ( --) durch einfache mit Leerzeichen davor ersetzt ( -).
4. Diese einfachen mit Leerzeichen dann durch einen Umbruch in der Zelle ersetzt, damit es besser in die Artikelvorschau passt!

Ziel ist es diese Daten dann in einen Webshop übernehmen zu können. Habe mir das irgendwie leichter vorgestellt. ;-)
Habe die Spalte mal unter www.haller-elektronik-vertrieb.de/spaltef.xls ins Netz gestellt.

Wäre schön von Dir zu hören!

Grüsse,
Hans Hauck


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige