Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Am Monatsende Werte übertragen

Am Monatsende Werte übertragen
24.08.2022 11:33:24
Manuel
Hallo,
ich habe seit geraumer Zeit ein Problem, dass ich nicht gelöst bekomme.
Ich möchte am Ende eines Monats einen Wert in eine bestimmte Zelle übertragen und ihn dort als unveränderlich fixieren.
Anhand meiner Beispieltabelle:
Ist der Juni 2022 beendet, soll der aktuelle Wert aus B10 in A4 kopiert werden. Dort soll er als unveränderlich fixiert werden, da der Wert in B10 sich nach dem jeweiligen Monatsende verändern kann. Ist nun der Juli 2022 beendet, soll der dann aktuelle Wert aus B10 nach B4 kopiert werden usw.
Ich freue mich auf Anregungen um mein Problem zu lösen. Vielen Dank!
https://www.herber.de/bbs/user/154785.xlsx

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Am Monatsende Werte übertragen
24.08.2022 12:03:59
UweD
Hallo
ich hab das Prüfen mal auf das aktivieren des Tabellenblattes gelegt.
Annahme: In B4 steht eine Formel mit Bezug auf B10
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Code rechts einfügen

Private Sub Worksheet_Activate()
Dim Datum As Date, Sp As Integer, RNG As Range
Set RNG = Rows(3)
'Erster der Vormonats
Datum = DateSerial(Year(Date), Month(Date) - 1, 1)
'Datum vorhanden
Sp = WorksheetFunction.CountIf(RNG, CDbl(Datum))
'in welcher Spalte
If Sp > 0 Then
Sp = WorksheetFunction.Match(CDbl(Datum), RNG, 1)
Else
MsgBox "Monatsfehler"
Exit Sub
End If
'Hat Zelle eine Formel?
With Intersect(RNG, Columns(Sp)).Offset(1, 0) 'Schnittmenge aus Zeile und Spalte
'Wenn Formel, dann als Wert festschreiben
If .HasFormula Then
.Value = .Value
End If
End With
End Sub
LG UweD
Anzeige
AW: Am Monatsende Werte übertragen
24.08.2022 13:00:12
Manuel
Uwe, vielen Dank! Ich habe zwei Rückfragen:
Erfasse ich es richtig, dass ich in die Monatszeilen eine Wenn-Dann- Formel einsetze und der VBA-Code dann schaut ob eine Formel drin ist?
Lässt sich der Code auch so schreiben, dass die Durchführung bei jedem Öffnen der Arbeitsmappe erfolgt? Ich habe nämlich ca. 50 Blätter bei denen das jeden Monat erfolgen muss.
AW: Am Monatsende Werte übertragen
24.08.2022 13:40:09
UweD
Hallo nochmal
zu 1) genau. Im Vormonat wird geschaut
zu 2) dann muss der Code in den Codebeich von "DieseArbeitsmappe"
hier der hier leicht angepasst. Alle Blätter (mit Ausnahme der dort Eingetragenen) werden so überprüft

Private Sub Workbook_Open()
Dim Tb As Worksheet
Dim Datum As Date, Sp As Integer, RNG As Range
'Erster der Vormonats
Datum = DateSerial(Year(Date), Month(Date) - 1, 1)
For Each Tb In ThisWorkbook.Sheets
Select Case Tb.Name
Case "DiesesBlattNicht", "Das auch nicht", "Tabelle 99"
'mach nichts
Case Else
Set RNG = Tb.Rows(3)
'Datum vorhanden
Sp = WorksheetFunction.CountIf(RNG, CDbl(Datum))
'in welcher Spalte
If Sp > 0 Then
Sp = WorksheetFunction.Match(CDbl(Datum), RNG, 1)
Else
MsgBox "Monatsfehler auf Blatt: " & Tb.Name & vbLf & vbLf & "Bearbeitung gestoppt"
Exit Sub
End If
'Hat Zelle eine Formel?
With Intersect(RNG, Tb.Columns(Sp)).Offset(1, 0) 'Schnittmenge aus Zeile und Spalte
'Wenn Formel, dann als Wert festschreiben
If .HasFormula Then
.Value = .Value
End If
End With
End Select
Next
End Sub
LG UweD
Anzeige
AW: Am Monatsende Werte übertragen
24.08.2022 13:42:36
Manuel
Danke! Muss ich irgendwo die betreffenden Zellen ändern? Also wenn es nicht B4 und B10 betrifft?
AW: Am Monatsende Werte übertragen
24.08.2022 13:49:50
Manuel
Ich habe grad den Code mal eingefügt. Er stoppt bei Blatt 1 mit Monatsfehler. Wahrscheinlich weil dort kein Datum auftaucht. Es ist ein nicht betroffenes Blatt. Lässt sich das lösen?
AW: Am Monatsende Werte übertragen
24.08.2022 13:59:45
UweD
Die NICHT betroffenen Blätter kannst du doch hier eintragen

        Case "DiesesBlattNicht", "Das auch nicht", "Tabelle 99"
'mach nichts

AW: Am Monatsende Werte übertragen
24.08.2022 14:04:32
UweD
Hallo nochmal
hier ist die Zeile 3 als Suchzeile für das Datum festgelegt.

Set RNG = Tb.Rows(3)
Die Datum-Spalte wird ermittelt
und durch

.Offset(1, 0)
wird die ZELLE darunter auf Formelinhalt geprüft.
B10 ist nicht betroffen, da die ja nur Bestandteil in deinen Formeln in Zeile 3 ist
LG UweD
Anzeige
AW: Am Monatsende Werte übertragen
24.08.2022 14:09:43
Manuel
OK. In der betreffenden Datei ist das erste Datum in Zeile 16, Spalte 3. Es gibt keinen Vormonat. Ich bekomme dann einen Monatsfehler. Wo könnte der Fehler liegen? Muss das Datum in C16 ein spezielles Format haben?
AW: Am Monatsende Werte übertragen
24.08.2022 14:51:01
UweD
Hallo
Habe auf Zeile 16 geändert
und prüfe, nun ob der erste Monat der Aktuelle ist. Dann KEIN Fehler
Formatiert sollte Zeile 16 sein als Datum

Private Sub Workbook_Open()
Dim Tb As Worksheet, MinDat As Date
Dim Datum As Date, Sp As Integer, RNG As Range
'Erster der Vormonats
Datum = DateSerial(Year(Date), Month(Date) - 1, 1)
For Each Tb In ThisWorkbook.Sheets
Select Case Tb.Name
Case "DiesesBlattNicht", "Das auch nicht", "Tabelle 99"
'mach nichts
Case Else
Set RNG = Tb.Rows(16)
'Datum vorhanden
Sp = WorksheetFunction.CountIf(RNG, CDbl(Datum))
'in welcher Spalte
If Sp > 0 Then
Sp = WorksheetFunction.Match(CDbl(Datum), RNG, 1)
Else
MinDat = WorksheetFunction.Min(RNG)
If MinDat > Datum Then
'Es gibt keinen Vormonat aber den aktuellen Monat
'Also keinen Fehler ausgeben
'mache nichts
GoTo Weiter
Else
MsgBox "Monatsfehler auf Blatt: " & Tb.Name & vbLf & vbLf & "Bearbeitung gestoppt"
Exit Sub
End If
End If
'Hat Zelle eine Formel?
With Intersect(RNG, Tb.Columns(Sp)).Offset(1, 0) 'Schnittmenge aus Zeile und Spalte
'Wenn Formel, dann als Wert festschreiben
If .HasFormula Then
.Value = .Value
End If
End With
End Select
Weiter:
Next
End Sub
LG UweD
Anzeige
AW: Am Monatsende Werte übertragen
24.08.2022 16:02:01
Manuel
Es funktioniert. Ich danke dir ganz herzlich!
Gruß
Manuel
Prima. Danke für die Rückmeldung. owT
24.08.2022 16:16:00
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige