Live-Forum - Die aktuellen Beiträge
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

Wert einer Zelle in die nächste übertragen

Wert einer Zelle in die nächste übertragen
29.07.2005 12:35:29
Paulo
Hallo,
ich habe eine Excel-Tabelle, in der in jeder Zelle Werte mit 10 Zeichen stehen. Nun möchte ich zwischen jede Zeile, in der Werte stehen eine Leerzeile einfügen, den Wert der vorhergehen Zelle ab der 5. Stelle einfügen und in der Originalzelle den Originalwerte minus der letzten 5 Zeichen einfügen. Anbei ein Beispiel:
Original:
hallo12345 hallo12346 hallo12347
ciaoi67890 ciaoi67891 ciaoi67892
grüzi54321 grüzi54322 grüzi54323
Leerzeile:
hallo12345 hallo12346 hallo12347

ciaoi67890 ciaoi67891 ciaoi67892

grüzi54321 grüzi54322 grüzi54323
"gekappte" Zellen:
hallo hallo hallo
12345 12346 12347
ciaoi ciaoi ciaoi
67890 67891 67892
grüzi grüzi grüzi
54321 54322 54323
Ich habe hierfür ein Makro geschrieben:

Sub Leerzeilen()
Set wksTemp = ActiveSheet
Menge = wksTemp.UsedRange.Rows.Count
For i = Menge To 2 Step -1
Menge1 = i & ":" & i
Rows(Menge1).Select
Selection.Insert Shift:=xlDown
Next
ueber5
End Sub


Sub ueber5()
Dim o
Dim p
Dim Nome
Dim q
Dim r
Dim s
Dim t
Application.ScreenUpdating = False
Nome = ThisWorkbook.Name
Set t = ActiveSheet.UsedRange
p = t.Rows.Count
s = t.Columns.Count
Workbooks(Nome).Worksheets("tabelle1").Range("A1").Select
For r = 1 To s
For q = 1 To p
o = Selection.Value
o = Right(o, 5)
ActiveCell.Offset(1, 0).Value = o
Workbooks(Nome).Worksheets("tabelle1").Cells(q, r).Select
Next q
Next r
o = Selection.Value
o = Left(o, 5)
ActiveCell.Offset(1, 0).Value = o
Range("A1").Select
Application.ScreenUpdating = True
End Sub


Sub weniger5()
Dim a
Dim e
Dim Nomen
Dim b
Dim j
Dim k
Dim m
Application.ScreenUpdating = False
Nomen = ThisWorkbook.Name
Set m = ActiveSheet.UsedRange
e = m.Rows.Count
k = m.Columns.Count
Workbooks(Nomen).Worksheets("tabelle1").Range("A1").Select
For j = 1 To k
For b = 1 To e
a = Selection.Value
a = Left(a, 5)
ActiveCell.Value = a
Workbooks(Nomen).Worksheets("tabelle1").Cells(b, j).Select
Next b
Next j
a = Selection.Value
a = Left(a, 5)
ActiveCell.Value = a
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Leider klappt das nicht. Könnte Ihr mir evtl. weiterhelfen?
Gruß
Paulo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert einer Zelle in die nächste übertragen
29.07.2005 21:12:23
Peter
Hallo Paulo,
was hälst du von meiner Lösung?
https://www.herber.de/bbs/user/25135.xls
Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
AW: Wert einer Zelle in die nächste übertragen
30.07.2005 07:10:20
Erich
Hallo Paulo,
oder so?

Sub Zellen_teilen()
Dim mm As Long, rr As Long, cc As Integer
mm = IIf([A65536] > "", 65536, [A65536].End(xlUp).Row)
If 2 * mm > 65536 Then MsgBox "Zu viele Zeilen - Abbruch", 16: Exit Sub
For rr = mm To 1 Step -1
Rows(rr + 1).Insert
For cc = 1 To Cells(rr, Columns.Count).End(xlToLeft).Column
Cells(rr + 1, cc) = Right(Cells(rr, cc), 5)
Cells(rr, cc) = Left(Cells(rr, cc), 5)
Next cc
Next rr
End Sub

Grüße aus Kamp-Lintfort
Erich
Anzeige
AW: Wert einer Zelle in die nächste übertragen
02.08.2005 09:38:21
Paulo
Hallo Peter, hallo Erich,
vielen Dank für Eure Hilfe. Mein Makro sieht so kompliziert aus und Eure sehen so einfach und schlicht aus. Ich glaube, ich muss noch vieles lernen. Beide Makros klappen hervorragend. Es ist genau das, was ich gesucht habe. Vielen Dank nochmal und noch einen schönen Tag.
Grüße
Paulo

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige