Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Find, String auseinandernehmen und Zeile einfügen

Find, String auseinandernehmen und Zeile einfügen
03.08.2005 14:14:49
SirOle
Hallo zusammen,
ich habe da ein etwas größeres Problem, was ich ohne Hilfe einfach nicht hinbekomme. Daher möchte ich hier mal fragen, ob Jemand mir dabei helfen kann.
Ich habe eine Excel-Spalte, in der mindestens eine Zeichenkette (Präfix + # + Beschreibung oder Titel) aufgeführt ist. Wenn es mehrere sind, werden diese durch ein "|" getrennt. Das Ganze sieht dann also ungefähr so aus:
Spalte A:
Zeile 1: TTKKK#Bescheibung oder auch Titel
Zeile 2: TLLKK#Bescheibung oder auch Titel|OOK#Bescheibung oder auch Titel|PPWKK#Bescheibung oder auch Titel
..
.
Nun möchte ich, dass immer wenn in der Zelle ein "|" gefunden wird, eine neue Zeile unter der Aktiven eingefügt wird und die Zeichenkette, angefangen vom Fundort des "|" bis entweder zum nächsten "|" (oder bis zum Ende) ausgeschnitten und in die eingefügte Zeile eingefügt wird.
Habe schon eine ganze Weile herumprobiert, leider scheitere ich derzeit schon am Finden des "|", da mir die Abfrage immer den kompletten String zurückgibt, was mir nicht viel hilft...bin für jede Hilfe dankbar!
Grüße
Ole

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 14:40:18
Reinhard
Hi Ole,
Alt+F11, Einfügen--Modul, Code reinkopieren, Editor schliessen
Aufruf über Extras --Makro --Makro
Option Explicit
Sub tt()
Dim n As Long, nn As Integer, s, z As Long
With ActiveSheet
Worksheets.Add
For n = 1 To .Range("A65536").End(xlUp).Row
s = Split(.Cells(n, 1), "|")
For nn = 0 To UBound(s)
z = z + 1
Cells(z, 1) = s(nn)
Next nn
Next n
ActiveSheet.Range(Cells(1, 1), Cells(z, 1)).Copy Destination:=.Range("A1")
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 15:26:38
SirOle
Hallo Reinhard,
superspitzenklasse, das funktioniert ja richtig gut! Ein kleines Problem habe ich dabei allerdings noch: Wenn ich eine weitere Spalte (oder mehrere) hinzunehme, dann funktioniert das Ganze leider nicht mehr...
ich teste mal schnell die Lösung von Matthias G, vielleicht geht das ja mit einer weiteren Spalte
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 15:29:56
Matthias
Hallo Ole,
ich habe nur die Prozedur zum Trenn einer Zelle geschrieben. Für wieviele Spalten du die anwendest, bleibt erst mal außen vor und müsste extra programmiert werden.
Gruß Matthias
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 15:31:47
Reinhard
Hi Ole,
ich glaube auch die andere Lösung ist für eine Spalte ausgelegt. Für mehrere Spalten bastle eine kleine Beispieldatei, wo Blatt1 die Rohdaten zeigt und Blatt2 nach der Aufsplittung und lade das hier hoch.
Weil was soll geschehen wnnn A1 2geteilt wird aber B1 3geteilt.
Gruß
Reinhard
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 16:00:34
SirOle
Hallo Reinhard,
stimmt, die andere Lösung ist auch nur auf eine Spalte ausgelegt. Das mit dem Hochladen kannst Du sehr gern machen, allerdings kann ich das dann erst Morgen austesten (in der Firma kann ich nix herunterladen). Aber ist kein Problem, mach eh so gegen 17 Uhr Schluß.
Zu Deiner Frage: Die 2te Spalte soll nicht geteilt werden, sie enthält lediglich zugeordnete Daten, die ich dann (mit den geteilten) weiterverarbeite. Mal zur Verdeutlichung:
VORHER sieht es so aus:
Spalte A Spalte B
ID1445 KKTTT#Beschreibung oder Titel|WWRRTTT#Beschreibung oder Titel
ID2222 KKTTT#Beschreibung oder Titel
NACHHER soll es so aussehen:
Spalte A Spalte B
ID1445 KKTTT#Beschreibung oder Titel
ID1445 WWRRTTT#Beschreibung oder Titel
ID2222 KKTTT#Beschreibung oder Titel
Das Aufüllen der 2ten Zeile in Spalte A ist aber kein Problem.
Vielen Dank und Grüße
Ole
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 16:14:35
Matthias
Hallo Ole,
erlaube mir, mich nochmal zu melden:

Sub Trennen(zelle As Range)
Dim f As Long, s As String
s = zelle.Value
f = InStr(s, "|")
If f > 0 Then
With zelle
.Offset(1, 0).EntireRow.Insert
.Offset(1, -1).Value = .Offset(0, -1).Value
.Value = Left(s, f - 1)
.Offset(1, 0).Value = Mid(s, f + 1)
End With
Trennen zelle.Offset(1, 0)
End If
End Sub
Sub TT1()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 1 Step -1
Trennen Cells(i, 2)
Next i
End Sub

hier wird der Wert von SPalte A in die eingefügte Zeile übernommen.
Gruß Matthias
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 16:24:26
SirOle
Hallo Matthias,
Spitze, das ist es! 1000 Dank, da wäre ich im Leben nicht drauf gekommen, aber wenn man es dann so vor sich sieht, dann ist es klar ;o)
Danke noch und Grüße
Ole
*grins* *kicher* danke dir dafür :-)
03.08.2005 23:15:28
Reinhard
Hallo Ole,
dein "Das mit dem Hochladen kannst Du sehr gern machen" hat mich fast vor Lachen vom Stuhl gerissen.
Danke dir echt, ich kann grad nur noch Grinsen, mir geht es super . :-)
Gruß
Reinhard
AW: *grins* *kicher* danke dir dafür :-)
04.08.2005 20:04:05
SirOle
Hehe,
schön, dass ich Dich erheitere! Aber ich hatte das so verstanden, dass Du eine Beispieldatei basteln wolltest, die Du dann hochlädst. Hab mich zwar auch gewundert, aber ich dachte mal: "der Mann weiß schon was er tut" ;o)
Dank Dir trotzdem nochmal
Grüße
Ole
Anzeige
AW: Find, String auseinandernehmen und Zeile einfü
03.08.2005 14:49:20
Matthias
Hallo Ole,
mein Voschlag:

Sub Trennen(zelle As Range)
Dim f As Long, s As String
s = zelle.Value
f = InStr(s, "|")
Debug.Print f
If f > 0 Then
With zelle
.Offset(1, 0).EntireRow.Insert
.Value = Left(s, f - 1)
.Offset(1, 0).Value = Mid(s, f + 1)
End With
Trennen zelle.Offset(1, 0)
End If
End Sub

Aufruf z.B.
Trennen ActiveCell
Kann du ja auch in eine Schleife einarbeiten.
Gruß Matthias
AW: Find, aufteilen, neue Zeile - für Spalten
04.08.2005 08:11:24
Erich
Hallo Ole,
probier doch mal
https://www.herber.de/bbs/user/25301.xls
Für dich könnten das Blatt "Trennen" und das Makro "Text_trennen" interessat sein.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Find, aufteilen, neue Zeile - für Spalten
04.08.2005 20:06:52
SirOle
Hallo Erich,
dank Dir für die Mithilfe, aber Matthias und Reinhard haben mir schon geholfen, mein Probelm ist gelöst und das Gesamtscript läuft prächtig!
Grüße
Ole

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige