Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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

bei öffnen entsprechende Tabelle / Tag&Uhrzeit

bei öffnen entsprechende Tabelle / Tag&Uhrzeit
amintire
Guten morgen alle zusammen,
bei einer Excel Mappe ist jeder Tag im Jahr vorhanden, also beschriftet 01.01.2011, 02.01.2011, usw.
Ich möchte, das wenn ich die Excel Mappe öffne automatisch die entsprechende Tabelle vom Tag geöffnet wird. Also wenn ich am 20.11.2011 die Excel Mappe öffne sollte als Startbildschirm die Tabelle 20.11.2011 sein.
Als kleines Schmankerl wenn es möglich ist und jemand sich da auskennt,
in den Zellen B14 bis B36 stehen die Uhrzeiten (stündlich) drinnen (in jeder Tabelle gleich), vielleicht geht ja noch das wenn ich die Excel Mappe öffne, als Startbildschirm eben die entsprechende Tabelle vom Tag und das die Zeilen + / - eine Stunde von der aktuellen Uhrzeit markiert wird.
(Markierung bei den Zellen B-F)
Hat jemand eine Lösung dafür?
Vielen Dank für Eure Hilfe.
Lieben Gruß
Amina
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 08:30:26
Harald
Hallo Amina,
das aktuelle Blatt kannst Du so aktivieren:

Private Sub auto_open()
Const Offset = 13 ' Diesen Wert anpassen, in Abhängigkeit davon, mit welcher Uhrzeit in B14  _
angefangen wird
Sheets(CStr(Day(Date)) & "." & CStr(Month(Date)) & "." & CStr(Year(Date))).Activate
Rows(CStr(Hour(Time()) - 1 + Offset) & ":" & CStr(Hour(Time) + 1 + Offset)).Select
End Sub
(den Code in einem Modul der Arbeitsmappe platzieren, wird beim Öffnen der Mappe automatisch ausgeführt).
Gruß
Harald
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 08:37:15
Heiko
Moin Amina,
hier mal eine komplette Version mit Fehlerbehandlung und Beachtung von 1 und 23 Uhr.
Den Kompletten Code in "DieseArbeitsmappe"
Private Sub Workbook_Open()
Dim intStunde As Integer
Dim rngStunde As Range
On Error GoTo Errorhandler
ThisWorkbook.Worksheets(Format(Date, "dd.mm.yyyy")).Activate
intStunde = Hour(Now)
With ThisWorkbook.ActiveSheet
Set rngStunde = .Range("B14:B36").Find(intStunde, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngStunde Is Nothing Then
Select Case intStunde
Case 1
.Range(.Cells(rngStunde.Row, 2), .Cells(rngStunde.Row + 1, 6)).Select
Case 2 To 22
.Range(.Cells(rngStunde.Row - 1, 2), .Cells(rngStunde.Row + 1, 6)).Select
Case 23
.Range(.Cells(rngStunde.Row - 1, 2), .Cells(rngStunde.Row, 6)).Select
End Select
Else
MsgBox "Im Blatt " & Format(Date, "dd.mm.yyyy") & " konnte der Stundeneintrag " &  _
intStunde & " nicht gefunden werden!", vbCritical, " Info von Amina´s Makro!"
End If
Set rngStunde = Nothing
End With
Exit Sub
Errorhandler:
MsgBox "Eine Tabelle mit dem Namen (Datum) " & Format(Date, "dd.mm.yyyy") & " wurde nicht  _
gefunden!", vbCritical, " Info von Amina´s Makro!"
ThisWorkbook.Worksheets(1).Activate
End Sub

Gruß Heiko
Anzeige
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 08:59:54
amintire
Hallo Heiko,
das öffnen mit dem entsprechenden Datum funktioniert.
Aber das mit der Uhrzeit irgendwie leider nicht, der sagt mir immer Im Blatt 16.11.2011 konnte der Stundeneintrag 8 nicht gefunden werden.
Kann man die Zeilen auch markieren lassen?
Gruß Amina
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 09:40:36
Heiko
Hallo Amina,
klar geht das, aber dazu müßte ich wissen wie die Uhrzeit (Stunden) in den Blättern dargestellt sind.
Mein Makro geht davon aus das von Zelle B14 - B36 schlicht 1 - 23 als reine Zahl drin steht.
Wenn das nicht der Fall ist, wäre eine Beispielmappe mit einem Musterblatt drin, sehr hilfreich.
Gruß Heiko
Anzeige
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 10:07:39
amintire
Hallo Rudi,
mit deinem code funktioinert zumindest die markierung.
Hallo Heiko,
also als zahlen 1 - 23 eingegeben funktioniert es,
habe aber die Zellen als hh:mm formatiert und 01:00 , 02:00 , 03:00 usw. geschrieben.
Kannst du mir das noch anpassen bei deinem Code ?
Lieben Gruß
Amina
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 11:54:29
Rudi
Hallo,
Set rngStunde = .Range("B14:B36").Find(intStunde/24, LookIn:=xlValues, LookAt:=xlWhole)
Gruß
Rudi
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 12:07:37
amintire
Super, so einfach und ich komm nicht drauf ^^
Danke. Jetzt findet er zwar die Zeile mit der Uhrzeit, bringt mir aber trotzdem die msgBox Nachricht.
Komme irgendwie nicht drauf was ich ändern soll.
Gruß Amina
Anzeige
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 12:18:26
amintire
Also wenn der Code so aussieht funktioniert es,
Private Sub Workbook_Open()
Dim intStunde As Integer
Dim rngStunde As Range
On Error GoTo Errorhandling
ThisWorkbook.Worksheets(Format(Date, "dd.mm.yyyy")).Activate
Cells(Hour(Now) + 13, 2).Resize(3, 5).Select
intStunde = Hour(Now)
With ThisWorkbook.ActiveSheet
Set rngStunde = .Range("B14:B36").Find(intStunde / 24, LookIn:=xlValues, LookAt:=xlWhole) _
If Not rngStunde Is Nothing Then
'           Select Case intStunde
'               Case 1
'                   .Range(.Cells(rngStunde.Row, 2), .Cells(rngStunde.Row + 1, 6)).Select
'               Case 2 To 22
'                   .Range(.Cells(rngStunde.Row - 1, 2), .Cells(rngStunde.Row + 1, 6)).Select
'               Case 23
'                   .Range(.Cells(rngStunde.Row - 1, 2), .Cells(rngStunde.Row, 6)).Select
'           End Select
'       Else
'           MsgBox "Im Blatt " & Format(Date, "dd.mm.yyyy") & " konnte der Stundeneintrag " &  _
intStunde & " nicht gefunden werden!", vbCritical, " Info von Amina´s Makro!"
'       End If
'       Set rngStunde = Nothing
'   End With
'   Exit Sub
Errorhandling:
MsgBox "Eine Tabelle mit dem Namen (Datum) " & Format(Date, "dd.mm.yyyy") & " wurde nicht  _
gefunden!", vbCritical, " Info von Amina´s Makro!"
ThisWorkbook.Worksheets(1).Activate
End Sub

Kann man die msgBox ändern, das da wenn neben der Uhrzeit nichts steht, dann die Meldung kommt kein Stundeneintrag vorhanden ?
Gruß Amina
Anzeige
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 09:36:13
Rudi
Hallo,
vielleicht reicht das ja schon:
Sub xxx()
Sheets(Format(Date, "DD.MM.YYYY")).Activate
Cells(Hour(Now) + 13, 2).Resize(3, 5).Select
End Sub

Gruß
Rudi
AW: bei öffnen entsprechende Tabelle / Tag&Uhrzeit
16.11.2011 13:32:56
amintire
Hallo Rudi,
eigentlich reicht dein kurzer Code schon aus, nur müsste eben wenn es keine Eintragungen neben der Uhrzeit gibt eine MsgBox mit der Info erscheinen das keine Termine vorliegen ;))
Wenn das noch funktioniert dann bin ich glücklich ;))
Lieben Gruß
Amina
frag .Offset(,1) ab
16.11.2011 15:41:05
Matthias
Hallo Amina
Vielleicht hilft Dir das:
Option Explicit
Private Sub Workbook_Open()
On Error GoTo ErrorHaendler1
Sheets(Format(Date, "DD.MM.YYYY")).Activate
On Error GoTo 0
On Error GoTo ErrorHaendler2
If Cells(Hour(Now) + 13, 2).Offset(, 1).Value  "" Then
Cells(Hour(Now) + 13, 2).Resize(3, 5).Select
Else
Application.Goto ErrorHaendler2
End If
On Error GoTo 0
Exit Sub
ErrorHaendler1:
MsgBox "Das Blatt " & Format(Date, "DD.MM.YYYY") & " existiert nicht !"
Exit Sub
ErrorHaendler2:
Cells(Hour(Now) + 13, 2).Resize(1, 2).Select
MsgBox "am " & Format(Date, "DD.MM.YYYY") & " ist um " & Format(Time, "hh") & " Uhr - kein  _
Termin eingetragen !"
ActiveSheet.Cells(1, 1).Select 'muß nicht sein
'Tabelle1.Activate' oder was auch immer
End Sub
Anderweitig könnte man auch eine MsGBox anzeigen:
Userbild
und
Userbild


Kleine Hilfe für die Folgejahre ;o)
https://www.herber.de/bbs/user/77533.xls
Gruß Matthias
Anzeige
AW: frag .Offset(,1) ab
16.11.2011 16:15:56
amintire
Hallo Matthias,
das mit den Folgejahren ist nicht schlecht, nur leider habe ich eine Vorlage wo die Uhrzeiten stehen.
Dein code funktioniert leider bei mir nicht, der sagt mir Variable nicht definiert und markiert ErrorHaendler2.
Hat es bei dir funktioniert ?
Gruß Amina
AW: evtl so ?
16.11.2011 16:47:16
amintire
Hallo Matthias,
hab deinen Code jetzt so angepasst - scheint zu funktionieren.

Private Sub Workbook_Open()
On Error GoTo ErrorHaendler1
Sheets(Format(Date, "DD.MM.YYYY")).Activate
On Error GoTo 0
' On Error GoTo ErrorHaendler2
If Cells(Hour(Now) + 13, 2).Offset(, 2).Value  "" Then
Cells(Hour(Now) + 13, 2).Resize(3, 5).Select
MsgBox "am " & Format(Date, "dd.mm.yyyy") & " ist um " & Format(Time, "hh") & " Uhr ein  _
Termin" & " " & Cells(Hour(Now) + 13, 2).Offset(, 2).Value & " " & "eingetragen!"
Else
Cells(Hour(Now) + 13, 2).Resize(1, 2).Select
MsgBox "am " & Format(Date, "DD.MM.YYYY") & " ist um " & Format(Time, "hh") & " Uhr - kein  _
Termin eingetragen !"
'Application.Goto ErrorHaendler2
End If
On Error GoTo 0
Exit Sub
ErrorHaendler1:
MsgBox "Das Blatt " & Format(Date, "DD.MM.YYYY") & " existiert nicht !"
Exit Sub
ErrorHaendler2:
' Cells(Hour(Now) + 13, 2).Resize(1, 2).Select
' MsgBox "am " & Format(Date, "DD.MM.YYYY") & " ist um " & Format(Time, "hh") & " Uhr - kein  _
Termin eingetragen !"
ActiveSheet.Cells(1, 1).Select 'muß nicht sein
'Tabelle1.Activate' oder was auch immer
End Sub

Danke für deine Hilfe.
Lieben Gruß
Amina
Anzeige
Hauptsache es klappt jetzt ... kwT
16.11.2011 17:19:37
Matthias
lass "Application" weg
16.11.2011 17:27:18
Matthias
Hallo
Hab nochmal getestet
schreib einfach nur
GoTo ErrorHaendler2
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige