Zellen einfrieren
#1
Guten Tag zusammen,

ich bin aktuell auf der Suche nach einer Möglichkeit, Zellen quasi einzufrieren. Ich hab schon etwas gesucht, aber noch nichts passendes gefunden. Ich würde mal etwas ausholen, ggf. hat jemand
ne gute Idee.

Es handelt sich um eine umfangreichere Excel-Mappe mit zahlreichen Tabellenblättern. In einem Blatt werden laufend Abrechnungsinformationen importiert und entsprechend verarbeitet. Auf Grundlage
zahlreicher Formeln und Verweisen wird nach dem Import neuer Abrechnungsdaten automatisch ausgeworfen was berechnet werden muss bzw. ob die Informationen des Imports valide sind usw. (alles zweitrangig). 
Über die Zeit ist das Abrechnungsblatt gewachsen und dient auch etwas für Statistik oder um ggf. alte Abrechnungen bei Fragen nachvollziehen zu können usw. 

Jetzt kommt es immer mal wieder zu Änderungen die Anpassungen an den Quellblättern erfordern. Das Problem, der Altbestand wird dadurch natürlich ebenfalls verändert, da sich die Formeln dort ja auch 
aktualisieren. Das haben wir bisher immer dann formeltechnisch noch irgendwie abgefangen, aber mittlerweile wird das zu komplex. Daher wäre es super, wenn es eine Möglichkeit gäbe, die alten Zeilen der
Tabelle einfach einzufrieren. D.h. eine Änderung tritt in Kraft und ich markiere dann Zeile z.B. 1500 - 3400 und sag "einfrieren". Dann mach ich die Änderung und ab Zeile 3401 gilt die neue Grundlage. So ganz
einfach formuliert. Im Grunde brauche ich "nur" eine Funktion wo ich sagen kann, dass sich Formeln in gewissen Zellen nicht mehr aktualisieren. Ich kann natürlich die automatische Aktualisierung abschalten, aber
nicht auf Zellebene. 

Hat jemand ne Idee wie man sowas lösen könnte? Bei Unklarheiten versuche ich es auch gerne nochmal besser zu erläutern. 

Besten Dank und viele Grüße

grandMA
Top
#2
Hallo,

die betreffenden Bereiche markieren, kopieren und Inhalte ohne Formeln einfügen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Moin!
Bereich kopieren und als Wert einfügen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#4
Vielen Dank für die Rückmeldungen! Ja, manchmal kanns so einfach sein, wenn man nicht zu kompliziert denkt. D.h. im Gegenzug auch, dass es die gewünschte Funktion direkt nicht gibt. 

Vielen Dank zusammen!
Top
#5
Hallo,

man könnte auch gleich mit Makros arbeiten, dann gibt es keine Formeln, die man löschen muss.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#6
Besten Dank. Würde vom Ansatz wie aussehen? 

Ich deaktiviere die automatische Aktualisierung und mach ein Makro zur manuellen Aktualisierung welches vorab die Zeilen abfrägt? Bzw. könnte es aus Zellen die gewünschten Zeilen
auslesen.
Top
#7
Hallöchen,

das Makro könnte z.B. bei Änderung bestimmter Zellen oder auf Knopfdruck Daten berechnen und die Ergebnisse in bestimmte Zellen ausgeben.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Besten Dank. Ja, das geht schon in die Richtung. 

Im Grunde schalte ich die automatische Berechnung und die Berechnung beim speichern ab. Damit sollte ich sicher sein, dass sich keine Formel mehr aktualisiert. Dann hinterlege
ich einen Werbereich, der sich automatisieren kann. Somit kann den auch ein Laie anpassen. Im Makro sage ich dann dass sie Range("1300:1500") aktualisieren darf, wenn sich
in dem Bereich was ändert. Damit sollt es eigentlich schon erschlagen sein. Hab ich was übersehen?

Besten Dank!
Top
#9
Jetzt hab ich noch eine bessere Idee, aber leider fehlen etwas die VBA Skills.

  • Jede Tabellenzeile ist eine Abrechnungszeile
  • In jeder Spalte werden diverse Werte berechnet
  • Wenn eine Zeile abgerechnet wurde, wird ein Spalte X die Rechnungsnummer eingetragen
Jetzt könnte ich es ja wie folgt machen. Es gibt ja die Möglichkeit, dass ein Makro automatisch ausgeführt wird (Worksheet Change), wenn sich in
einer Tabelle etwas ändert. Wenn also in Spalte X einer Zeile eine Rechnungsnummer eingetragen wird, könnte ich ja mit Offset
die Ergebnisse der Berechnungen der anderen Spalten auslesen und fix in die Zelle eintragen. Teilweise hat eine Rechnungsnummer
auch X Zeilen, weshalb die Nummer runterkopiert wird, d.h. auch da muss es funktionieren. D.h. ich krieg eventl. ein Problem wenn ich auf Target losgehen? 

Hat jemand nen Ansatz für mich? Danke!
Top
#10
Hallöchen,

vielleicht so

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Variablendeklaration
Dim Zellen As Range
'Wenn in Spalte A (=1) was geaendert wurde, dann
If Target.Column = 1 Then
  'Schleife ueber alle geaenderten Zellen
  For Each Zellen In Target
    'Wenn was in der geaenderten Zelle steht, dann
    If Zellen.Value <> "" Then
      'Daneben was von 5 Zellen daneben eintragen
      Zellen.Offset(0, 1).Value = Zellen.Offset(0, 5).Value
    'Anderenfalls Wenn nix in der geaenderten Zelle steht, dann
    Else
      'Eintrag daneben wegnehmen
      Zellen.Offset(0, 1).Value = ""
    'Ende Wenn was in der geaenderten Zelle steht, dann
    End If
  'Ende Schleife ueber alle geaenderten Zellen
  Next
'Ende Wenn in Spalte A (=1) was geaendert wurde, dann
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste