Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datumsabfrage
zurück: Max Wert wenn mehrere Tabellen offen sind weiter: Anwendungsgruppe verbergen/sichtbar machen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
01. Feb 2013, 09:13
Rufname: Markus

Datumsabfrage - Datumsabfrage

Nach oben
       Version: Office 2010

Guten Morgen zusammen!

Hab da eine Frage! Habe hier einen Code mit dem ich den letzten Besuch eines Users abfrage und danach die Daten gefiltert werden!
Mein Problem ist folgendes, die MsgBox erscheint auch wenn es keinen Eintrag vom letzten Besuch bis Heute gegeben hat.
Kann man da eine zusätzliche Prüfung einbauen dass die Meldung nur dann kommt wenn es tatsächlich einen Eintrag vom letzten Besuch bis Heute gibt???

Vielen Dank für Eure Hilfe!!!!

Code:
Private Sub Workbook_Open()
Dim strUserName As String
Dim strSearchText As String
Dim dtLastVisit As Date
Dim blFound As Boolean
Dim strMeldung As String
Dim strTitle As String
Dim wb As Workbook
Application.ScreenUpdating = False
strUserName = Environ("UserName")
'Variable strUserName mit dem angemeldeten Windows-Benutzer füllen

Workbooks.Open ("\\atfile01\Emm\Alle\TDE\Userabfrage.xls")

Set wb = Workbooks("Userabfrage.xls")

intLastRow = wb.Sheets("User_Normteil").UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Letzte Zeile aus "UserVisits" auslesen

blFound = False
'blFound auf False setzen



For i = 1 To intLastRow
 If wb.Sheets("User_Normteil").Cells(i, 1) = strUserName Then
    'Wenn der UserName in "UserVisits" gefunden wurde ...
        blFound = True
        'blFound auf True setzen
        dtLastVisit = wb.Sheets("User_Normteil").Cells(i, 1).Offset(0, 1)
        'Datum des letzten Besuchs auslesen ...
        wb.Sheets("User_Normteil").Cells(i, 1).Offset(0, 1) = Format(Now, "dd.mm.YYYY")
        'Datum des letzten Besuchs mit dem aktuellen überschreiben
        wb.Sheets("User_Normteil").Cells(i, 1).Offset(0, 2) = wb.Sheets("User_Normteil").Cells(i, 1).Offset(0, 2) + 1
    'Zähler
    End If
Next i

If Not blFound Then
'Erstbesuch des Users
    wb.Sheets("User_Normteil").Cells(intLastRow + 1, 1) = strUserName
    'Usernamen in Sheet "UserVisits" eintragen
    wb.Sheets("User_Normteil").Cells(intLastRow + 1, 1).Offset(0, 1) = Format(Now, "dd.mm.YYYY")
    'aktuelles Datum zu dem Benutzer hinzufügen
    wb.Sheets("User_Normteil").Cells(intLastRow + 1, 1).Offset(0, 2) = 1
    'Zähler
    wb.Close savechanges:=True
Exit Sub
    'Sub beenden, da keine Filterung benötigt wird
End If

wb.Close savechanges:=True
   
If CDate(dtLastVisit) < CDate(Format(Now, "dd.mm.YYYY")) Then
'Filterungsoption nur anzeigen, wenn das Datum ungleich heute ist
    strTitle = "Datenfilterung"
    'Titel der Messagebox
    strMeldung = "Hallo " & Application.UserName & "!" & vbNewLine & vbNewLine & _
                 "Dein letzter Besuch war am: " & dtLastVisit & vbNewLine & vbNewLine & _
                 "In der Zwischenzeit wurde der Katalog erweitert." & vbNewLine & vbNewLine & _
                 "Willst du die neuen Eintragungen sehen?"
    'Meldung der Messagebox
   
    Dim datA As Long, datB As Long
   
    If MsgBox(strMeldung, vbYesNo + vbInformation, strTitle) = vbYes Then
        intLastRow = ActiveWorkbook.Sheets("W-Normteile").Range("X65536").End(xlUp).Row
        'Letzte Zeile in Sheet "W-Normteile" auslesen
       
        datA = CLng(DateValue(dtLastVisit))
        datB = CLng(DateValue(Now))
        'Datumswerte in Long umwandeln
       
        Sheets("W-Normteile").Activate
       
        'Range("$X$13:$X$6000" & intLastRow).AutoFilter
        'Autofilter setzen
        ActiveSheet.Range("X14:X" & intLastRow).AutoFilter Field:=24, Criteria1:= _
                ">=" & datA, Operator:=xlAnd, Criteria2:="<=" & datB
        'Autofilter Kriterien setzen und filtern
    End If
End If

End Sub

_________________
Mit freundlichen Grüßen
Markus
frankieman
Da geht noch mehr


Verfasst am:
01. Feb 2013, 15:40
Rufname:


AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Hallo,

möglicherweise überblicke ich den gesamten Code nicht richtig. Aber wenn ich das richtig verstehe, dann kann eine als Datum eingelesene Zelle leer sein und dann wiederum erhält dtLastVisit den Wert 00:00:00. Wenn das der Fall ist, kann die Zelle auf das aktuelle Datum gesetzt werden und schon geht die MsgBox nicht mehr auf:
Code:
    dtLastVisit = wb.Sheets("User_Normteil").Cells(i, 1).Offset(0, 1)
    If dtLastVisit = 0 Then dtLastVisit = Date

_________________
Gruß
frankieman
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
07. Feb 2013, 15:50
Rufname: Markus

AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Hallo!

Das ist nicht das Problem!

Es geht um folgenden Code:

Code:

If CDate(dtLastVisit) < CDate(Format(Now, "dd.mm.YYYY")) Then
'Filterungsoption nur anzeigen, wenn das Datum ungleich heute ist
    strTitle = "Datenfilterung"
    'Titel der Messagebox
    strMeldung = "Hallo " & Application.UserName & "!" & vbNewLine & vbNewLine & _
                 "Dein letzter Besuch war am: " & dtLastVisit & vbNewLine & vbNewLine & _
                 "In der Zwischenzeit wurde der Katalog erweitert." & vbNewLine & vbNewLine & _
                 "Willst du die neuen Eintragungen sehen?"
    'Meldung der Messagebox
   
    Dim datA As Long, datB As Long
   
    If MsgBox(strMeldung, vbYesNo + vbInformation, strTitle) = vbYes Then
        intLastRow = ActiveWorkbook.Sheets("W-Normteile").Range("X65536").End(xlUp).Row
        'Letzte Zeile in Sheet "W-Normteile" auslesen
       
        datA = CLng(DateValue(dtLastVisit))
        datB = CLng(DateValue(Now))
        'Datumswerte in Long umwandeln
       
        Sheets("W-Normteile").Activate
       
        'Range("$X$13:$X$6000" & intLastRow).AutoFilter
        'Autofilter setzen
        ActiveSheet.Range("X14:X" & intLastRow).AutoFilter Field:=24, Criteria1:= _
                ">=" & datA, Operator:=xlAnd, Criteria2:="<=" & datB
        'Autofilter Kriterien setzen und filtern
    End If
End If


In der ersten Zeile wird das Datum abgefragt, ob es gleich mit heute ist, wenn nicht dann soll die Filterung stattfinden!
Ich möchte aber zusätzlich noch überprüfen ob in Spalte "X" seit dem letzten Besuch etwas dazugekommen ist. Dann erst soll die Filterung stattfinden!

Kann mir hier bitte jemand helfen???
Wäre echt wichtig für mich!
Vielen Dank!!!!!

_________________
Mit freundlichen Grüßen
Markus
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
07. Feb 2013, 16:59
Rufname: Markus

AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Müsste ja so irgendwie gehen, oder...
Code:
If CDate(dtLastVisit) < CDate(Format(Now, "dd.mm.YYYY")) And
If ....


... aber weiter weiß ich nicht! Sad

_________________
Mit freundlichen Grüßen
Markus
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
26. Feb 2013, 10:16
Rufname: Markus


AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Hallo zusammen!

Kann mir hierbei jemand helfen?
Wäre echt wichtig!

Vielen Dank!!!!

_________________
Mit freundlichen Grüßen
Markus
Isabelle :-)
Menschin


Verfasst am:
26. Feb 2013, 16:08
Rufname:
Wohnort: Westlicher Spiralarm der Galaxis

AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Hallöchen,

ohne die Tabelle zu kennen kann ich auch nur raten. Was mir auffällt,

so:

Code:
wb.Sheets("User_Normteil").Cells(intLastRow + 1, 1).Offset(0, 1) = Format(Now, "dd.mm.YYYY")

schreibst du kein Datum in die Zelle sondern Text der wie ein Datum aussieht.

Besser so:

Code:
wb.Sheets("User_Normteil").Cells(intLastRow + 1, 1).Offset(0, 1).Value = Date


Überhaupt, warum benutzt du überall Now um dann umständlich die Uhrzeit wieder wegzuschneiden? Wie hier:

Code:
datB = CLng(DateValue(Now))

ist doch so weniger Aufwand

Code:
datB = CLng(Date)


Merke, Now nur wo du Datum und Zeit gleichzeitig brauchst. Ansonsten Date für das Datum und Time für die Zeit.

_________________
LG Isi

Die Mitgliedschaft im Forum erhöht deine Chance auf eine Antwort von mir um 99,999%
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
28. Feb 2013, 16:18
Rufname: Markus

AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Hallo!

OK Danke! Aber das löst mein Problem auch nicht!

Ich möchte beim Öffnen der Datei überprüfen ob seit dem letzten Besuch des Users bis Heute Daten hinzugefügt wurden.

Wenn ja das soll die MsgBox kommen und ich kann dann auswählen ob ich die neuen Einträge sehen will oder nicht!

Wenn nichts dazugekommen ist dann soll auch keine MsgBox erscheinen.

Wie löse ich das am besten????

Habe eine Datei mit dem Usernamen + letzten Besuch und in der Datei wo ich die Abfrage mache eine Spalte wo ich das Datum eintrage wenn etwas hinzugefügt wird!

Danke!!

_________________
Mit freundlichen Grüßen
Markus
frankieman
Da geht noch mehr


Verfasst am:
28. Feb 2013, 17:22
Rufname:

Re: AW: Datumsabfrage - Re: AW: Datumsabfrage

Nach oben
       Version: Office 2010

Isabelle Smile - 26. Feb 2013, 15:08 hat folgendes geschrieben:
...ohne die Tabelle zu kennen kann ich auch nur raten...

Wenn so etwas schon da steht, dann ist es an der Zeit eine Arbeitsmappe hochzuladen. Ansonsten kannst Du Dein Problem noch 100x schildern und bekommst keine Hilfe, weil Dir nicht geholfen werden kann.

_________________
Gruß
frankieman
markusk7795
Excel Basiswissen; VBA Einsteiger


Verfasst am:
28. Feb 2013, 17:27
Rufname: Markus


AW: Datumsabfrage - AW: Datumsabfrage

Nach oben
       Version: Office 2010

Das geht nicht so einfach!
Da sind viele Daten enthalten die ich nicht freigeben kann!
Und auch eine Links die nur im Firmennetzwerk funktionieren!

Aber ich versuche eine Datei zu erstellen die ähnlich ist!

_________________
Mit freundlichen Grüßen
Markus
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Zellen addieren mit Datumsabfrage 7 HEUTE 79 06. Feb 2014, 00:05
hiob Zellen addieren mit Datumsabfrage
Keine neuen Beiträge Excel Auswertungen: Sverweis Wenn mit Datumsabfrage 0 I2el3ell 84 27. Jan 2014, 14:32
I2el3ell Sverweis Wenn mit Datumsabfrage
Keine neuen Beiträge Excel VBA (Makros): Datumsabfrage mit ein und ausblenden verschiedener Tabellenb 2 Kai27 66 14. Dez 2013, 01:02
Kai27 Datumsabfrage mit ein und ausblenden verschiedener Tabellenb
Keine neuen Beiträge Excel Formeln: Datumsabfrage 3 Der Dude 106 18. Okt 2013, 17:33
silex1 Datumsabfrage
Keine neuen Beiträge Excel VBA (Makros): Datumsabfrage 2 Gast 51 12. Mai 2013, 08:32
Gast Datumsabfrage
Keine neuen Beiträge Excel Formeln: summewenns + datumsabfrage kombiniert 2 flobowü 82 06. März 2013, 14:10
flobowü summewenns + datumsabfrage kombiniert
Keine neuen Beiträge Excel Formeln: MS Query Datumsabfrage 3 Jenpet 503 15. Jul 2012, 20:51
Gast MS Query Datumsabfrage
Keine neuen Beiträge Excel Auswertungen: Summe in einer 2.Tab. erstellen mit Datumsabfrage. 3 Cgrohs 580 04. Sep 2011, 14:44
shift-del Summe in einer 2.Tab. erstellen mit Datumsabfrage.
Keine neuen Beiträge Excel Formeln: Summenprodukt mit Sverweis und Datumsabfrage 1 Gast 492 01. Aug 2011, 23:45
Ellesmitt Summenprodukt mit Sverweis und Datumsabfrage
Keine neuen Beiträge Excel VBA (Makros): Datumsabfrage per Makro 8 Hangman76 264 30. März 2010, 15:25
kjot259 Datumsabfrage per Makro
Keine neuen Beiträge Excel Formeln: Datumsabfrage nach Ereignis 2 MarkvanDark 363 02. Sep 2009, 07:35
MarkvanDark Datumsabfrage nach Ereignis
Keine neuen Beiträge Excel Formeln: zeilen je nach datumsabfrage zählen excel 8 hooney 1016 23. Jul 2009, 09:28
hooney zeilen je nach datumsabfrage zählen excel
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum