Termin-Zusammenfassung in Userform
#1
Hallo liebe Freunde

Ich hoffe ihr könnt mir bei einem Problem helfen... Dr. Google brachte nach zwei Tagen nicht das gewünschte Ergebnis...

Ich habe eine sehr umfangreiche Liste mit verschiedensten Terminen. Nun habe ich bereits mittels bedingter Formatierung auf den einzelnen Sheets die betreffenden Zellen farblich hervorgehoben.
Mein Wunsch wäre es aber wenn die fälligen Termine/Erinnerungen auf einer Userform (in meinem Beispiel UF_Home) in einer Listbox oder ähnlichem "zusammengefasst" werden.

Natürlich sind die betreffenden Spalten immer unterschiedlich - ich habe mal eine kleinde Beispielmappe hochgeladen...
Beim Sheet Personalien soll er z.B. die Spalten "U" und "X" durchsuchen, im Sheet Offerten die Spalte "S"...

Wenn ein Termin aktuell ist, soll auf der Listbox die entsprechenden Erinnerungen kommen:

z.B. Beim Projekt "Aufstockung Cavalera Mauren" ist eine Erinnerung zu bearbeiten"


Wenn das ganze etwas zeitverzögert kommt (und sogar noch mit der Application.speech.speak-Methode versehen werden kann), wäre das der Hammer...

Kann mir jemand helfen...?

Danke im Voraus!!!

Liebe Grüsse Christian

PS: Muss mit Frau und Kind in den Tierpark... Werde mich daher erst am Nachmittag melden können...
Top
#2
Hallo,
und wo ist die Beispieldatei?
Gruß der AlteDresdner (Win11, Off2021)
Top
#3
Upps... vergessen "Attachment hinzufügen"

Sorry, nun im Anhang..

Christian


Angehängte Dateien
.xls   Erinnerungsfunktion.xls (Größe: 85 KB / Downloads: 5)
Top
#4
Es wäre unheimlich toll, wenn sich jemand meiner annehmen würde...
oder zumindest den richtigen Weg zeigt...

Wäre der richtige Ansatz eine AddItem-Schleife? Vermutlich eher ein Array...

Wobei ich zugegeben bei beiden Schwierigkeiten mit meinen VBA-Kenntnissen habe... Sad

Christian
Top
#5
Hallo,

ich hätte da mal das anzubieten.

PHP-Code:
Private Sub UserForm_Activate()
Call Kontrolle(ListBox1, "Personalien", Array(20, 21, 23, 24))
Call Kontrolle(ListBox1, "Offerten", Array(19))
End Sub

Private Sub Kontrolle(ByVal ctl As MSForms.ListBox, ByVal Tabelle As String, ByVal arr As Variant)
Dim bletzte As Long
Dim arrTabelle
As Variant
Dim b
As Long, i As Long
Dim iStr
As String

With Worksheets
(Tabelle)
   bletzte = .Cells(Rows.Count, 2).End(xlUp).Row
   
   arrTabelle
= .Range(.Range("A5"), .Cells(bletzte, arr(UBound(arr))))
   
   For b
= 1 To bletzte - 5
       For i
= LBound(arr) To UBound(arr)
       If Tabelle = "Personalien" Then
           If CStr
(arrTabelle(b, arr(i))) = VBA.Format(Now, "dd.MM.YYYY") Then
               If b
= 1 Then ctl.AddItem Tabelle
               Select
Case i
               Case 0
, 1: iStr = "Grenzgängerbewilligung"
               Case 2, 3: iStr = "Aufenthaltsgenehmigung"
               End Select
               ctl
.AddItem arrTabelle(b, arr(i)) & " Mitarbeiter " & arrTabelle(b, 2) & " " & iStr & " läuft ab"
           End If
       ElseIf Tabelle = "Offerten" Then
           If CStr
(arrTabelle(b, arr(i))) = VBA.Format(Now, "dd.MM.YYYY") Then
               If b
= 1 Then ctl.AddItem "": ctl.AddItem Tabelle
               ctl
.AddItem arrTabelle(b, arr(i)) & " Beim Projekt " & arrTabelle(b, 5) & " ist eine Erinnerung zu bearbeiten"
           End If
       End If
       Next i
   Next b
End With
End Sub

Was du da jetzt mit Application.Speak genau anfangen willst, weiß ich leider auch nicht.
Dazu müsste man wissen, welche Windows-Version du hast, und ob du ein Deutschsprachige Stimme installiert hast.
Klar könnte frau das prüfen, hab ich aber ehrlich gesagt, keine Lust drauf.
Top
#6
Hi Sabina!

Hab den Code ausprobiert! Funktioniert einwandfrei!

Vielen, lieben Dank!!!!

Ich werd  mich jetzt mit der Array-Funktion auseinandersetzen und versuchen, einige Modifikationen einzubauen...

Danke nochmals an alle - und besonders dir, Sabina für die investierte Zeit !!!

Gruss Christian
Top


Gehe zu:


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