Zu aktuellen Monat springen

Moin,

leider reichen meine VBA Kenntnisse nicht mehr aus.

Meine Arbeitsmappe besteht aus 2 Blätter „2009 Januar bis Juni“ und „2009 Juli bis Dezember“

In Zeile 3 stehen die Monatsnamen. Nun möchte ich gerne per VBA die Zelle des aktuellen Monats (und die 28 Zellen rechts davon) makieren lassen. mir reicht eine abfrage für den monat, da für jedes jahr eh eine neue datei angelegt wird.

mfg
rené

Hallo René,

Meine Arbeitsmappe besteht aus 2 Blätter „2009 Januar bis
Juni“ und „2009 Juli bis Dezember“
In Zeile 3 stehen die Monatsnamen.

Also in 6 Spalten nebeneinander Jan, Feb,…Jun.

Nun möchte ich gerne per
VBA die Zelle des aktuellen Monats (und die 28 Zellen rechts
davon)

Wieso 28 Zellen rechts davon? Da stehen doch Monatsnamen.

Mir sehr unklar was bei dir vorliegt.

Gruß
Reinhard

Hallo René,

Meine Arbeitsmappe besteht aus 2 Blätter „2009 Januar bis
Juni“ und „2009 Juli bis Dezember“
In Zeile 3 stehen die Monatsnamen.

Also in 6 Spalten nebeneinander Jan, Feb,…Jun.

Nein, da unter dem monat die zeile für die einzelnen tagen sind, „erstreckts“ sich die Zeile 3 über 265 spalten. wäre es denn einfacher wenn ich die zellen zur einer verbinde? dann hätte ich theoretisch 6 spalten die aber aus 30 bis 31 spalten bestehen.
also in A3 wäre zb Januar dann kommen 30 leere zellen und dann kommt erst februar. das die zellen rechts davon mitmakiert werden, wäre auch nur eine schönere darstellung.

ich hoffe mein tabellenaufbau ist klarer geworden.

gruß

In Zeile 3 stehen die Monatsnamen. Nun möchte ich gerne per
VBA die Zelle des aktuellen Monats (und die 28 Zellen rechts
davon) makieren lassen. mir reicht eine abfrage für den monat,
da für jedes jahr eh eine neue datei angelegt wird.

hallo René,

vielleicht so:

Sub Markier()
Dim Von As Long, Bis As Long, Spa As Long
For Spa = 1 To Cells(3, Columns.Count).End(xlToLeft).Column
 If Month(Cells(3, Spa)) = Month(Now) Then
 If Von = 0 Then
 Von = Spa
 Bis = Von
 Else
 Bis = Spa
 End If
 End If
Next Spa
If Von \> 0 Then Range(Cells(3, Von), Cells(3, Bis)).Select
End Sub

Gruß
Reinhard

Hallo,

„Laufzeitfehler 13 - Typen unverträglich“ in Zeile 4

Gruß

Hallo,

„Laufzeitfehler 13 - Typen unverträglich“ in Zeile 4

das bedeutet in disem Fall es wurde versucht einen Zelleninhalt in das Datumsformat umzuwandeln, das kein Datum enthält.
Entweder steht da ein Datum in einer Form, die für VB unverständlich ist oder etwas anderes als ein Datum oder die Zelle ist leer.

Gruß Rainer

ich habe den monatsnamen nun als zahl (01.01.2009) eingegeben und lass mir diesen nur als monatsnamen anzeigen (Januar). ich gehe davon aus das durch den zellinhalt (januar) das Makro nicht funktionieren würde.
gruß

ja das stimmt die überschriften beginnen erst ab F:3. ich habe die spalten davor testweise entfernt und das makro läuft ohne fehler aber es wird nicht zu den monaten gesprungen/makiert.
gruß

Hi,

sorry, ich beherrsche VBA nicht. Ich konnte nur die VB-Fehlermeldung interpretieren.

Wenn Du mit der Info allein nicht weiter kommst, muss ich Dich leider bitten auf Reinhard zu warten.

Gruß Rainer

ja das stimmt die überschriften beginnen erst ab F:3. ich habe
die spalten davor testweise entfernt und das makro läuft ohne
fehler aber es wird nicht zu den monaten gesprungen/makiert.

Hallo Rene,

ich habe im Code jetzt nur in der For-Schleife die 1 durch eine 6 ersetzt.

http://www.bilder-space.de/show.php?file=24.09Y5F2Ud…

Die Zellen in Zeile 3 sind benutzerdefiniert als MMMM

Klicke ich nun auf die Schaltfläche so wird J3:K3 markiert.

Wenn du weiterhin nicht klarkommst, so lade mal eine Beispielmappe hoch mit FAQ:2606

Gruß
Reinhard

hi,

das makro läuft soweit wie gewünscht. der aktuelle Monat richtig makiert, ABER auch nur wenn ich auf dem richtigen Blatt bin.
denn ich habe ja 2 arbeitsblätter einmal für das 1. und einmal für das 2. halbjahr. kann das Makro auch in allen blättern „nachschauen“?

gruß

das makro läuft soweit wie gewünscht. der aktuelle Monat
richtig makiert, ABER auch nur wenn ich auf dem richtigen
Blatt bin.
denn ich habe ja 2 arbeitsblätter einmal für das 1. und einmal
für das 2. halbjahr. kann das Makro auch in allen blättern
„nachschauen“?

Hallo Rene,

diese Zeile:
Set wks = IIf(Month(Now) Sub Markier()
Dim Von As Long, Bis As Long, Spa As Long, wks As Worksheet
Set wks = IIf(Month(Now) 0 Then .Range(.Cells(3, Von), .Cells(3, Bis)).Select
End With
End Sub

Gruß
Reinhard