Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Werte in Spalten einfrieren

Betrifft: Werte in Spalten einfrieren von: Bon
Geschrieben am: 11.08.2014 11:53:41


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!

  

Betrifft: AW: Werte in Spalten einfrieren von: fcs
Geschrieben am: 11.08.2014 13:13:18

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


  

Betrifft: Vorschlag von mir,.. von: Matze Matthias
Geschrieben am: 11.08.2014 18:24:02

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


  

Betrifft: AW: Werte in Spalten einfrieren von: Bon
Geschrieben am: 12.08.2014 08:37:44

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


  

Betrifft: AW: Werte in Spalten einfrieren von: Bon
Geschrieben am: 12.08.2014 08:46:34

Würde mich sehr freuen, falls jemand noch einen Vorschlag hat! Danke!


  

Betrifft: AW: Werte in Spalten einfrieren von: fcs
Geschrieben am: 12.08.2014 09:29:48

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



  

Betrifft: AW: Werte in Spalten einfrieren von: Bon
Geschrieben am: 12.08.2014 09:41:55

Danke! Funktioniert super! Ich gehe es jetzt mal Schritt für Schritt durch und versuche es zu verstehen :). Danke!


 

Beiträge aus den Excel-Beispielen zum Thema "Werte in Spalten einfrieren"