Frage von Fireflice, 42

Excel vba formeln in Bereich kopieren ohne feste Werte zu löschen?

Hallo Zusammen,

ich möchte gerne mit einem commandbutton formeln in einem Bereich kopieren und auf einen anderen Bereich (selbes Layout) übertragen, aber ohne dabei feste Werte zu löschen.

Ich habe eine Grafik beigefügt, die als Beispiel dienen soll. Der Betrag von 20.000€ ist mit einer Formel aus Stunden und Stundensatz berechnet worden. Range("A1:B3") soll nun kopiert werden (nur die Formeln) und anschließend sollen diese in Range("A6:B8") eingefügt werden, allerdings ohne die festen Werte von "Stundensatz" und "Stunden" zu ersetzten duch 0 (das passiert nämlich immer wenn ich da Copy/Paste mache - egal ob mit "Inhalte einfügen" oder ohne)

Warum brauche ich für sowas ein Makro? (Das kann man doch auch per Hand machen!)

Die Tabelle ist in der Realität viel Größer (um die 1000 Zellen) und ich wollte die Bereiche dadurch schneller vereinheitlichen.

Danke schon mal für eure Unterstützung!

Expertenantwort
von Iamiam, Community-Experte für Excel, 18

Blick bei Deinem Blatt nicht durch, ich gehe mal von einer Schichtarbeitszeitberechnung aus,

Gehen in G1, Kommmen in K1, Pausen in H1,l1,J1, (Industrie-)Stundensatz in F1

ZeiT in T1 =(Rest(Gehen-Kommen;1)-summe(H1:J1))

der Tageslohn (in L1)

...formulalocal = "=F1*24*" & Mid(...Formulalocal, 2, 999) & " )"

soweit das Prinzip (das , 2, schneidet das = am Anfang der vorhandenen Formel weg)

Das kannst Du mit einer

dim c

For each c in Selection

c.formulalocal = "=F1*24*" & Mid(c.Formulalocal, 2, 999) & " )"

next '-Schleife

auf viele Zellen anwenden

umständlich wirds, wenn andere Faktoren nicht $$ sind, sondern mitlaufen müssen: Ein Normal- oder ein Sondertariffaktor seien Zeilen-weise in S1:Sx, dann muss die Formel heissen:

"=S"& c.row &"*F1*24" &Mid...

Frag ggf zurück

Expertenantwort
von Ninombre, Community-Experte für Excel, 20

Wenn ich es richtig sehe, ist ja in dem Block nur eine Zelle mit einer Formel enthalten. Die anderen willst Du doch gar nicht kopieren, oder?

Range("B6").Formula = Range("B1").Formula
schreibt in B6 die Formel von B1

Du müsstest nur noch beschreiben, wie es auf dem Rest des Blattes passieren soll. Sind das feste Abstände zwischen den einzelnen Stellen mit Formeln oder muss man die Stellen erst suchen?

Keine passende Antwort gefunden?

Fragen Sie die Community