Supportnet / Forum / Tabellenkalkulation
Wert einer Zelle in die nächste übertragen
Frage
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
Antwort 1 von Aliba
Hi Paulo,
mit VBA kann ich Dir leider nicht helfen.
Formellösung wäre:
Nehmen wir an, deine Tabelle heisst Tabelle1
In ein neues Tabellenblatt die Formel:
=WENN(REST(ZEILE(A1);2)=1;LINKS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5);RECHTS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5))
Soweit benötigt nach unten und nach rechts kopieren.
Anschliessend alles markieren, kopieren und als Inhalte - Werte wieder einfügen.
CU Aliba
mit VBA kann ich Dir leider nicht helfen.
Formellösung wäre:
Nehmen wir an, deine Tabelle heisst Tabelle1
In ein neues Tabellenblatt die Formel:
=WENN(REST(ZEILE(A1);2)=1;LINKS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5);RECHTS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5))
Soweit benötigt nach unten und nach rechts kopieren.
Anschliessend alles markieren, kopieren und als Inhalte - Werte wieder einfügen.
CU Aliba
Antwort 2 von Aliba
Hi Paulo,
mit VBA kann ich Dir leider nicht helfen.
Formellösung wäre:
Nehmen wir an, deine Tabelle heisst Tabelle2
In ein neues Tabellenblatt die Formel:
=WENN(REST(ZEILE(A1);2)=1;LINKS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5);RECHTS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5))
Soweit benötigt nach unten und nach rechts kopieren.
Anschliessend alles markieren, kopieren und als Inhalte - Werte wieder einfügen.
CU Aliba
mit VBA kann ich Dir leider nicht helfen.
Formellösung wäre:
Nehmen wir an, deine Tabelle heisst Tabelle2
In ein neues Tabellenblatt die Formel:
=WENN(REST(ZEILE(A1);2)=1;LINKS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5);RECHTS(INDIREKT("Tabelle2!"&ADRESSE(AUFRUNDEN(ZEILE(A1)/2;0);SPALTE(A1)));5))
Soweit benötigt nach unten und nach rechts kopieren.
Anschliessend alles markieren, kopieren und als Inhalte - Werte wieder einfügen.
CU Aliba
Antwort 3 von Aliba
Nochmal ich,
jetzt war der erste Eintrag doch schon weg, dachte ich hätte ihn noch rechtzeitig gestoppt. Hatte da nen Fehler mit dem Tabellennamen.
CU Aliba
jetzt war der erste Eintrag doch schon weg, dachte ich hätte ihn noch rechtzeitig gestoppt. Hatte da nen Fehler mit dem Tabellennamen.
CU Aliba
Antwort 4 von Paulo
Hallo Aliba,
danke für Dein Posting. Ich habe dies jetzt getestet. Aber irgendwie klappt das nicht so recht. Irgendwie wird nur jede 2. Zeile berücksichtigt. Hast Du eine Idee warum?
Schon mal vielen Dank im voraus.
Gruß
Paulo
danke für Dein Posting. Ich habe dies jetzt getestet. Aber irgendwie klappt das nicht so recht. Irgendwie wird nur jede 2. Zeile berücksichtigt. Hast Du eine Idee warum?
Schon mal vielen Dank im voraus.
Gruß
Paulo
Antwort 5 von Aliba
Hi Paulo,
kannst Du mir mal einen Auszug Deiner Datei mailen.
Wichtig ist für mich, dabei zu sehen, wo Deine Daten beginnen und ob innerhald dieser Daten unregelmässige Leerzeilen sind.
CU Aliba
ali-gitti@t-online.xxxde
die 3 x vor de bitte rausnehmen
kannst Du mir mal einen Auszug Deiner Datei mailen.
Wichtig ist für mich, dabei zu sehen, wo Deine Daten beginnen und ob innerhald dieser Daten unregelmässige Leerzeilen sind.
CU Aliba
ali-gitti@t-online.xxxde
die 3 x vor de bitte rausnehmen
Antwort 6 von Paulo
Hallo Aliba,
sorry, habe jetzt gemerkt warum er nicht alle Daten genommen hat. Habe vorher mein Makro durchlaufen lassen und der hat Leerzeilen eingefügt. Jetzt, mit der "jungfräulichen" Datei scheint es zu klappen. Danke vorerst.
Gruß
Paulo
sorry, habe jetzt gemerkt warum er nicht alle Daten genommen hat. Habe vorher mein Makro durchlaufen lassen und der hat Leerzeilen eingefügt. Jetzt, mit der "jungfräulichen" Datei scheint es zu klappen. Danke vorerst.
Gruß
Paulo

