Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Extrahieren zum 10.

Extrahieren zum 10.
22.01.2007 12:07:05
Venen0
Hallo Leute,
habe folgendes Problem und schon viele deletantische Lösungen gefunden. Hoffe auf einen elegantere ;)
In einer Spalte stehen folgende Daten: (500 Zeilen)
Biek Claudia PG O 3 BLN DE +49 (31) 3464-4599 claudia.biek@fruchtsaft.com
Daten zwischen den // sollen jeweils in eine Spalte
//Biek //Claudia //PG O 3 BLN DE// +49 (31) 3464-4599 //claudia.biek@fruchtsaft.come//
Über Vorschläge, sei es mit Formeln oder VBA würde ich mich sehr freuen.
Viele Grüsse

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Extrahieren zum 10.
22.01.2007 12:27:20
praetorius
Hallo Venen0,
als Anregung versuchs mal mit
Option Explicit

Sub test()
'Biek Claudia PG O 3 BLN DE +49 (31) 3464-4599 claudia.biek@fruchtsaft.com
Dim Tabelle As Worksheet
Set Tabelle = ThisWorkbook.Sheets(1)
Dim inhalt As String
Dim a As Variant
Dim i, zeile As Integer
inhalt = "Biek Claudia PG O 3 BLN DE +49 (31) 3464-4599 claudia.biek@fruchtsaft.com"
a = Split(inhalt, " ")
zeile = 1
Tabelle.Range("A" & zeile).Value = a(0)
Tabelle.Range("B" & zeile).Value = a(1)
Tabelle.Range("C" & zeile).Value = a(2) & " " & a(3) & " " & a(4) & " " & a(5) & " " & a(6)
Tabelle.Range("D" & zeile).Value = a(7) & a(8) & a(9)
Tabelle.Range("E" & zeile).Value = a(10)
End Sub

good luck
Anzeige
AW: Extrahieren zum 10.
22.01.2007 12:34:51
Venen0
Ich bin begeistert. Vielen Dank.
Jetzt muss ich nur noch versuchen ne Schleife draus zu basteln, damit alle 500 Zeilen entsprechend formatiert werden. Mit viel gewurschtel krieg ich das schon hin :)
Danke noch mal!
AW: Extrahieren zum 10.
22.01.2007 13:13:40
Venen0
So richtig auf die Reihe krieg ich es nicht :(
Habe noch mal eine zweites Beispiel eingefügt. Der Bereich, zwischen Name und Telefonnr. müsste durch das "+" und nicht die Leerzeichen abgegrenzt sein.
Die Schleife funzt auch nicht.
Danke schon mal ;D
Grüße
Option Explicit

Sub test()
'Biek Claudia DG O 3 BLN DE +49 (31) 3565-4599 claudia.biek@fruchtsaft.com
'Brume Klaus FED ZENTRAL DE +49 (9232) 84-8296 klaus.brume@fruchtsaft.com
Dim Tabelle As Worksheet
Set Tabelle = ThisWorkbook.Sheets(3)
Dim inhalt As String
Dim a As Variant
Dim i, zeile As Integer
Dim row As Variant
Dim erow As Variant
erow = Sheets(3).Cells(Rows.Count, 1).End(xlUp).row
row = Sheets(3).Cells(1, 1)
Do Until row = erow + 1
inhalt = row
a = Split(inhalt, " ")
zeile = 1
Tabelle.Range("A" & zeile).Value = a(0)
Tabelle.Range("B" & zeile).Value = a(1)
Tabelle.Range("C" & zeile).Value = a(2) & " " & a(3) & " " & a(4) & " " & a(5) & " " & a(6)
Tabelle.Range("D" & zeile).Value = a(7) & a(8) & a(9)
Tabelle.Range("E" & zeile).Value = a(10)
row = row + 1
Loop
End Sub

Anzeige
AW: Extrahieren zum 10.
22.01.2007 13:28:29
Franc
Schleife schreiben ist kein Problem mit For to next aber dein 2. Beispiel unterscheidet sich zum ersten darin, das der Teil
DG O 3 BLN
und
FED ZENTRAL DE
unterschiedlich viele Teile haben. Das würde bei dem Makro zu Fehlern führen und die Werte stehen falsch drin.
Kann sich das imer unterscheiden oder war das eine Ausnahme?
AW: Extrahieren zum 10.
22.01.2007 13:35:06
praetorius
Hallo Venen0,
freut mich, dass mein Vorschlag so gut ankommt. Ich habe den Code etwas modifiziert. Im mittleren Teil werden jetzt die Teile solange aneinander gehängt und durch Leerzeichen getrennt, bis im nächsten Teil als erstes Zeichen ein Pluszeichen erscheint. Die Schleife habe ich auch eingefügt.
Option Explicit

Sub test()
'Biek Claudia PG O 3 BLN DE +49 (31) 3464-4599 claudia.biek@fruchtsaft.com
'Brume Klaus FED ZENTRAL DE +49 (9232) 84-8296 klaus.brume@fruchtsaft.com
Dim Tabelle As Worksheet
Set Tabelle = ThisWorkbook.Sheets(1)
Dim inhalt, angabe As String
Dim a As Variant
Dim i, zeile As Integer
Dim gefunden As Range
zeile = 1
'Die Range-Variable sucht in der Spalte A die erste leere Zelle
'Ich gehe davon aus, dass A immer belegt ist. Trifft dies nicht für A, sondern
'für eine andere Spalte zu, muss angepasst werden.
Set gefunden = Tabelle.Columns("A").Find("")
'Nur Fehlerbehandlung, sollte obsolet sein
If Not gefunden Is Nothing Then
'und letzt die Schleife
'Annahme: in Zeile 1 stehen Überschriften, deshalb erst ab Zeile 2
For zeile = 2 To gefunden.Row
'Hier angebn, wo der Datensatz herkommt, z.B.
inhalt = Tabelle.Range("A" & zeile).Value
'            inhalt = "Brume Klaus FED ZENTRAL DE +49 (9232) 84-8296 klaus.brume@fruchtsaft.com"
a = Split(inhalt, " ")
Tabelle.Range("A" & zeile).Value = a(0)
Tabelle.Range("B" & zeile).Value = a(1)
angabe = ""
i = 2
Do While Left(a(i), 1) <> "+"
angabe = angabe & a(i) & " "
i = i + 1
Loop
Tabelle.Range("C" & zeile).Value = angabe
Tabelle.Range("D" & zeile).Value = a(i) & a(i + 1) & a(i + 2)
Tabelle.Range("E" & zeile).Value = a(i + 3)
Next zeile
End If
End Sub

Sag mal Bescheid, ob es geklappt hat.
good luck
Anzeige
AW: Extrahieren zum 10.
22.01.2007 14:16:42
Franc
Super Makro
Hab ich gleich mal gespeichert falls ich mal so etwas oder teile davon brauche.
AW: Extrahieren zum 10.
22.01.2007 14:43:14
Venen0
Super, wieder ne Menge dazugelernt. Besten Dank !!!!
Viele Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige