Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA Code nur am 31.12. ausführen

Forumthread: VBA Code nur am 31.12. ausführen

VBA Code nur am 31.12. ausführen
15.12.2024 10:34:39
chris58
Hallo !
Bei meiner Datei kommt beim öffnen eine Msg-Box die mich erinnern soll, das ich am Jahresende einen Button zum Sichern drücke. Diese Box kommt aber jeden Tag.
Derzeit steht die Formel in A2 (=DATUM(JAHR(HEUTE());12;31) um den 31.12. des jeweiligen Jahres zu simulieren.
Gibt es eine Möglichkeit das diese Box nur am 31.12. (Aktuelles Datum steht in Zelle C7) aufgeht ?

Private Sub Workbook_Open()
Text = "Wenn heute der " & Sheets("Berechnung").Range("A2") & " ist, dann Button - Sichern Jahresende - drücken" 'Zelle A2 31.12
MsgBox Text
Sheets("Berechnung").Activate
Range("A2").Select
UserForm1.Caption = "Datenmaske geöffnet von: " & GetTheUserName
UserForm1.TextBox3 = Format(Date - 1, "DD.MM.YYYY")
UserForm1.Show
End Sub

oder, gibt es die Möglichkeit, den VBA Code automatisch am 31.12. des jeweiligen Jahres zu starten und auszuführen ?
Hier dieser Code:

Sub Kopieren()
Dim TB As Worksheet, LC As Integer
Set TB = Sheets("Berechnung")

With Sheets("History")
LC = .Cells(25, .Columns.Count).End(xlToLeft).Column + 1 'letzte Spalte einer Zeile+1

.Cells(25, LC).Value = TB.Cells(7, 6).Value
.Cells(26, LC).Value = TB.Cells(11, 3).Value
.Cells(27, LC).Value = TB.Cells(13, 3).Value 'oder 15, 7
.Cells(28, LC).Value = .Cells(13, 2).Value
.Cells(29, LC).Value = TB.Cells(18, 3).Value
.Cells(31, LC).Resize(3, 1).Value = .Cells(14, 2).Resize(3, 1).Value
.Cells(34, LC).Resize(2, 1).Value = .Cells(19, 2).Resize(2, 1).Value

With .Cells(25, LC).Resize(11, 1).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With

Sheets("History").Activate
Range("B1").Select

End With
End Sub

Vielen Dank für Eure Hilfe
chris58
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code nur am 31.12. ausführen
15.12.2024 11:08:23
ralf_b
die Messagebox wird immer angezeigt weil du keine Bedingung/Prüfung vorangestellt hast. Wie du schon selbst schreibst willst du das nur am 31.12. gezeigt haben. if date = Zelle mit Prüfdatum then messagebox.
Ich denke man sollte aber einen längeren Zeitraum hier berücksichtigen. Es soll schon passiert sein das an diesem bestimmten Tag die Datei nicht geöffnet wurde. Und dann?
Die Sicherungsmeldung macht mehr Sinn im before close event. Denn dann sind alle Eingaben erledigt.
Anzeige
AW: VBA Code nur am 31.12. ausführen
15.12.2024 11:21:53
Marc
Mach doch:




Public Sub TestDatum()
ThisWorkbook.Activate

If Format(now, "DD.MM") = "31.12" Then
MsgBox "Bitte Speichern.", vbOKOnly
'weitere Anweisungen
End If

End Sub
DANKE Marc
15.12.2024 14:32:12
chris58
Herzlichen danke Marc
Ich habe das da so eingebaut - so geht das einwandfrei, soweit ich das getestet habe.
lg chris58

Private Sub Workbook_Open()
ThisWorkbook.Activate
If Format(Now, "DD.MM") = "31.12" Then
MsgBox "Zum Jahresende Button - Sichern Jahresende - für Tabellenblatt History drücken", vbOKOnly
'weitere Anweisungen
End If

Sheets("Berechnung").Activate
Range("A2").Select

UserForm1.Caption = "Datenmaske geöffnet von: " & GetTheUserName
UserForm1.TextBox3 = Format(Date - 1, "DD.MM.YYYY")

UserForm1.Show
End Sub
Anzeige
Anzeig zwei Tage
15.12.2024 19:53:43
chris58
Hallo Marc !
Geht auch, das die Box an zwei Tagen angezeigt wird ? (Falls ich nicht am 31.12 dazukomme)
Also am 31.12 und am 01.01
Danke chris58

If Format(Now, "DD.MM") = "31.12" Then
MsgBox "Zum Jahresende Button - Sichern Jahresende - für Tabellenblatt History drücken", vbOKOnly
Anzeige
AW: Anzeig zwei Tage
16.12.2024 04:42:04
Oberschlumpf
Hi,

If Format(Now, "DD.MM") = "31.12" Or Format(Now, "DD.MM") = "01.01" Then

Hilfts?

Ciao
Thorsten
AW: Anzeig zwei Tage
16.12.2024 08:24:34
chris58
Danke, das hilft sehr ......... herzlichen Dank Thorsten
chris58

Forumthreads zu verwandten Themen

Anzeige
Anzeige