Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tageszahl errechnen

Tageszahl errechnen
19.09.2015 21:10:38
Karsten
Hallo Excelfreunde,
in meinem angehängtem Beispiel wird bei Makrodurchlauf die Zelle mit dem aktuellen Datum in Spalte A angesteuert. Ich würde gern den Code folgendermaßen umschreiben (kann es aber nicht):
Wenn ich unterhalb oder überhalb des Datums eine Zelle aktiviere soll bei Makrodurchlauf die Zahl der Zellen bis zum aktuellen Datum errechnet werden und in einer Msgbox angezeigt werden. Also: 19. Sept. ist aktueller Tag, 25. Sept. wird aktiviert, Msgbox zeigt 7 Tage an.
https://www.herber.de/bbs/user/100271.xls
Für eure Hilfe bin ich sehr dankbar.
Gruß Karsten
PS. Den Code hat jemand aus dem Forum erstellt.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tageszahl errechnen
19.09.2015 21:21:17
Werner
Hallo Karsten,
und warum stellt du den Code hier nicht rein wenn du möchtest, dass er angepasst werden soll?
Gruß Werner

AW: Tageszahl errechnen
19.09.2015 22:48:34
Karsten
Hallo Werner,
ich dachte als Beispielmappe ist es besser.
Gruß Karsten

AW: Tageszahl errechnen
19.09.2015 21:23:40
Sepp
Hallo Karsten,
so?
In das Modul der Tabelle.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngDif As Long

If Not Intersect(Target, Range("A:A")) Is Nothing Then
  If IsDate(Target(1, 1)) Then
    lngDif = DateDiff("d", Date, Target(1, 1))
    If lngDif >= 0 Then lngDif = lngDif + 1
    If lngDif < 0 Then lngDif = lngDif - 1
    MsgBox lngDif & " Tag" & IIf(Abs(lngDif) = 1, "", "e")
  End If
End If

End Sub


Gruß Sepp

Anzeige
AW: Tageszahl errechnen
19.09.2015 22:57:04
Karsten
Hallo Sepp,
Danke. Mit Activecell statt Target kann ich es auch in einem "normalen" Modul laufen lassen. So brauche ich es. Nachträglich fällt mir aber ein, ob es auch ein Fenster geben kann, was nach ca. einer Sekunde wieder von allein weggeht. Vielleicht kannst du mir diese Möglichkeit noch zeigen.
Gruß Karsten

AW: Tageszahl errechnen
19.09.2015 21:59:14
fcs
Hallo Karsten,
für die Anzeige der Zeilendifferenz muss das Makro etwa wie folgt aussehen.
Gruß
Franz
Sub a()
Dim varResult0 As Variant
Dim Zeile As Long, ZeileDiff As Long
Dim strMsg As String, strTitel As String
Zeile = ActiveCell.Row
varResult0 = Application.Match(CDbl(Date), Range("A5:A65536"), 0)
strTitel = "Zeile mit Datum " & Format(Date, "DD.MM.YYYY") & " ist"
strMsg = "wurde nicht gefunden!"
If IsNumeric(varResult0) Then
ZeileDiff = varResult0 + 4 - Zeile
Select Case ZeileDiff
Case 0
strMsg = "in"
Case Is  0
strMsg = Abs(ZeileDiff) & " Zeilen unterhalb"
End Select
End If
MsgBox strMsg & " der aktiven Zeile", vbOKOnly, strTitel
End Sub

Anzeige
AW: Tageszahl errechnen
19.09.2015 22:53:20
Karsten
Hallo Franz,
danke vielmals.
Gibt es auch ein Fenster, was nach ca. einer Sekunde wieder verschwinde ohne ok zu klicken. Ich weiß, dass ich nicht direkt danach gefragt habe. Vielleicht kannst du mir diese Möglichkeit auch noch geben.
Gruß Karsten

AW: Tageszahl errechnen
19.09.2015 23:39:15
fcs
Hallo Kartsen,
hier die Variante mit automatisch schließender Box.
Ich hab aber den Eindruck, das die VBA-Sekunde relativ lang ist. Hängt wohl mit der Systemuhr zusammen.
Wenn es schneller sein soll, dann kannst du ja auf die ENTER-Taste drücken oder mit der Maus klicken.
Gruß
Franz
Sub a()
Dim varResult0 As Variant
Dim Zeile As Long, ZeileDiff As Long
Dim strMsg As String, strTitel As String
Dim WsShell, intText As Integer
Zeile = ActiveCell.Row
varResult0 = Application.Match(CDbl(Date), Range("A5:A65536"), 0)
strTitel = "Zeile mit Datum " & Format(Date, "DD.MM.YYYY") & " ist"
strMsg = "wurde nicht gefunden!"
If IsNumeric(varResult0) Then
ZeileDiff = varResult0 + 4 - Zeile
Select Case ZeileDiff
Case 0
strMsg = "in"
Case Is  0
strMsg = Abs(ZeileDiff) & " Zeilen unterhalb"
End Select
End If
'MsgBox strMsg & " der aktiven Zeile", vbOKOnly, strTitel
Set WsShell = CreateObject("WScript.Shell")
intText = WsShell.Popup(strMsg & " der aktiven Zeile", 1, strTitel)
' Die 1 in der vorherigen Zeile gibt die Dauer der Öffnung an.
Set WsShell = Nothing
End Sub

Anzeige
AW: Tageszahl errechnen
20.09.2015 09:08:35
Karsten
Hallo Franz,
Danke. Es funktioniert prima.
Gruß Karsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige