WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Excel: Zelleninhalt aufteilen (VBA) (http://www.wcm.at/forum/showthread.php?t=92980)

Kasparov 02.04.2003 15:55

Excel: Zelleninhalt aufteilen (VBA)
 
Hallo Leute,

ich hab da folgendes Problem bei Excel: in einer Zelle habe ich alles mögliche stehen, nämlich PLZ, Ort, Strasse, Str.-Nr., Tel.-Nr.
Diese Daten würde ich gerne auf 5 Spalten aufteilen (also in 5 benachbarte Zellen umverteilen).

Im Internet habe ich unter http://www.sigmundhalpern.de/ ein Makro gefunden, das dem Ganzen schon sehr nahe kommt (siehe unten), aber eben nicht ganz ...
Kann mir vielleicht einer von euch Gurus das Makro umbauen? Wäre wirklich toll, da ich bei ein paar 100 Einträgen sonst ewig brauchen würde und ich mich mit VBA u.dergl. leider Null auskenne!

Vielen Dank,
Kasp.

------

Aus einem markierten Bereich die Vornamen und Nachnamen trennen und in die Nachbarzellen
einlesen:

Sub trennen()

Dim a%, b%, i%
Dim Zelle As Object

'Bereich muß markiert sein,
' für jede Zelle in der Markierung:
For Each Zelle In Selection
With Zelle
'Suche nach der ersten Leerstelle
a = InStr(.Value, " ")
'Schleife, falls mehrere durch leer getrennte Vornamen
'vorhanden sind, z. B. Ute Elke Meier
For i = 0 To Len(.Value)
b = InStr(Right(.Value, Len(.Value) - a), " ")
a = InStr(Right(.Value, Len(.Value) - a), " ") + a
Next
On Error Resume Next 'falls leere Zellen markiert sind
'Aufteilen auf die 1. Zelle rechts und die 2. Zelle rechts
'Vorname
Cells(.Row, .Column + 1).Value = Left(.Value, a - 1)
'Name
Cells(.Row, .Column + 2).Value = Right(.Value, Len(.Value) - a)
End With
Next

End Sub

flinx 02.04.2003 16:04

Wäre es nicht leichter, die Tabelle als Unicode-Text zu speichern und dann die Text-Datei wieder zu importieren. Da kannst schön festlegen, wie der Text in die Spalten übernommen wird.

Kasparov 02.04.2003 16:38

@flinx:

Stimmt, sollte vorerst genügen

DANKE,
Kasp.

Seidl 02.04.2003 20:40

Hier noch ein kleines Sub das die Sache auch sehr schön erledigt.

Kasparov 02.04.2003 22:19

@Seidl:

Interessant, nur funkts bei mir nicht...
"Fehler beim Kompilieren: Sub oder Function nicht definiert"

MfG, Kasp.

Seidl 03.04.2003 08:19

Das ist recht verwunderlich. Ich habe es gerade auf einem anderen Rechner laufen lassen und konnte keinerlei Probleme feststellen.
Ich glaube zwar eigentlich nicht, dass es an der Version von Excel liegen kann aber wer weiss. Ich benutze Office-XP. In welcher Version hast du getestet? Wie hast du das File in Excel eingefügt?

Kasparov 04.04.2003 11:16

@Seidl:

Excel 97. Eingefügt über VB-Editor - Datei importieren.
Das selbe in grün über VB-Editor - Ansicht - Code - <c&p>

MfG, Kasp.

Seidl 04.04.2003 15:02

Schräge Sache. In welcher Zeile fliegt er denn raus? Normalerweise legt der Editor ja eine Markierung auf den Codeteil der einen Fehler verursacht hat.
Wenn's sich ausgeht werde ich am Wochenende auf meiner heimatlichen Maschine mal Excel 97 installieren. Schon rein aus Interesse was da der grosse Unterschied ist.

Kasparov 04.04.2003 18:18

ich werd mal meinen Schlepptop mit Excel 2002 anwerfen, ich glsub das geht schneller :)

Kasp.

Seidl 06.04.2003 14:20

Wie gesagt war ich auch selbst neugierig. Der Übeltäter war die Funktion 'split' die offensichtlich in dieser Version noch nicht enthalten ist.
Ich habe mir schnell einen kleinen Ersatz geschrieben und schon hat die Sache funktioniert.

Kasparov 06.04.2003 14:29

do muaß wos is
 
Hmmmm, also Fehler wird jetzt zwar keiner mehr angezeigt, aber irgendwie funkts auch nicht so ganz: wenn ich eine Zelle mit vielen Einträgen markiere, kopiert mir der modsplitter einfach die ganze Zelle nach rechts (also die Zelle rechts schaut dann ganz genau so aus). Gesplittet wird da nix, nur kopiert ... oder was mach ich falsch? :confused:

Kasp.

Seidl 06.04.2003 15:45

Hast du die Konstante für den Delimiter entsprechend deiner Daten geändert?
Ich habe als Trennzeichen ", " also Beistrich & Leerzeichen festgelegt.

Kasparov 06.04.2003 18:58

stimmt, nur mit Leerzeichen funktionierts :)

Thx, Kasp.

Seidl 06.04.2003 19:31

Also das kann ich jetzt so nicht im Raum stehen lassen. Das sieht ja so aus als wäre mein Programm schneller eingeschnappt als eine Freundin. :D

Mit einer Konstantendefinition von

Const strDelemiter As String = "Sepperl"

würde es auch mit durch 'Sepperl' getrennten Daten funktionieren. :p

Kasparov 06.04.2003 19:36

Hoppala
 
hehehehe

Nein, da hast mich falsch verstanden!
Meine Zellen-Daten sind "nur" durch ein Leerzeichen getrennt. Wenn ich jetzt "nur" das Leerzeichen im Sub (und nicht zusätzlich den Beistrich oder einen Sepperl) stehenlasse (Const strDelemiter As String = " "), dann funkts :lol: :lol: :lol:

MfG, Kasp.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag