2.9k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

habe schon alles gegoogelt aber keine Lösung gefunden, vielleicht habe ich bei euch Glück.
In einer Datei für ich eine neue Zeile für einen neuen Datensatz ein. Ich möchte dabei die Formeln (keine Werte!) aus einer anderen Zeile übernehmen. Die Formelwerte sind dann erst einmal 0 bis ich diesen Datensatz in den Datenfeldern befülle.
Mit
Rows(170).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

klappt das aber nicht, da immer die Werte der kopierten Zeile mitkommen. Hat jemand einen Tipp??
Gruß Andreas

13 Antworten

0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Wie sehen denn die Formeln aus?
Möglicherweise sind die Zellbezüge mit einem Dollarzeichen versehen.
Das verhindert die automatische Anpassung an die neue Zeile.

Bsp:
=A1+A2 wird beim Kopieren angepasst
=$A$1+$A$2 hier werden die Bezüge beim Kopieren starr übernommen.

Gruß Flupo
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
danke für deine Antwort, aber ich habe mich sicher nicht ganz klar ausgedrückt.
Ein Datensatz den ich kopieren möchte besteht in den einzelnen Zellen aus Werten oder Formeln, die mit diesen Werten rechnen. Jetzt füge ich einen neuen Datensatz in das Sheet ein. Dabei will ich aber aus dem kopierten Datensatz nur die (angepassten) Formeln ohne die entsprechenden Werte übernehmen. Dann trage ich im neuen Datensatz neue Werte ein (dabei will ich die kopierten nicht überschreiben, diese Zellen sollen leer sein), so dass sich die Zellen mit den kopierten Formeln neu berechnen.
Gruß A.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

wie gewünscht

gruss nighty

Dim zelle As Range
Set zelle = Cells(1, 1).SpecialCells(xlCellTypeFormulas)
Range("A4:C4").FormulaR1C1 = zelle.FormulaR1C1

p.s.
schau mal hier im Forum bei dir unter persönliche nachrichten
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

verschiedene Formeln erfordern eine schleife

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

Rows ???

das möchtest du nicht wirklich ... wieviel spalten hat dein Excel ... *kicher kicher*

gruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
danke nighty! Hatte gehofft, dass es ohne Schleife geht... aber dann eben doch.
Bei den persönlichen Nachrichten habe ich deine Visitenkarte gefunden.

Gruß A.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

es sind einige makro Beispiele in den Nachrichten

gruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hi,

ah, das hatte ich ja noch gar nicht gesehen... Toll, sehr gut und interessant! Vielen Dank!!


Habe aber auch noch eine Frage zu deiner Formel oben:
Set zelle = Cells(1, 1).SpecialCells(xlCellTypeFormulas)
Range("A4:C4").FormulaR1C1 = zelle.FormulaR1C1

Was bedeutet dieses FormulaR1C1? Ich verwende ja eigentlich Buchstaben als Spaltenbezeichnung. Hat das damit was zu tun ?
A.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hi
habe die Schleife

For i = 6 To 39 Step 3
Set zelle = Cells(5, i).SpecialCells(xlCellTypeFormulas)
Cells(170, i).FormulaR1C1 = zelle.FormulaR1C1
Next

Ich kriege dabei aber nicht die Formel aus Cells(5,i) nach Cells(170,i). Irgendwas mache ich da noch falsch...
A.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

oder so

gruss nighty

Sub DeineSchleife()
Dim Bereich As Range
For Each Bereich In Range("$A$1:$C$1")
Cells(ActiveCell.Row, Bereich.Column) = Bereich.FormulaR1C1
Next
End Sub
...