Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte in Spalten einfrieren

Forumthread: Werte in Spalten einfrieren

Werte in Spalten einfrieren
11.08.2014 11:53:41
Bon

Hallo zusammen.
Ich möchte, dass die Werte einer Spalte eingefroren werden.
Es soll aber nur der Monat in der Tabelle "test1" eingefroren werden, der aktuell in der Tabelle "test2" angezeigt wird.
Erschwerend kommt hinzu, dass in "test1" der Monatsname einen Namenszusatz hat. Der soll aber einfach ignoriert werden.
Ich habe mich an einem Code versucht, der leider erfolglos geblieben ist.
https://www.herber.de/bbs/user/92012.xlsm
Danke!

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in Spalten einfrieren
11.08.2014 13:13:18
fcs
Hallo Bon,
in den Zellen der Spalten B bis G, Zeilen 3 bis 18 sind Formeln, die ihren Wert aus Spalte A holen.
Formeln kann man in Excel nicht einfrieren, sondern nur durch Einbau von WENN-Bedingungen das Ergebnis steuern.
Wenn du Werte für einen bestimmten Monat einfrieren willst, dann musst du die Formeln durch ihre Werte ersetzen. Wird in Tabelle test2 ein anderer Monat gewählt, dann müssen die Formeln wieder eingefügt werden. Da der vorherige Monat nicht bekannt ist muss man alle Formeln neu eintragen oder den gewählten Monat in "test2" immer zusätzlich in einer 2 Zelle merken.
Gruß
Franz

Anzeige
Vorschlag von mir,..
11.08.2014 18:24:02
mir,..
Hi Franz , Hallo Unbekannter,
nur ein Gedankengang , müsste eigentlich machbar sein.
Wenn der Monat = ist, mit dem Change-Ereignis in diesem Bereich mit "Undo" arbeiten.
Gruß Matze

AW: Werte in Spalten einfrieren
12.08.2014 08:37:44
Bon
Hallo zusammen.
Danke für die Rückmeldung.
Ich möchte nicht die Formel einfrieren, sondern den Wert der berechnet wurd.
Hintergrund: Jedes Monat bekomme ich neue Werte, die in meine Excel Datei eingelesen werden.
Um alles wirklich vergleichbar zu machen, müssen die Werte des Vormonats eingefroren werden, d.h. die Formel im Hintergrund muss entfernt werden und nur die Zahl in den Zellen stehenbleiben.
Ich habe es bereits mit dem Code versucht, der in der Excel Datei hinterlegt ist, hat aber leider noch nicht zufriedenstellend funktioniert.
Danke! Bon

Anzeige
AW: Werte in Spalten einfrieren
12.08.2014 08:46:34
Bon
Würde mich sehr freuen, falls jemand noch einen Vorschlag hat! Danke!

AW: Werte in Spalten einfrieren
12.08.2014 09:29:48
fcs
Hallo Bon,
nachfolgend ein entsprechendes Makro.
Gruß
Franz
Sub Monat_einfrieren()
Dim lastrow As Long
Dim Spalte As Long, lastColumn As Long
Dim strMonat As String
strMonat = Worksheets("Test2").Range("D5")
With Worksheets("Test1")
If MsgBox("Daten für Monat """ & strMonat & """ in Tabelenblatt """ & .Name & """  _
einfrieren?", _
vbQuestion + vbOKCancel, "Monatsdaten einfrieren") = vbCancel Then Exit Sub
lastColumn = .Cells(2, .Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
For Spalte = 2 To lastColumn
If Left(.Cells(2, Spalte), Len(strMonat)) = strMonat Then
lastrow = .Cells(.Rows.Count, Spalte).End(xlUp).Row
If lastrow > 2 Then
With .Range(.Cells(3, Spalte), .Cells(.Rows.Count, Spalte).End(xlUp))
.Value = .Value
End With
End If
End If
Next
Application.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Werte in Spalten einfrieren
12.08.2014 09:41:55
Bon
Danke! Funktioniert super! Ich gehe es jetzt mal Schritt für Schritt durch und versuche es zu verstehen :). Danke!
;
Anzeige
Anzeige

Infobox / Tutorial

Werte in Spalten einfrieren


Schritt-für-Schritt-Anleitung

Um Werte in Excel einzufrieren, insbesondere um die berechneten Werte eines bestimmten Monats zu speichern, kannst du ein VBA-Makro verwenden. Hier sind die Schritte, die du befolgen solltest:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Monat_einfrieren()
        Dim lastrow As Long
        Dim Spalte As Long, lastColumn As Long
        Dim strMonat As String
        strMonat = Worksheets("Test2").Range("D5")
        With Worksheets("Test1")
            If MsgBox("Daten für Monat """ & strMonat & """ in Tabelenblatt """ & .Name & """ einfrieren?", vbQuestion + vbOKCancel, "Monatsdaten einfrieren") = vbCancel Then Exit Sub
            lastColumn = .Cells(2, .Columns.Count).End(xlToLeft).Column
            Application.ScreenUpdating = False
            For Spalte = 2 To lastColumn
                If Left(.Cells(2, Spalte), Len(strMonat)) = strMonat Then
                    lastrow = .Cells(.Rows.Count, Spalte).End(xlUp).Row
                    If lastrow > 2 Then
                        With .Range(.Cells(3, Spalte), .Cells(.Rows.Count, Spalte).End(xlUp))
                            .Value = .Value
                        End With
                    End If
                End If
            Next
            Application.ScreenUpdating = True
        End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Dieses Skript friert die Werte für den definierten Monat in der Tabelle "test1" ein, indem es die bestehenden Formeln durch die berechneten Werte ersetzt.


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft nicht korrekt.

    • Lösung: Stelle sicher, dass die Tabelle "test1" und die Zelle "D5" in "test2" existieren und die richtigen Werte enthalten.
  • Fehler: Die Werte werden nicht eingefroren.

    • Lösung: Stelle sicher, dass du das Makro mit den richtigen Berechtigungen ausführst. Gehe zu Datei -> Optionen -> Sicherheitscenter und passe die Makrosicherheit an.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du die Werte manuell einfrieren:

  1. Berechne die Werte und kopiere sie.
  2. Klicke mit der rechten Maustaste auf die Zelle, in die du die Werte einfügen möchtest.
  3. Wähle Inhalte einfügen und dann Werte. So werden die Formeln durch die berechneten Werte ersetzt.

Praktische Beispiele

Angenommen, du hast in Zelle D5 in "test2" den Monat "Januar" stehen. Das Makro sucht in der zweiten Zeile von "test1" nach Spalten, die mit "Januar" beginnen, und friert die Werte in diesen Spalten ein. Dies ist besonders nützlich, wenn du regelmäßig neue Daten erhältst und die vorherigen Werte für den Vergleich speichern möchtest.


Tipps für Profis

  • Du kannst das Makro anpassen, um mehrere Monate auf einmal einzufrieren, indem du eine Schleife hinzufügst, die die Monate durchläuft.
  • Verwende klare und konsistente Namensgebungen für deine Blätter und Zellen, um die Wartung des Codes zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich die eingefrorenen Werte wiederherstellen?
Du kannst die eingefrorenen Werte nicht wiederherstellen, es sei denn, du hast die ursprünglichen Daten irgendwo gespeichert oder verwendest eine vorherige Version der Datei.

2. Funktioniert das einfrieren auch in Excel Online?
Aktuell unterstützt Excel Online keine VBA-Makros. Du müsstest die Werte manuell einfrieren oder eine Desktop-Version von Excel verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige