VBA - Auf jeweiligen Monat springen
#1
Hey Leute!

Ich habe bereits mit google ein wenig recherchiert, konnte aber keinen funktionierenden Ansatz finden.

Ich habe eine Tabelle, welche in der 10. Zeile den Monat im folgenden Format hat:
01.01.2018

Ich würde nun gerne mit 12 Buttons auf den entsprechenden Monat springen.
Wie ist dies handzuhaben?




Beste Grüße
Top
#2
Hallo,

z.B. so:
Activesheet.Range("10:10").Find(#1/1/16#).Select

Das Datum kann z.B. in eine Variable gespeichert werden, dann kann man den gleichen Code für alle Buttons verwenden, z. B. so:
Function GeheZuDatum(Datum as Date)
Activesheet.Range("10:10").Find(Datum).Select
End Function
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • joshua
Top
#3
Hallo joshua

das geht m.E. viel einerfacher wenn du das Datum in der Zelle mit einem Hyperlink zum Ziel-Blatt verbindest.
Datum anklicken, der Hyperlink springt in die entsprechende Tabelle. Normalerweise auf A1, kann man selbst festlegen!

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • joshua
Top
#4
(10.01.2018, 11:27)Gast 123 schrieb: das geht m.E. viel einerfacher wenn du das Datum in der Zelle mit einem Hyperlink zum Ziel-Blatt verbindest
Dann muss aber das jeweilige Datum immer in der gleichen Zelle stehen.
Gruß
Michael
Top
#5
Funktioniert die Hyperlink Variante auch mit Buttons?
Mittels Button auf eine fixe Spalte springen?
Top
#6
Nein, ein Hyperlink wird entweder direkt oder per Formel in eine Zelle gesetzt. Diese kannst Du aber so formatieren, dass diese aussieht wie ein Button.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • joshua
Top
#7
Ok, vielen Dank.
Dann fällt diese Variante raus, da ich in 4x2 Zellen 12 Buttons einpflegen muss/ möchte.

Zu diesem Ansatz:
Wie kann ich die Variable pro Button deklarieren?
Also die Function als generische Funktion, aber wie wird den jeweiligen Buttons der entsprechende Monat als Variable deklariert?
Top
#8
Was für Buttons willst Du denn einfügen? Formularsteuerelemente oder ActiveX?

Wo in der Tabelle steht denn die Jahreszahl oder ein Datum (an einer festen Stelle)?

Ich würde die Buttons mit den jeweiligen Monatsnamen beschriften und dann daraus mit CDate ein Datum generieren

Bei ActiveX: Funktion mit dem Datum in dessen Code aufrufen.

Bei Formularsteuerelement: Hier ist sowieso eine Verknüpfung mit einem Makro nötig. Hier würde ich das ganze in ein Makro packen und den Namen aufrufenden Button ermittlen (mit Application.Caller) um daraus das Datum zu ermitteln.
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • joshua
Top
#9
Vielen Dank für deinen Beitrag.

Es soll mit den klassischen Steuerelementen gearbeitet werden.
Dies wollte ich mit Jan, Feb ...  betiteln.


Habe nie mit CDate gearbeitet.
Kann mir da einer weiterhelfen?

Anbei findet sich auch eine Musterdatei.



Besten Dank.


.xlsx   Test.xlsx (Größe: 13,09 KB / Downloads: 12)
Top
#10
Diesen Code in ein Modul:
Code:
Sub Springen()
     ActiveSheet.Range("10:10").Find(CDate("1. " & ActiveSheet.Buttons(Application.Caller).Caption & " " & Year(Range("E10")))).Select
End Sub
Dann für alle Monate einen Button erstellen, benennen und dieses Makro (Springen) zuweisen. Bitte nicht einen vorhandenen Button kopieren, da gibt es mW Probleme (dann musst Du den Namen der Schalfläche manuell auf eine eindeutige Bezeichnung anpassen).

Aber Achtung beim benennen der Schaltflächen! Es müssen die korrekten deutschen Abkürzungen verwendet werden (z. B. für März -> Mrz).
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • joshua
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste