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.

MsgBox durch VBA in Excel 2010
#1
Moinsen,
Ich habe in einer Personalplanungstabelle eine Führerscheinablaufüberwachung eingerichtet.
In den Zellen D3:T3 stehen die Namen
in den Zellen D7:T7 stehen die berechneten Tage bis zum Ablauf der Gültigkeit.
Wenn die Tage aus D7:T7 unter 100 Tage fällt, soll eine MsgBox aufgehen und dies melden. " Führerschein von "Zelle z.B.D3" läuft in "z.B. D7" Tagen ab"
Ich habe folgenden Code, der auch funktioniert:

With Worksheet("Planung")
If AktiveSheet.Range ("D7").value < 0 then
MsgBox " Der Führerschein von " & " " & Range(" D3") .value & " " & ist seit " &" Range("D7")*-1 . value &" " & "Tagen abgelaufen.", vbInformation, "Führerscheinkontrolle"
ElseIf AktivSheet.Range ("D7").value < 100 then
MsgBox " Der Führerschein von " & " " & Range ("D3) . value & "läuft in"   & " " &  Range ("D7") . value & " " & Tagen ab. " vbinformation, Führerscheinkontrolle
End if

Soweit, so gut... aber.
Muss ich jetzt für jeden Mitarbeiter in der Liste eigene Boxen bauen, und müsste dann auch mehrmals bestätigen, wenn mehrere Füherscheine ablaufen oder kann ich alle Mitarbeiter in eienr MsgBox zusammenfassen?
Ich hoffe, dass meine Frage einigermaßen verständlich ist.

Vielen Dank fü die Mühe und viele Grüße von
   Kricki
Antworten Top
#2
Hallo Kricki,

sammel die Msg-Daten erstmal in einem Text, den du am Ender der Sammliung abfragst und dann als gesamtes ausgibst.

Gruß Peter
Antworten Top
#3
Hallo Kricki,

das war so gemeint.


PHP-Code:
Option Explicit

Public Sub Mit_Text()

Dim sText  As String

   With ThisWorkbook
.Worksheets("Planung")
 
     If .Range("D7").Value 0 Then
         
If sText "" Then
            sText 
"Der Führerschein von " " " Range("D3").Value " ist seit " Range("D7").Value " Tagen abgelaufen."
 
         Else
            sText 
sText vbLf "Der Führerschein von " " " Range("D3").Value " ist seit " Range("D7").Value " Tagen abgelaufen."
 
        End If
 
     ElseIf .Range("D7").Value 100 Then
         
If sText "" Then
            sText 
"Der Führerschein von " Range("D3").Value " läuft in " Range("D7").Value " Tagen ab."
 
         Else
            sText 
sText vbLf "Der Führerschein von " Range("D3").Value " läuft in " Range("D7").Value " Tagen ab."
 
        End If
 
     End If
 
  End With
   
   
If sText "" Then
      MsgBox 
"Es gibt keinen abgelaufenen Führeschein."vbInformation"Führerscheinkontrolle"
 
   Else
      MsgBox sText
vbInformation"Führerscheinkontrolle"
 
  End If
 
  
End Sub

Woher du 
die Daten holstmusst du allerdings anpassendenn alle können ja wohl nicht aus dem Blatt Planung kommen.

Gruß Peter 
Antworten Top
#4
Moin!
Ich werde nie verstehen, was in solchen Fällen MsgBoxes sollen …
Für so etwas gibt es die Sortierfunktion sowie (wenns es auch noch hübsch bunt sein soll) die bedingte Formatierung.
VBA ist etwas für Dinge, die nicht oder nur umständlich über die Standardfunktionalität zu erreichen ist.

Ist aber nur meine Meinung,
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Code:
Sub M_snb()
    MsgBox Join(Filter([if(D7:T7-today()<100,D3:T3 & ":  noch " & D7:T7-today() & "  Tagen","")], " "), vbLf)
End Sub
Antworten Top


Gehe zu:


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