nächsten Termin per Makro melden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: nächsten Termin per Makro melden von: Micha.hal
Geschrieben am: 07.04.2005 15:44:48

Hallo Excelperten,

folgende Tabelle: In Spalte A stehen Namen, in Spalte B stehen zukünftige Termine.

Kann man per Makro bei Workbook_open eine MsgBox mit dem Namen anzeigen lassen, dessen Termin dem heutigen Datum als nächstes folgt? Also, zu dem zukünftig als erstes erreichten Termin soll der dazugehörige Name angezeigt werden.

Vielen Dank für die Hilfe.

Micha

Bild


Betrifft: AW: nächsten Termin per Makro melden von: Ceyser Soze
Geschrieben am: 07.04.2005 16:26:21

Hi Micha,
das hier sollte helfen:


      
Private Sub Workbook_Open()
Dim nächsterTermin As Date
Dim strName As String
Dim i%
nächsterTermin = "31.12.9999"
i = 2
With Sheets(1)
Do Until IsEmpty(Cells(i, 2)) = True
If DateDiff("d", Now, CDate(Cells(i, 2))) < DateDiff("d", Now, nächsterTermin) And CDate(Cells(i, 2)) >= Date Then
nächsterTermin = Cells(i, 2)
strName = Cells(i, 1)
End If
i = i + 1
Loop
End With
MsgBox strName & ", " & nächsterTermin
End Sub
 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß
CS


Bild


Betrifft: AW: nächsten Termin per Makro melden von: Micha.hal
Geschrieben am: 08.04.2005 08:48:05

Hallo Ceyser Soze,

vielen Dank. Ich weiß zwar nicht genau, was jede einzelne Zeile macht, aber es funktioniert super, und das ist die Hauptsache.

Solltest Du Langeweile ;-) haben, wäre ich für eine "Übersetzung" der einzelnen Zeilen dankbar, damit ich es nicht nur nutze, sondern auch verstehe.

Vielen Dank nochmal und ein schönes Wochenende.

Micha


Bild


Betrifft: AW: nächsten Termin per Makro melden von: Ceyser Soze
Geschrieben am: 08.04.2005 15:18:16

Hi Micha,


      
Private Sub Workbook_Open()
Dim nächsterTermin As Date 'Variablen definieren, Datum als Datentyp
Dim strName As String 'Variablen definieren, Zeichenkette als Datentyp
Dim i As Integer 'Variablen definieren,Integer als Datentyp ganze zahlen von -32.768 bis +32.767
nächsterTermin = CDate("31.12.9999") 'Anfangswert für Variable vergeben, wird mit Cdate() zu Datumsformat konvertiert
i = 2 'Anfangswert für Variable setzten
With Sheets(1)
'Vor allen ".Objekt"-Anweisungen -zB .Cells()- zwischen "With" und "End With" "Sheets(1)" ergänzen
    Do Until IsEmpty(.Cells(i, 2)) = True
    
'Wiederhole alle Anweisungen zwischen "Do Until" und "Loop"
    'bis ein leere zelle gefunden wird. Beginnend in "Zeile i, Spalte 2"
        If DateDiff("d", Now, CDate(.Cells(i, 2))) < DateDiff("d", Now, nächsterTermin) And CDate(.Cells(i, 2)) >= Date Then
        
'Wenn die die Differenz zwischen "heute" und dem "Datumswert von "eile i, Spalte 2"
        'kleiner ist als die zwischen "heute" und "nächsterTermin" UND
        'der "Datumswert von Zeile i, Spalte 2" größer oder gleich "heute" ist befolge alle anweisungen zw "If" und "End If"
            nächsterTermin = CDate(.Cells(i, 2)) 'den "Datumswert von "Zeile i, Spalte 2" an "nächsterTermin" übergeben
            strName = CStr(.Cells(i, 1)) 'den Wert von "Zeile i, Spalte 1" als zeichenkette übergeben
        End If
    i = i + 1 
' Zählvariable "i" Muss hochgezählt werden, damit die schleife jede Zeile der spalte 2 durchläuft
    Loop 'Nächsten Schleifendurchlauf starten
End With
'Die werte von "strName" und ", " und der wert von "nächsterTermin" als zeichenkette in einer MessageBox ausgeben
MsgBox strName & ", " & nächsterTermin
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß
CS


Bild


Betrifft: AW: nächsten Termin per Makro melden von: Micha.hal
Geschrieben am: 08.04.2005 15:50:27

Super, danke.

Micha


 Bild

Beiträge aus den Excel-Beispielen zum Thema "nächsten Termin per Makro melden"