Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

String immer nach / trennen und in neue Zelle

String immer nach / trennen und in neue Zelle
27.03.2013 09:16:16
Peter
Hallo VBA-Profis,
ich habe einen String, den ich immer nach dem "/" teilen möchte, der nächste Teil soll dann in die Zelle daneben und immer so weiter.
BSP:
Haus 1/ Frau/ Müller/ Martina
Apartment 3/ Familie/ Schulz/ /
Landhaus/ Herr und Frau/ Kleber/ /mit Hund
Ich habe es versucht mit der Split-Funktion, aber die gibt nur immer díe Unterkunft an.
Viele Grüße
Peter

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

Betreff
Datum
Anwender
Anzeige
AW: String immer nach / trennen und in neue Zelle
27.03.2013 09:26:12
{Boris}
Hi Peter,
genau dafür wurde Daten-Text in Spalten-Trennzeichen: / - erfunden ;-)
Ansonsten geht das natürlich auch mit der Split-Funktion:
Sub til()
Const S As String = "Haus 1/ Frau/ Müller/ Martina"
Dim x As Long
Dim var As Variant
var = Split(S, "/")
For x = 0 To UBound(var)
MsgBox var(x)
Next x
End Sub
VG, Boris

AW: String immer nach / trennen und in neue Zelle
27.03.2013 09:38:49
Ralf
Hallo Peter,
Boris' Code funzt doch prima. Musst den halt nur auf deine Gegebenheiten anpassen.
Gruß Ralf

Formel oder VBA? owT
27.03.2013 09:26:37
Ralf

AW: Formel oder VBA? owT
27.03.2013 09:33:13
Peter
Hallo nochmal,
ich brauche es in VBA.
Vielen Dank!
PS.Das von Boris funktioniert leider auch nicht. Er geht einfach nciht weiter zum 2./.....

Anzeige
AW: Formel oder VBA? owT
27.03.2013 10:08:33
{Boris}
Hi Peter,
verbunden Zellen - machen nur Probleme.
Dennoch:
Sub til()
Dim x As Long, y As Long, i As Long, var As Variant
For y = 2 To 4
For x = 1 To 31
If Cells(y, x + 1).MergeCells Then
var = Split(Cells(y, x + 1), "/")
For i = 0 To UBound(var)
Cells(y, 35 + i) = var(i)
Next i
Exit For
End If
Next x
Next y
End Sub
VG, Boris

Anzeige
AW: Formel oder VBA? owT
27.03.2013 12:00:58
Peter
Danke Boris!
Und wie müsste ich es ausgeben, wenn ich es auf ein anderes Tabellenblatt in Spalten B, D, F , E und H gelistet haben möchte, jeweils in die nächste freie Zeile?
Viele Grüße
Peter

Nix für ungut...
27.03.2013 12:06:29
{Boris}
Hi Peter,
...dann lad doch bitte Deinen Originaltabellenaufbau inkl. exakter Anforderung hoch - dann bau ich (oder jemand anders) es Dir ein.
VG, Boris

AW: Nix für ungut...
27.03.2013 13:19:54
Peter
Hallo Boris,
das kann ich aus Datenschutzgründen leider nicht machen :(
Hättest du trotzdem einen Tip für mich?
Viele Grüße
Peter

Musterdateien und Datenschutz...
27.03.2013 13:53:07
Sheldon
Hallo Peter,
es geht nur um den Tabellenaufbau. Keiner will hier deine Echtdaten sehen, es reichen drei oder vier Beispiel-Datensätze und eben der komplette Tabellenaufbau. Niemand hat Lust, eine Tabelle nachzubauen, die es schon gibt. V.a. weil das immer häppchenweise passiert, wie hier in deinem Thread, wo ja auch erst nach und nach die Probleme von dir benannt werden.
Also, mach dich ans Basteln (der Musterdatei)!
Gruß
Sheldon

Anzeige
AW: Musterdateien und Datenschutz...
27.03.2013 15:01:26
Peter
Hallo Zusammen,
ich habe mal versucht eine Musterdatei zu basteln:
https://www.herber.de/bbs/user/84567.xls
Hoffentlich könnt ihr mir helfen!
Vielen Dank und viele Grüße!
Peter

AW: Musterdateien und Datenschutz...
29.03.2013 13:20:23
{Boris}
Hi Peter,
hier ist ein Code, der das erledigt. Der Monat wird aber STATISCH eingetragen, da ich nicht weiß, wie Dein kompletter Tabellenaufbau mit allen Monaten aussieht (und wo man dann den Monat auslesen könnte).
Es wird auch nicht auf Doppelungen geachtet. Außerdem wird erstmal pauschal Zeile 3 bis 10 abgearbeitet - das musst Du dann natürlich auch noch auf Deinen echten Bedarf anpassen.
Aber teste selbst.
Option Explicit
Sub til()
Dim x As Long, y As Long, var As Variant, sTemp As String, lRow As Long
For y = 3 To 10
For x = 1 To 31
If Tabelle2.Cells(y, x + 1).MergeCells Then
If Tabelle2.Cells(y, x + 1).MergeArea(1).Address  sTemp Then
With Tabelle1
var = Split(Tabelle2.Cells(y, x + 1), "/")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lRow, 1) = y
.Cells(lRow, 2) = var(0)
.Cells(lRow, 3) = Tabelle2.Cells(y, 1)
.Cells(lRow, 4) = var(1)
.Cells(lRow, 5) = var(2)
.Cells(lRow, 6) = var(3)
.Cells(lRow, 7) = x
.Cells(lRow, 8) = x + Tabelle2.Cells(y, x + 1).MergeArea.Count - 1
.Cells(lRow, 9) = Tabelle2.Cells(1, 2)
.Cells(lRow, 10) = var(4)
End With
sTemp = Tabelle2.Cells(y, x + 1).Address
End If
End If
Next x
Next y
End Sub
VG, Boris
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige