Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Beim Öffnen bestimmte Zelle "anspringen"

Beim Öffnen bestimmte Zelle "anspringen"
04.06.2004 11:24:04
Fritz
Hallo VBA-Spezialisten,
brauche nochmal eure Hilfe:
Ich habe in einer Arbeitsmappe u.a.(!!) die folgende Tabellenblätter:
Jan
Febr
März
Apr
Mai
Juni
Juli
Aug
Sept
Okt
Nov
Dez
In diesen Tabellen befindet sich in der Spalte A (ab Zeile 3 jeweils das Datum des jweiligen Monats. Wenn beim Öffnen der Datei in einer dieser Tabellen (im jeweiligen Bereich) das Datum des betreffenden Tages gefunden wird, soll die Tabelle mit diesem Datum geöffnet werden und der Cursor in der jeweiligen Zeile in der Spalte H platziert werden. Sollte das Datum beim Öffnen der Datei nicht gefunden werden, dann sollte die Tabelle "Daten" geöffnet werden und der Cursor dort in der Zelle A1 platziert werden.
Ich würde mich freuen, wenn mir jemand von euch bei der Realisierung meines Vorhabens behilflich sein kann.
Bedanke mich bereits jetzt für jede Form von Hilfe.
Mfg
Fritz

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfragen
Martin
Hallo Fritz,
1. Stehen die Tabellenblätter Jan-Dez unmittelbar nebeneinander, evtl. sogar am Anfang oder Ende aller Tabellen?
2. Was genau steht jeweils in den Spalten A dieser Tabellen (Du schreibst: ab Zeile 3 jeweils das Datum des jweiligen Monats, was ist damit gemeint)?
Im Prinzip läßt sich die Ausgabe mit einer Workbook_Open-Ereignisprozedur lösen. Kennst Du Dich damit aus?
Gruß
Martin Beck
AW: Nachfragen
Fritz
Hallo Martin,
die Tabellen mit den Monatsabkürzungen stehen zwar nebeneinander, aber nicht am Anfang und auch nicht am Ende in der Arbeitsmappe. Die Reihenfolge ist Sept bis Aug.
In diesen Tabellen sind jeweils ab Zeile 3 die einzelnen Tage (Datum) des betreffenden Monats aufgeführt. Also z.B. in Tabelle "Sept" in A3: 01.09.2003, in A4 dann 02.09.2003 usw. (das Jahr kann sich aber ändern und ist ab Jan das folgende Jahr, deshalb auch diese Anordnung in der Mappe!!). In der Tabelle "Okt" steht dann in A3: 01.10.2003 in A4 02.04.2003 usw.,
Von VBA versteh kaum was, ich weiß zwar dass es Ereignis-Makros gibt und was das bedeutet, aber programmieren geht ohne ausführliche Hilfe bei mir nicht. Versuche natürlich, einzelne Codes "zu lesen" um auf diese Weise zu lernen, aber ich bin noch im Anfangsstadium.
Wäre nett, wenn mir jetzt jemand weiterhelfen kann.
Danke bereits an dieser Stelle für euer Verständnis und die Mühe.
Mfg
Fritz
Anzeige
AW: Lösungsvorschlag
Martin
Hallo Fritz,
teste mal, ob folgendes Makro, das Du (noch) manuell starten mußt, funktioniert.

Sub Tabelle_ansteuern()
For i = 3 To 14 'Index der 12 Tabellen, bitte anpassen
If Application.WorksheetFunction.CountIf(Worksheets(i).Range("A2:A32"), Date) Then
Worksheets(i).Activate
For j = 2 To 32
If Cells(j, 1) = Date Then
Cells(j, 8).Select
Exit Sub
End If
Next j
End If
Next i
Worksheets("Daten").Activate
Range("A1").Select
End Sub

Wichtig: Du mußt den Tabellenindex noch anpassen. Zähle dazu aus,das wievielte Blatt "September" ist.
Wenn alles funktioniert, automatisieren wir das Ganze noch.
Gruß
Martin Beck
Anzeige
AW: Beim Öffnen bestimmte Zelle "anspringen"
04.06.2004 11:51:05
ANdreas
Hallo Fritz,
mit der Annahme, dass die Tage immer fortlaufend von 1 bis Monatsende ab Zeile 3 beginnen:

Private Sub Workbook_Open()
Dim ws As Worksheet, t As Date
t = Now
On Error GoTo ErrorHandler
'Bestimmen des Tabellenblattnamen je nach aktuellem Monat
Select Case Month(t)
Case 3: Set ws = Worksheets("März"):    Case 2: Set ws = Worksheets("Febr")
Case 6: Set ws = Worksheets("Juni"):    Case 7: Set ws = Worksheets("Juli")
Case 9: Set ws = Worksheets("Sept")
Case Else: Set ws = Worksheets(Format(t, "MMM"))
End Select
'Stimmt der heutige Tag mit dem in Spalte A überein?
With ws
If CInt(Left(.Cells(2 + Day(t), 1).Text, 2)) = Day(t) Then
.Activate
Cells(2 + Day(t), 8).Select
Else
Worksheets("Daten").Activate
Range("A1").Select
End If
End With
Exit Sub
ErrorHandler:
Worksheets("Daten").Activate
Range("A1").Select
End Sub

Das Makro in "DieseArbeitsmappe" im VBA-Explorerfenster einfügen.
Hoffe das hilft weiter,
Andreas
Anzeige
AW: Beim Öffnen bestimmte Zelle "anspringen"
Fritz
Hallo Andreas,
vielen Dank für deine Hilfe (die Kommentare im Code sind eine zusätzliche Hilfe für mich).
Habe das Makro kurz getestet, obwohl das heutige Datum in der Probedatei in der Tabelle Juni enthalten ist, verzweigt EXCEL beim Start in die Tabelle "Daten" (in Zelle A1).
Das ist in diesem Fall jedoch nicht vorgesehen.
Weitere Erläuterungen bezüglich der Problematik habe ich vorher auf die Fragen von Martin ins Forum gestellt, vielleicht helfen sie dir weiter.
Auf jeden Fall großen Dank für deine Hilfe.
Gruß
Fritz
AW: Beim Öffnen bestimmte Zelle "anspringen"
04.06.2004 12:18:18
ANdreas
Hallo Fritz,
da sehe ich 2 Möglichkeiten:
1. Das Tabellenblatt heisst nicht genau "Juni" sondern vielleicht "Jun". Das müßtest Du im Code dann einfach anpassen.
2. Ändere mal den zweiten Teil wie folgt:
'Stimmt der heutige Tag mit dem in Spalte A überein?
With ws
If Day(.Cells(2 + Day(t), 1).Value) = Day(t) Then
.Activate
Cells(2 + Day(t), 8).Select
Else
Worksheets("Daten").Activate
Range("A1").Select
End If
End With
Ich war nicht ganz sicher, ob Du nur den Tag oder das ganze Datum in Spalte A stehen hast.
Gruß
Andreas
Anzeige
AW: Beim Öffnen bestimmte Zelle "anspringen"
Fritz
Hallo Andreas,
die "2. Möglichkeit" hat mir weiter geholfen.
Die Tests haben jetzt gezeigt, dass er in die Tabelle mit dem heutigen Datum verzweigt und auch bei verändertem Datum grundsätzlich "korrekt" reagiert. Dies gilt jedoch nicht, wenn ich das Jahr verändere. Das Jahr bleibt schlicht unbeachtet.
Nochmals vielen Dank!
Gruß
Fritz
AW: Beim Öffnen bestimmte Zelle "anspringen"
04.06.2004 14:18:15
ANdreas
Hallo Kurt,
ach jetzt - dachte es geht nur um Übereinstimmung des Tages.
'Stimmt das heutige Datum mit dem in Spalte A überein?
With ws
If DateDiff("d", .Cells(2 + Day(t), 1).Value, t) = 0 Then
.Activate
Cells(2 + Day(t), 8).Select
Else
Worksheets("Daten").Activate
Range("A1").Select
End If
End With
Viel Spaß,
Andreas
Anzeige
AW: Beim Öffnen bestimmte Zelle "anspringen"
Fritz
Hallo Andreas,
jetzt klappt`s wie gewünscht.
Nochmals vielen Dank!
Gruß
Fritz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige