Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Messagebox, wenn bestimmter Monat
#1
Hallo!

Ich suche eine VBA Lösung für folgendes Problem. Ich habe in Spalte "Q" einige Datums , z.B. 01.12.2017, 01.02.2017 und in Spalte "O" einen Verwendungszweck bezüglich Überweisungen stehen.
Nun möchte ich, dass wenn ich in dieses Tabellenblatt hineingehe, dass wenn z.B. aktuell gerade der Dezember ist (Jahr ist egal), dass mir eine Messagebox erscheint, wo ich daraufhin hingewiesen werden, dass in diesem Monat xxx (Verwendungszweck aus Spalte O) fällig ist. Sprich, wenn aktuell der Dezember ist und wenn in Spalte "Q5" "01.12.2017" und in Spalte "O5" "Kirchenbeitrag" steht, muss mir einen Messagebox genau diese Werte in einer Messagebox ausgeben und das jedesmal beim Öffnen des Tabellenblattes.

Ich hoffe, dass mir jemand helfen kann.

LG
Thomas
Excel Version 2016
Antworten Top
#2
Hallo Thomas,

folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_Activate()
 Dim i As Long
 Dim varT As Variant
 Dim strM As String
 varT = Application.Intersect(Me.UsedRange, Me.Range("O:Q")).Value
 For i = 1 To UBound(varT)
   If Month(varT(i, 3)) = Month(Date) And Len(varT(i, 1)) Then
     strM = strM & vbNewLine & varT(i, 3) & ": " & varT(i, 1)
   End If
 Next i
 If Len(strM) Then
   strM = "Diesen Monat sind fällig:" & vbNewLine & strM
   MsgBox strM
 End If
End Sub
Gruß Uwe
Antworten Top
#3
Hallo Uwe!

Danke sehr für die rasche Antwort. Und wenn ich z.B. haben will, dass er mir anzeigen soll, was nächstes Monat zu überweisen ist? Wo genau muss ich in den Code + 1 hinzufügen?

Danke und

LG
Thomas
Excel Version 2016
Antworten Top
#4
Hallo Thomas, :19:

hier eine Lösung mit Autofilter:

Filter nach "xlFilterThisMonth" und "xlFilterNextMonth".

Ausgabe bei Datei öffnen und Tabellenblattwechsel.


Angehängte Dateien
.xlsm   Autofilter.xlsm (Größe: 19,64 KB / Downloads: 3)
________
Servus
Case
Antworten Top
#5
Hallo Thomas,

(16.01.2018, 10:43)dertommy schrieb: Und wenn ich z.B. haben will, dass er mir anzeigen soll, was nächstes Monat zu überweisen ist? Wo genau muss ich in den Code + 1 hinzufügen?

dann z.B. so:
Private Sub Worksheet_Activate()
 Dim i As Long
 Dim varT As Variant
 Dim strM As String
 varT = Application.Intersect(Me.UsedRange, Me.Range("O:Q")).Value
 For i = 1 To UBound(varT)
   If Month(varT(i, 3)) = Month(DateSerial(Year(Date), Month(Date) + 1, 1)) And Len(varT(i, 1)) Then
     strM = strM & vbNewLine & varT(i, 3) & ": " & varT(i, 1)
   End If
 Next i
 If Len(strM) Then
   strM = "Diesen Monat sind fällig:" & vbNewLine & strM
   MsgBox strM
 End If
End Sub
Gruß Uwe
Antworten Top
#6
Danke sehr, funktioniert alles super.
Excel Version 2016
Antworten Top


Gehe zu:


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