Hallo hopeless,
natürlich lässt sich das mit VBA lösen.
Ich stelle fest, dass die Anzahl der Werte nach der Aufsplittung unterschiedlich sein kann (in deinem Beispiel 9 bzw. 8), dass aber die k und lk nur in der 3. und 4. Spalte gelöscht werden sollen.
Zuerst musst du feststellen, wie viele Zeilen bearbeitet werden soll:
Dim a() As String
Worksheets("Tabelle1").Activate 'oder der Name deiner Tabelle
Range("a1").End(xlDown).Activate 'oder deine Spalte
Anzahl = ActiveCell.Row
Dann kannst du z.B. mit einer For-Next-Schleife alle Zellen zerlegen und die l und lk abschneiden und in die 2. Tabelle schreiben (s. ggf. in der VBA-Hilfe nach):
For i = 1 To Anzahl
a = Split(Worksheets("Tabelle1").Cells(i, 1)) 'oder deine Tabelle und Nummer deiner Spalte als 2. Index
a(2) = Left(a(2), Len(a(2)) - 1) 'das mit Split erzeugt Array beginnt bei 0
a(3) = Left(a(3), Len(a(3)) - 2)
For j = 0 To UBound(a)
Worksheets("Tabelle2").Cells(i, j + 1) = a(j) 'oder der Name deier Zieltabelle
Next j
Next i
Zur Übertragung nach Access siehe sinngemäß Sensewell v. 12.12.07, 13:24:16. Du musst allerdings das Beispiel für die Abbildung Excel nach Access anpassen.
Viel Erfolg
Holger
hopeless schrieb am 20.12.2007 13:43:20:
Hi, ich habe da ein Problem und ich hoffe mir kann dabei jemand helfen.
Ich habe eine Tabelle in denen in einer Zelle Informationen gegeben werden die aber aufgesplittet mehr Sinn machen. Deshalb sollen diese Informationen aufgesplittet werden und in verschiedene Zellen auf verschiedene Spalten verteilt werden. (optimale Lösung wäre die Übertragung der Daten direkt in eine ACCESS Datenbank).
Die Aufteilung der Nummer soll folgendermaßen geschehen:
Die Nummer die gesplittet werden soll, sieht so aus (innerhalb dieser Spalte sind mehrere Nummern die ebenfalls nach diesem Muster automatisch gesplittet werden sollen. Die Nummern sehen alle ähnlich in ihrer Zusammensetzung aus, nur andere Zahlen bzw. Buchstaben werden verwendet):
177 S 3 0,2k 66lk GDP 3 FDGS (Jeder dieser Nummernabschnitte hat eine eigene Bedeutung und soll somit in einem neuen Tabellenblatt bzw. in einer Datenbank in einzelne Spalten untergebracht werden)
Das Ergebnis soll also folgendermaßen aussehen (177), (S), (3), (0,2)-> ohne k ist in der gesamten Spalte in jeder Zelle vorhanden, (66)-> ohne lk gleicher Grund wie bei k, (GDP), (3), (FDGS) -> alles was in Klammern steht soll wie beschrieben in eine eigene Spalte stehen. Beispiel:
Infos die in einer Zelle bzw. Spalte stehen
577 S 3 0,2k 66lk GDP 3 FD GS
288 P 6 4,4k 88lk SDP 7 PDRT
usw.--> Infos werden genauso dargestellt
neues Tabellenblatt bzw. Datenbanktabelle --> aufgesplittet in verschiedenen Spalten:
577 S 3 0,2 66 HGP 3 FD GS
288 P 6 4,4 88 SDP 7 PDRT
Ist dies mit VBA Programmierung möglich, wenn ja was für ein Programmcode könnt ihr mir hierfür empfehlen. Ich hoffe ihr könnt mir weiterhelfen. Vielen Dank schonmal im voraus.
MfG hopeless
|