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

Zelleninhalte verschieben...

Zelleninhalte verschieben...
10.10.2006 11:27:10
Stefan
Hallo zusammen,
ich steh mal wieder vor einem Problem, und mir fehlt leider jeglicher Lösungsansatz.
Ich habe eine Tabelle in der Adressdaten gespeichert sind. (4 Spalten für Name1-3 sowie Strasse) sowie eine Spalte mit PLZ und Ort.
Nun muss ich, um die Daten in eine spezielle Anwendung zu importieren die Inhalte in eine gewisse Form bringen.
Die Spalte PLZORT bleibt unberührt. Es geht mir lediglich um die ersten 4 Spalten.
Ziel muss sein, das die Spalte 2 sowie 3 immer gefüllt ist. Sind mehr als 2 Zellen gefüllt kommt Spalte 4 dazu. Erst bei 4 gefüllten Zellen, dann Spalte 1.
Das Problem an der Sache ist nun, das die Zellen nicht regelmäßig gefüllt sind. Es kann also sein, das
a) Spalte 1 + 3 + 4
oder
b) Spalte 1 + 4
oder
c) Spalte 1 + 2 + 3 + 4
gefüllt sind.
Gibt es eine Möglichkeit, mittels Makro die Daten, so zu verschieben, wie ich sie brauche?
In meinen Beispielen wären das dann:
a) Spalte 2 + 3 + 4
b) Spalte 2 + 3
c) Spalte 1 + 2 + 3 + 4
Bin für jeden Hinweis dankbar.
Stefan
P.S. in dbase haben wir dieses Problem früher mittel REPLACE Funktion gelöst.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte verschieben...
10.10.2006 12:30:30
Reinhard
Hi Stefan,
Option Explicit
Sub tt()
Dim Satz As String, Satz2, Spa As Byte, Zei As Long
For Zei = 1 To Range("A65536").End(xlUp).Row
Satz = ""
For Spa = 1 To 4
Satz = Satz & Cells(Zei, Spa) & "xyz"
Next Spa
Satz2 = Split(Satz, "xyz")
For Spa = 0 To UBound(Satz2)
If Spa <> 3 Then
Cells(Zei, 2 + Spa) = Satz2(Spa)
Else
Cells(Zei, 1) = Satz2(Spa)
End If
Next Spa
Next Zei
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Zelleninhalte verschieben...
10.10.2006 12:50:07
Stefan
Hallo,
danke für deine Antwort.
Bewirkt aber leider nicht das, was ich mir vorstelle.
Anbei mal eine Mustertabelle mit vorher und nachher.
Vielleicht verdeutlicht das mein Ziel.
Gruß
Stefan
https://www.herber.de/bbs/user/37292.xls
Anzeige
AW: Zelleninhalte verschieben...
10.10.2006 13:31:29
Reinhard
Hi Stefan,
Option Explicit
Sub tt()
Dim Satz As String, Satz2, Spa As Byte, Zei As Long
For Zei = 2 To ActiveSheet.UsedRange.Rows.Count
Satz = ""
For Spa = 1 To 4
If Cells(Zei, Spa) <> "" Then Satz = Satz & Cells(Zei, Spa) & "xyz"
Next Spa
Satz2 = Split(Left(Satz, Len(Satz) - 3), "xyz")
If UBound(Satz2) < 3 Then
Range("A" & Zei & ":D" & Zei).ClearContents
For Spa = 0 To UBound(Satz2)
Cells(Zei, 2 + Spa) = Satz2(Spa)
Next Spa
End If
Next Zei
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Zelleninhalte verschieben...
10.10.2006 13:59:30
Stefan
Hallo Reinhard,
vielen Dank. Funktioniert!
Mich würde jedoch interessieren, was da genau passiert, damit ich es in Zukunft auch selber anwenden kann.
Gruß
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige