Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sprungmarke setzen

Forumthread: Sprungmarke setzen

Sprungmarke setzen
28.11.2017 05:54:54
ANdy
Hallo,
wie kann man in einem Tabellenblatt folgenden erreichen.
1. Ich habe einen Kalender, der für das ganze Jahr fortlaufend tag für tag eine spalte hat. Ich würde gerne die 1. Spalte und die 1. Zeile einfrieren und in der ersten Spalte ein Dropdownfeld einrichten, wo ich direkt den Monat auswählen kann. Dadurch soll automatisch im nicht-fixierten Bereich nach dem Tag (also für Mai zb. der 1.5) gesucht werden und direkt dorthin gesprungen/ gescrollt werden.
2. Würde ich gerne, dass beim Öffnen der Arbeitsmappe automatisch das Tabellenblatt "Kalender" geöffnet wird und zum aktuellen Datum gesprungen wird.
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprungmarke setzen
28.11.2017 08:00:58
fcs
Hallo Andy,
1. Ich habe einen Kalender, der für das ganze Jahr fortlaufend tag für tag eine spalte hat.
Ich würde gerne die 1. Spalte und die 1. Zeile einfrieren
Selektiere Zelle B2 und via Menü "Ansicht" kannst du dein Tabellenblatt entsprechend einfrieren.
und in der ersten Spalte ein Dropdownfeld einrichten,
Füge hier in Zelle A1 via Menü "Entwicklertools" eine Combobox aus den Active-X-Steuerelemente ein.
Stelle folgende Eigenschaften ein.
ColumnCount: 2
BoundColumn: 1
Columnwidths: 15Pt;75Pt
TextColumn: 2
Falls der Name der Combobox nicht "ComboBox1" ist, dann musst du in den Makros entsprechende Anpassungen machen.
wo ich direkt den Monat auswählen kann. Dadurch soll automatisch im nicht-fixierten Bereich nach dem Tag (also für Mai zb. der 1.5) gesucht werden und direkt dorthin gesprungen/ gescrollt werden.
2. Würde ich gerne, dass beim Öffnen der Arbeitsmappe automatisch das Tabellenblatt "Kalender" geöffnet wird und zum aktuellen Datum gesprungen wird.

Hierfür benötigst du folgende Makros:
Gruß
Franz
'Makro unter DieseArbeitsmappe
Private Sub Workbook_Open()
Me.Worksheets("Kalender").Activate
Call prcFill_Combobox
Call prcGotoDatum(Date)
End Sub
'Makro unter Tabellenblatt-Modul des Tabellenblatts "Kalender"
Private Sub ComboBox1_Change()
With Me.ComboBox1
If .ListIndex >= 0 Then
Call prcGotoDatum(datDatum:=DateSerial(Year(Me.Cells(1, 2).Value), Val(.Value), 1))
End If
End With
End Sub
'Makros in einem allgemeinen Modul der Datei
Option Explicit
Public Sub prcGotoDatum(datDatum As Date)
Dim wks As Worksheet
Dim Spalte As Long
Set wks = ThisWorkbook.Worksheets("Kalender")
With wks
For Spalte = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
If .Cells(1, Spalte).Value = datDatum Then
.Activate
.Cells(1, Spalte).Select
ActiveWindow.ScrollColumn = Spalte
Exit For
End If
Next
End With
End Sub
Sub prcFill_Combobox()
'2-spaltige Combobox mit Nr und Name des Monats füllen
Dim objCombobox As OLEObject
Dim intJ As Integer
Set objCombobox = ThisWorkbook.Worksheets("Kalender").OLEObjects("Combobox1")
With objCombobox
.Object.Clear
For intJ = 1 To 12
With .Object
.AddItem intJ
.List(.ListCount - 1, 1) = Format(DateSerial(Year:=Year(Date), _
Month:=intJ, Day:=1), "MMMM")
End With
Next
.Object.ListIndex = Month(Date) - 1
End With
End Sub

Anzeige
AW: Sprungmarke setzen
28.11.2017 08:32:35
ANdy
es kommt jetzt die Meldung: Typen unverträglich. Bei Debug:
Call prcGotoDatum(datDatum:=DateSerial(Year(Me.Cells(1, 2).Value), Val(.Value), 1))
Im 2ten Parameter fehlt die Klassifizierung! (owT)
28.11.2017 08:38:42
EtoPHG

AW: Im 2ten Parameter fehlt die Klassifizierung! (owT)
28.11.2017 08:49:49
ANdy
Habe es hinbekommen .. Super Danke. Nur noch eine Frage: Kann man nur die Monatsnamen in der Liste füllen? also nicht 1 Januar sondern nur Januar
Anzeige
Columnwidths: 0;75Pt in Combobox einstellen (owT)
28.11.2017 09:19:30
EtoPHG

Columnwidths: 0;75Pt in Combobox einstellen (owT)
28.11.2017 09:19:59
EtoPHG

AW: Columnwidths: 0;75Pt in Combobox einstellen (owT)
28.11.2017 09:57:30
ANdy
Es wird zwar die Zahl in der Liste ausgeblendet. Als ausgewähltes Element steht aber weiterhin die Zahl 1-12 dabei (ohne Monat)
Anzeige
BoundColumn: 2 (owT)
28.11.2017 11:05:40
EtoPHG

AW: BoundColumn: 2 (owT)
28.11.2017 11:51:51
Herby
mit boundcolumn 2 funktioniert der Sprung nicht mehr!
AW: Columnwidths: 0;75Pt in Combobox einstellen (owT)
29.11.2017 05:42:28
fcs
Hallo Andy,
für die Ermittlung des 1. Tages des Monats wird für die verwenete Funktion ja die Nummer des Monats benötigt.
Diese kann man hier auch aus der Index-Nummer des gewählten Eintrags ermitteln, da die Monate in der korreten Reihenfolge in der Liste stehen.
Wenn du die Combobox als 1-spaltige Box einrichtest dann kannst du mit folgenden Makro-Anpassungen arbeiten.

'Makro unter Tabellenblatt-Modul des Tabellenblatts "Kalender"
Private Sub ComboBox1_Change()
With Me.ComboBox1
If .ListIndex >= 0 Then
Call prcGotoDatum(datDatum:=DateSerial(Year(Me.Cells(1, 2).Value), _
.ListIndex + 1, 1))
End If
End With
End Sub
'Makro im allgemeinen Modul
Sub prcFill_Combobox()
'1-spaltige Combobox mit Namen der Monate füllen
Dim objCombobox As OLEObject
Dim intJ As Integer
Set objCombobox = ThisWorkbook.Worksheets("Kalender").OLEObjects("Combobox1")
With objCombobox
.Object.Clear
For intJ = 1 To 12
With .Object
.AddItem Format(DateSerial(Year:=Year(Date), _
Month:=intJ, Day:=1), "MMMM")
End With
Next
.Object.ListIndex = Month(Date) - 1
End With
End Sub
Gruß
Franz
Anzeige
Statt der Schleife …
28.11.2017 10:02:05
RPP63
Moin!
… geht natürlich auch das schnellere
objCombobox.List = Application.GetCustomListContents(8)
Aber dies nur ergänzend.
Gruß Ralf
Mal ein Beispiel
28.11.2017 12:31:00
RPP63
Formularsteuerelement sowie Hyperlinks in der Tabelle.
Der gesamte Code lautet:
Sub Dropdown1_BeiÄnderung()
Select Case [A1]
Case 1
ActiveWindow.ScrollColumn = _
DateSerial([A9], Month(Date), Day(Date)) - DateSerial([A9], 1, 0) + 1
Case Else
ActiveWindow.ScrollColumn = _
WorksheetFunction.Match(Format(DateSerial([A9], [A1] - 1, 1), "MMM"), Rows(1), 0)
End Select
ActiveSheet.Columns.AutoFit
End Sub
Schaue Dir mal die Datei an:
https://www.herber.de/bbs/user/117962.xlsm
Gruß Ralf
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige