Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Monatsanfang selektieren

Monatsanfang selektieren
13.12.2003 17:11:12
Jens_Pu
Hallo Excelfreunde,

brauche wieder mal Eure Hilfe.
Im Bereich D2:D13 stehen die Monatsnamen von Januar bis Dezember.
Im Bereich B19:B383 steht das Datum vom 01.01.03 bis 31.12.03.
Bei einem Doppelclick auf einen Monatsnamen soll nun der erste Tag des angeclickten Monats selektiert werden. Meine Ereignisprocedure sieht bisher so aus:


Private Sub Worksheet_BeforeDoubleClick(ByVal target As Excel.Range, Cancel As Boolean)
Application.EnableEvents = False
Select Case target.Column
Case 4      'Monat
If target.Row < 2 Or target.Row > 13 Then
Application.EnableEvents = True
Exit Sub
End If
MsgBox target.Value  'HIER SOLL DER 1. TAG DES GEWÄLTEN MONATS ANGESPRUNGEN WERDEN
Case 7      'Status
frmStatus.Show
Case Else
Application.EnableEvents = True
Exit Sub
End Select
Application.EnableEvents = True
End Sub


Gruss Jens

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

Betreff
Datum
Anwender
Anzeige
AW: Monatsanfang selektieren
13.12.2003 17:22:15
andre
hallo jens,
du kannst die zelle einfach mit find finden.
der monat ergibt sich aus der zeilennummer - 1 (januar in zeile 2 ... )
damit auch der monat gefunden wird der punkte davor und dahinter.
mit dem format(...) findest du den monat bei zweistelligem format, also .01. für januar usw. sind die monate einstellig geht auch ..."." & target.row-1 & "."...

Range("B19:B383").Find(What:="." & Format(Target.Row - 1, "0#") & ".", _
After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

gruss andre
Anzeige
AW: Monatsanfang selektieren
13.12.2003 17:47:13
Jens_Pu
Hallo Andre,

kommt leider die Fehlermeldung: "BenanntesArgument nicht gefunden" bei SearchFormat.

Die Lösung von Rainer funktioniert, mich würde aber trotzdem interessieren warum es mit Find nicht geht.

Gruss Jens
AW: Monatsanfang selektieren
13.12.2003 17:52:02
Nepumuk
Hallo Jens,
in Excel97 gibt es das Argument "SearchFormat" nicht. Wenn du es weg lässt, sollte es funktionieren.
Gruß
Nepumuk
AW: Monatsanfang selektieren
13.12.2003 17:54:37
Jens_Pu
Hallo Nepumuk,

hab ich mir schon gedacht und auch schon probiert. Kommt neue Meldung RangeObjekt kann nicht zugeordnet werden.

Gruss Jens
AW: Monatsanfang selektieren
13.12.2003 18:22:40
andre
hallo jens,
zeichne mal einen suchbefehl mit 97 auf damit nicht die optionen von späteren versionen was durcheinanderbringen - siehe nepomuk. wichtig ist da ja das what:= ...
ansonsten kann es auch sein, dass du in 97 zuerst den range selectieren musst und dann selection.find ...
gruss andre
Anzeige
AW: Monatsanfang selektieren
13.12.2003 19:47:02
Jens_Pu
Hallo Andre,

habe jetzt mal mit dem Recorder dieses Makro aufgezeichnet.
Wenn ich das Makro über Extras-Makro ausführe kommt, wie auch bei meiner Worksheet_BeforeDoubleClick Routine der Laufzeitfehler 91 "Objektvariable oder With-Blockvariable nicht festgelegt".
So sieht das Makro vom Recorder aus:


Sub Makro4()
Cells.Find(What:=".03.", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub


Gruss Jens
AW: Monatsanfang selektieren
14.12.2003 06:47:41
andre
hallo jens,
ist das wirklich so aufgezeichnet?
wenn ich das tue, steht
Cells.Select
Selection.Find(What:="4", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
also wie ich schon geschrieben habe das selektieren vor dem find ...
bei dir sollte es dann erst mal so aussehen:

Cells.Select
Selection.Find(What:=".03.", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate

gruss andre
Anzeige
AW: Monatsanfang selektieren
14.12.2003 19:10:41
Jens_Pu
Hallo Andre,

ja das ist so aufgezeichnet.

Hier noch mal ein "Original":


Sub Makro1()
' Makro1 Makro
' Makro am 14.12.03 von Jens_Pu aufgezeichnet
Cells.Find(What:=".03.", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub


Gruss Jens
AW: Monatsanfang selektieren
13.12.2003 17:23:48
Ramses
Hallo Jens

fräs doch mit einer Schleife durch deine zeile um den Monat zu finden:


Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal target As Excel.Range, Cancel As Boolean)
Dim i As Integer
If target.Row < 2 Or target.Row > 13 Then
    Exit Sub
End If
Application.EnableEvents = False
For i = 20 To Cells(65536, 2).End(xlUp).Row
    If Format(Cells(i, 2), "mmmm") = target.Value Then
        Cells(i, 2).Select
        Application.EnableEvents = True
        Exit Sub
    End If
Next i
Application.EnableEvents = True
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16



Allerdings verstehe ich nicht, was es mit dem "Case 7" in deinem Code auf sich hat.

Gruss Rainer
Anzeige
AW: Monatsanfang selektieren
13.12.2003 17:33:36
Nepumuk
Hallo Jens,
so geht's:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Excel.Range, Cancel As Boolean)
Select Case target.Column
Case 4      'Monat
If target.Row >= 2 And target.Row <= 13 Then
Cells(DateDiff("d", DateSerial(Year(Cells(19, 2)), 1, 1), DateSerial(Year(Cells(19, 2)), target.Row - 1, 1)) + 19, 2).Select
Cancel = True
End If
Case 7      'Status
frmStatus.Show
Cancel = True
End Select
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Monatsanfang selektieren
13.12.2003 17:51:05
Jens_Pu
Hallo Nepumuk,

klappt auch prima.
Danke.
Wohl die kürzeste Variante. Allerdings auch die, wo ich mit der Interpretation noch etwas Probleme habe. Muss mir mal die Hilfe von DateSerial anschauen, das hatte ich noch nicht.

Gruss Jens
AW: Monatsanfang selektieren
13.12.2003 17:47:22
Jens_Pu
Hallo Rainer,

klappt prima.
Danke.

CASE 7 ???
bei Doppelclick in Spalte 7 erscheint eine Userform in der man was auswählen kann, was dann in Spalte 7 in die ActiveCell geschrieben wird.

Gruss Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige