Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Leerstellen bei mehreren Zellen löschen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Leerstellen bei mehreren Zellen löschen (9583 mal gelesen)
inv-Kristof
Mitglied
Dipl-- Ing. (FH)


Sehen Sie sich das Profil von inv-Kristof an!   Senden Sie eine Private Message an inv-Kristof  Schreiben Sie einen Gästebucheintrag für inv-Kristof

Beiträge: 1135
Registriert: 01.01.2004

HP 8710w, Win Vista 64x, IV 2009 SP2
Intel® Core™ 2 Duo T9500 2,6 GHz, 4 GB RAM
nVidia® Quadro FX 3600M, 17" 1920x1200
----------------
AMD 64bit 3200+; 2GB DDR400
GeForce 6600GT 128MB
Win Vista 64x
IV 2009 SP2

erstellt am: 15. Nov. 2006 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

gibt es die Möglichkeit, die Leerstellen auf die schnelle bei 1000 Zellen zu löschen, ohne dass Beckspace- Taste dabei benutzt wird.?
Gruß Kristof

------------------
--------

Gruß

Kristof

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 15. Nov. 2006 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

STRG+F > Zu ersetzender Text einfach ein Leerzeichen machen und dann auf "alle ersetzen" clicken.

Sollen nur bestimmte Zellen bereinigt werden, diese vorher markieren...

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 15. Nov. 2006 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Public Sub ersetzen()
Dim i As Integer
For i = 1 To 1000
    Tabelle1.Cells(i, 2) = Replace(Tabelle1.Cells(i, 1).Value, " ", "", , 2)
Next i
End Sub

[edit] @ Thomas: zu einfach ;D [/edit]

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

[Diese Nachricht wurde von runkelruebe am 15. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inv-Kristof
Mitglied
Dipl-- Ing. (FH)


Sehen Sie sich das Profil von inv-Kristof an!   Senden Sie eine Private Message an inv-Kristof  Schreiben Sie einen Gästebucheintrag für inv-Kristof

Beiträge: 1135
Registriert: 01.01.2004

HP 8710w, Win Vista 64x, IV 2009 SP2
Intel® Core™ 2 Duo T9500 2,6 GHz, 4 GB RAM
nVidia® Quadro FX 3600M, 17" 1920x1200
----------------
AMD 64bit 3200+; 2GB DDR400
GeForce 6600GT 128MB
Win Vista 64x
IV 2009 SP2

erstellt am: 15. Nov. 2006 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

nicht schlechte Idee, es gibt aber ein Aber.
In der Zelle steht ein Satz. Ich will nur die Leerstellen in der Zelle nach diesem Satz ersetzen. Mit einem leerzeichen kann ich leider nicht.
Beispiel:
abcd_efgh______
_- Leerstellen (zu ersetzende Stellen)aber nicht zwischen den Wörtern

Gruß kristof

------------------
--------

Gruß

Kristof

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 15. Nov. 2006 15:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Ist richtig... dies Info war aber vorher nicht gegeben... (merkst du wie wichtig es ist, dass du uns alle Infos von Anfang gibst ?  )

Dann musst du halt das Ersetzkriterium verändern - zB auf 2 Leerzeichen; dann werden immer 2 Leerzeichen ersetz - wenn du Pech hast bleibt dann noch eines am Ende über.

Das kannst du dann aber nur noch mit den Befehlen LEFT und LEN rauskitzeln... (wenn die Anzahl deiner Leerzeichen am Ende immer konstant ist und dir vor allem bekannt, kannst du diese gleich von Anfang mit LEN und LEFT rausholen... - aber du verrätst uns ja nicht wie es aussieht...)

PS: Sorry für das eine U da war meine Clickerei zu wild - war nicht Absicht...

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 15. Nov. 2006 15:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

sind es immer gleich viele? dann ersetze im String des Suchwertes von " " auf "    "
Stehen die immer an der gleichen Stelle? dann ersetze den Startwert der Suche auf z.B. 8

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 15. Nov. 2006 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tunnelbauer:
Dann musst du halt das Ersetzkriterium verändern - zB auf 2 Leerzeichen; dann werden immer 2 Leerzeichen ersetz - wenn du Pech hast bleibt dann noch eines am Ende über.

ist auch nicht weiter schlimm, dann halt zweimal aufrufen :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 15. Nov. 2006 15:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo zusammen,

in xls mit Bordmitteln:

=RECHTS(Zelle mit Text;Anzahl Zeichen)

in einer Extra-Spalte (oder Zeile)? Oder doch in VBA mit "right"

Zitat:
aber du verrätst uns ja nicht wie es aussieht
von Thomas stimme ich voll zu ;-)

[Edit] Frage - zur weiteren Verwirrung: Unterstützt "Suchen+Ersetzen" wildcards?"[/Edit]

Ende der wirren Ansätze,
Frederik

[Diese Nachricht wurde von Paulchen am 15. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 15. Nov. 2006 15:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Thomas Harmening:
ist auch nicht weiter schlimm, dann halt zweimal aufrufen :-)

Versteh ich grade nicht...

Wenn am Ende 4 Leerzeichen sind, schmeisst Excel sofort alle raus...
Wenn am Ende 5 Leerzeichen sind, dann schmeisst Excel 4 Leerzeichen sofort raus... 1 bleibt über und kann mit Suchen & Ersetzen nicht elemeniert werden - siehe mein erstes Post bzw Reaktion seitens inv-Kristof..

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 15. Nov. 2006 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hm.

@Thomas und Thomas:
Wie wäre es mit der Suche nach der max. Anzahl an Leerzeichen (z.B. 5), dann 4 usw. mit "Suchen + Ersetzen"? Stellt das beide zufrieden? Habe ich was übersehen?

Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 15. Nov. 2006 15:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Nö - tut es nicht...

Wir wollen ja alle aufeinmal raushaben - nicht erst nach dem 5 Durchlauf... deswegen wäre es schön zu wissen wie es wirklich aussieht und welche Regelmäßigkeiten auftreten (oder auch nicht...)

Wahrscheinlich müsste man dann aber mit Nicole irgendwas in VBA entwickeln was das rechte Zeichen prüft und im Falle eines " " ein "Replace" durchführt...

PS: ich glaube wir sind mit unseren Ideen für Kristof zu schnell... wir sollten kurz mal Inne halten...

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 15. Nov. 2006 15:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

wartet ungern
steht denn nach Deinem Satz wenigstens ein Punkt, nach dem man dann suchen könnte und rechts davon die Leerzeichen ersetzen?
oder hat sich das alles schon erledigt und Du hattest nur keine Zeit uns das mitzuteilen?

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inv-Kristof
Mitglied
Dipl-- Ing. (FH)


Sehen Sie sich das Profil von inv-Kristof an!   Senden Sie eine Private Message an inv-Kristof  Schreiben Sie einen Gästebucheintrag für inv-Kristof

Beiträge: 1135
Registriert: 01.01.2004

HP 8710w, Win Vista 64x, IV 2009 SP2
Intel® Core™ 2 Duo T9500 2,6 GHz, 4 GB RAM
nVidia® Quadro FX 3600M, 17" 1920x1200
----------------
AMD 64bit 3200+; 2GB DDR400
GeForce 6600GT 128MB
Win Vista 64x
IV 2009 SP2

erstellt am: 15. Nov. 2006 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

so schnell kann ich nicht beantworten. )
die Kriterien kann ich auch nicht verändern.
Es müssen immer alle Stellen, die rechts stehen, gelöscht werden. Es kann keine einzige Leerzeilestehen. Die Wörte sind unterschiedlich lang.

Gruß Kristof

------------------
--------

Gruß

Kristof

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 15. Nov. 2006 16:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Nochmal ich - kann nicht innehalten

Zitat:
steht denn nach Deinem Satz wenigstens ein Punkt, nach dem man dann suchen könnte und rechts davon die Leerzeichen ersetzen?

Grmbl - nachdem es mir das oben verschmissen hat - die Funktion "right" in VBA hilft nix (speziell: runkelruebe)??? Also´ne Schleife, die immer schön das erste Zeichen von rechts entfernt - solange, bis es rechts keine Leerzeichen mehr gibt...

Also:

Code:
if right(text;1) = "" then
hau-wech-die-********
...

Ungetestet     Für mehr reicht's bei mir leider nicht...
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 15. Nov. 2006 16:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

ohne ne geuppte Mappe oder mind. 5 Probesätze mach ich hier gar nix!
denn da:    hab ich leider keine Zeit für.

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 15. Nov. 2006 17:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

hmm, hmm, hmm, Thomas, du hast recht -denkfehler meinereiner :-)

ich würde einfach den Befehl =Glätten() anwenden, sofern es die Daten im Tabellenblatt zulassen

oder basierend auf Nicoles Schleife :-)

Code:
Sub leer()
Dim i As Integer
Dim leer As String

For i = 1 To 1000
leer = Trim(Cells(i, 2)) 'Leerzeichen hinten und vorne weg
    While InStr(1, leer, "  ") > 0 ' 2 × Leerzeichen
        leer = Replace(leer, "  ", " ") ' 2 × Leer, 1 × Leer
    Wend

Tabelle1.Cells(i, 2) = leer

Next i
End Sub


[Diese Nachricht wurde von Thomas Harmening am 15. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inv-Kristof
Mitglied
Dipl-- Ing. (FH)


Sehen Sie sich das Profil von inv-Kristof an!   Senden Sie eine Private Message an inv-Kristof  Schreiben Sie einen Gästebucheintrag für inv-Kristof

Beiträge: 1135
Registriert: 01.01.2004

HP 8710w, Win Vista 64x, IV 2009 SP2
Intel® Core™ 2 Duo T9500 2,6 GHz, 4 GB RAM
nVidia® Quadro FX 3600M, 17" 1920x1200
----------------
AMD 64bit 3200+; 2GB DDR400
GeForce 6600GT 128MB
Win Vista 64x
IV 2009 SP2

erstellt am: 15. Nov. 2006 17:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

leider steht kein Punkt nach dem Satz.

------------------
--------

Gruß

Kristof

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 15. Nov. 2006 17:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo zusammen,

hilft das (in xls 2000 läuft's) - vorher Bereich markieren

Code:
Option Explicit

Sub LeerZ_Loeschen_r()

'löscht die Leerzeichen am Ende von Texten innerhalb der Auswahl

Dim str_Text As String 'urspr. Text
Dim int_i As Integer 'Zähler für Zeilen
Dim int_j As Integer 'Zähler für Spalten
Dim lng_TextLaenge As Long
 
int_i = 1
int_j = 1

'Markierung zellenweise durchlaufen:
While int_j <= Selection.Columns.Count

    While int_i <= Selection.Rows.Count
        str_Text = Selection.Cells(int_i, int_j).Value 'Text auslesen
        lng_TextLaenge = Len(str_Text) 'Anzahl Zeichen auslesen
       
        While Right(str_Text, 1) = " " 'Während letztes Zeichen = Leerzeichen...
            lng_TextLaenge = lng_TextLaenge - 1 '... Textlänge um 1 kürzen
            str_Text = Left(str_Text, lng_TextLaenge)
        Wend
   
        Selection.Cells(int_i, int_j).Value = str_Text 'geänderten Text eintragen
        int_i = 1 + int_i 'nächste Zelle
    Wend
int_j = 1 + int_j
int_i = 1 'zurücksetzen für nächste Spalte
Wend

MsgBox "Markierung bearbeitet", vbOKOnly, "Hinweis"
End Sub



Keine endgültige Musterlösung, aber naja. Aller Anfang... Bitte um Nachsicht, kann allerdings Kritik vertragen
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 15. Nov. 2006 18:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Code:
Sub leer()
Dim i As Integer
Dim leer As String
Dim cell As Range

If Selection.Cells.Count = 1 Then
        Beep
        MsgBox "Sie müssen einen Bereich auswählen!"
    Exit Sub
End If
    
For Each cell In Selection '
    leer = Trim(cell) 'Leerzeichen hinten und vorne weg ;Ltrim() ;Rtrim()
   
    While InStr(1, leer, "  ") > 0 ' 2 × Leerzeichen
        leer = Replace(leer, "  ", " ") ' 2 × Leer, 1 × Leer
    Wend

cell = leer

Next
End Sub


Code einer Schaltfläche zuweisen, alternativ einer Tastenkombi

Bereich auswählen und Makro ausführen - entfernt Leerzeichen vorne, hinten und alle die mehr als 1 Leerzeichen gross sind

will man explizit nur die rechten Leerstellen nach den String weg haben,
so verwende man        RTrim(Text)
bei nur links entfernen LTrim(Text)
Ansonsten links und rechts vom String  Trim(Text)

[Diese Nachricht wurde von Thomas Harmening am 15. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 15. Nov. 2006 20:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo Thomas,

zu später Stunde...   Muß mir das mal in Ruhe ansehen. Auf den ersten Blick ist Deine Routine auf zwei Zeichen begrenzt - kann man aber ändern?!

Was meint Kristof (wir sind zu schnell...)?

Guten Abend,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 15. Nov. 2006 21:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

[e]...[/e]
beliebig viele Anzahlen von LZ, egal wo in der Zelle kann ich leider auch nur in kompliziert:
Code:
Option Explicit
Public Sub LZEntfernen()
Dim i As Integer, j As Integer
Dim strNeu As String
Dim AlterInhalt
    For i = 1 To Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
        AlterInhalt = Split(Tabelle1.Cells(i, 1), , -1)
        For j = 0 To UBound(AlterInhalt)
            If AlterInhalt(j) <> "" Then
                strNeu = strNeu & " " & AlterInhalt(j)
                If j > 0 Then
                    If AlterInhalt(j) = "" And AlterInhalt(j - 1) <> "" Then
                        strNeu = strNeu & AlterInhalt(j)
                    End If
                End If
            End If
        Next j
        Tabelle1.Cells(i, 2) = Trim(strNeu)
        strNeu = ""
    Next i
End Sub



Das muß auch einfacher gehen.
[e] vergeßt das... habe grad Thomas' probiert, hätte ich vorher machen sollen hmpff, Asche auf mein Haupt.
Schmucker 7-Zeiler der genau das tut : )
und bevor noch einer fragt: nein, ich kann immer noch keine kurzen Schleifen   [/e]


...und ich kann mir einfach nicht vorstellen, daß es da keine Funktion im Excel für gibt...


Eigentlich noch wer ohne Fahrschein? ; )


------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

[Diese Nachricht wurde von runkelruebe am 15. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 15. Nov. 2006 22:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Paulchen:
...Muß mir das mal in Ruhe ansehen. Auf den ersten Blick ist Deine Routine auf zwei Zeichen begrenzt - kann man aber ändern?!

und was macht das?

Zitat:
Original erstellt von runkelruebe:
...und ich kann mir einfach nicht vorstellen, daß es da keine Funktion im Excel für gibt...

mit Bordmittel:

Zelle A1 steht "      ich bin ein Leerzeichen      und hinten noch ganz viele                "
in A2 = Glätten(A1)

wenn es viele verteile Zellen sind, würde ich ein ein weiteres Blatt aufmachen und mit =Glätten(Tabellenblatt!A1) arbeiten und dann mittels kopieren...oder das alte Blatt wegwerfen... zumindest für den hilfreich, der kein Vba kann

Solche Strings mit Leerzeichen kommen meist aus einem import... da vielleicht vorher solch eine Importdatei, die als Ascii vorliegt, bereinigen. Oder halt in Excel, die Importsheet mit einer weiteren Sheet(formeln) aufbereiten - so das bei mehrmaligen Import nicht die nachfolgenden Berechnungen / Auswertungen, verhauen.

...Asche auf mein Haupt - willst wohl graue Haare bekommen ? :-) 

[Diese Nachricht wurde von Thomas Harmening am 16. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 16. Nov. 2006 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Moin,

ich habe mir die (zweite) Routine von Thomas H. nochmal angesehen. Ein großes Lob an dieser Stelle (Thomas ist EIN feedback ja lieber als 1.000 Ferraris  ). Kurz, knackig und wirkungsvoll sozusagen. Da habe ich mir umsonst die Mühe gemacht, die - mir unbekannte - Trim-Funktion nachzubauen... Wobei: "Trim" ist auf Leerzeichen beschränkt, meine sub nicht. Dafür ist mein Code unnötig lang und stellenweise etwas umständlich :-( Mischungen und Anpassungen sind allerdings denkbar. Naja, gelernt habe ich jedenfalls was dabei.

Als Komfortgewinn könnte ich mir noch eine banale inputbox vorstellen, die abfragt, wie viele (Leer)Zeichen im Text gelöscht werden sollen. Wer`s mag und wer`s braucht...

Nochmal zur Begrenzung auf zwei Zeichen

Zitat:
... und was macht das?
Macht eigentlich nix. Ein sinnvoller Satz trennt die Wörter durch ein Leerzeichen, nicht mehr und nicht weniger. Ich kann mir aber durchaus vorstellen, daß bei irgendeinem wirren Import durchaus mehr als zwei LZ zwischen den Wörtern auftauchen. Gut, dann paßt man sich halt für diesen (seltenen) Fall die Sub an.

Ich will ja keine negative Kritik üben, sondern nur auf eine "alles umfassende Allgemeingültigkeit" hinweisen - sofern es die in der Praxis überhaupt gibt  .

Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 16. Nov. 2006 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

@Paulchen, eigentlich sollte nach:
und was macht das? das stehen:
Code:
While InStr(1, leer, "  ") > 0 ' 2 × Leerzeichen
        leer = Replace(leer, "  ", " ") ' 2 × Leer, 1 × Leer
    Wend
Solange Instring(leer) sich 2 Leerzeichen befinden,
          ersetze es mit einem Leerzeichen
und wieder zurück.

irgendwie hat es mir das gestern zweimal rausgehauen...

und es ist doch immer gut, dass es immer mehrere Möglichkeiten gibt :-)

[Diese Nachricht wurde von Thomas Harmening am 16. Nov. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 16. Nov. 2006 10:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo Thomas,

ich nehme die Asche von Nicoles Haupt, multipliziere sie mit dem (beliebigen) Faktor 528 und verteile sie über meiner Matschbirne !

Ich wurde von runkelruebe auch schon darauf hingewiesen. Hatte beim Testen das Problemchen, daß er mir über DREI Leerzeichen (innen) hinweggesprungen ist - muß wohl irgendein Würmchen gewesen sein. Deshalb habe ich auch so hartnäckig nachgebohrt.

Damit die Asche besser durchsackt, noch eine Kleinigkeit voranstellen - es könnte ja sein, daß ein User mehrere Bereiche markiert (Stichwort: Allgemeingültigkeit)...

Code:
'Prüfung auf Anzahl der markierten Bereiche:
    If Selection.Areas.Count > 1 Then
        Beep
        MsgBox "Mehr als ein Bereich markiert!" & vbCrLf & vbCrLf & _
        "Bitte Auswahl auf einen zusammenhängenden Bereich beschränken.", vbExclamation + vbOKOnly, "Achtung"
        Exit Sub
    End If

'Prüfung auf Anzahl der markierten Zellen (Anzahl SOLL > 1):
    If Selection.Cells.Count = 1 Then
        Beep
        MsgBox "Nur eine Zelle markiert!", vbExclamation + vbOKOnly, "Achtung"
        Exit Sub
    End If



Fazit: Deine Sub macht alles, was man braucht (Leerzeichen betreffend). Ich danke für Deine geduldigen Rückmeldungen!!!

Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inv-Kristof
Mitglied
Dipl-- Ing. (FH)


Sehen Sie sich das Profil von inv-Kristof an!   Senden Sie eine Private Message an inv-Kristof  Schreiben Sie einen Gästebucheintrag für inv-Kristof

Beiträge: 1135
Registriert: 01.01.2004

HP 8710w, Win Vista 64x, IV 2009 SP2
Intel® Core™ 2 Duo T9500 2,6 GHz, 4 GB RAM
nVidia® Quadro FX 3600M, 17" 1920x1200
----------------
AMD 64bit 3200+; 2GB DDR400
GeForce 6600GT 128MB
Win Vista 64x
IV 2009 SP2

erstellt am: 16. Nov. 2006 21:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas,
vielen Dank für die einfachste Lösung. Die Formel ist für mich ausreichend.
Es werden dabei alle Leerzeichen nach dem Satz-Ende entfernt. Klasse!!

------------------
--------

Gruß

Kristof

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cossi
Mitglied



Sehen Sie sich das Profil von cossi an!   Senden Sie eine Private Message an cossi  Schreiben Sie einen Gästebucheintrag für cossi

Beiträge: 33
Registriert: 14.12.2006

erstellt am: 15. Dez. 2006 12:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo zusammen,

ich hab da ne Frage: wie kann ich mit vba alle Leerzeichen in einer Tabelle entfernen?

bisher hab ich mir mit diesem code geholfen

Code:
Public Sub ersetzen()
Dim i As Integer
For i = 1 To 1000
    Sheet1.Range("G1", "H & i") = Replace(Sheet1.Cells(i, 1).Value, " ", "", , 2)
Next i
End Sub

Jedoch arbeitet dieser nur auf einer Spalte. Kann der Code so modifiziert werden, dass die gesamte Tabelle von voranstehenden Leerzeiczhen befreit wird?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 15. Dez. 2006 13:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo,

... für das aktive Tabellenblatt gehts zB so:

Code:

Sub x()
    Cells.Replace " ", ""
End Sub

Gruss, Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 18. Dez. 2006 18:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inv-Kristof 10 Unities + Antwort hilfreich

Hallo,
da muß ich kurz mal Einspruch erheben. Dieser
Code:
Sub x()
    Cells.Replace " ", ""
End Sub
entfernt ALLE Leerzeichen, nicht nur die vorangestellten ;-( Dafür ist er sehr kurz und sehr effektiv;) .

Die Aufgabe

Zitat:
Jedoch arbeitet dieser nur auf einer Spalte. Kann der Code so modifiziert werden, dass die gesamte Tabelle von voranstehenden Leerzeiczhen befreit wird
ließe sich z.B. mit LTrim lösen - siehe Beiträge von Thomas H. weiter oben. Hier mal ein (verkürzter) Vorschlag, der über mehrere Spalten hinweg arbeitet:
Code:
Sub y()
'vorher einen BEREICH markieren, NICHT das gesamte Blatt!!!
    Dim zelle As Variant
    For Each zelle In Selection
        zelle.Value = LTrim(zelle.Text)
    Next
End Sub
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz