ActiveCell in wie damit arbeiten?

Hallo,
bin gerade dabei VBA in Excel zu lernen.
In meinem Tabellenblatt A6 bis A36 gebe ich Stunden im Format HH:MM ein. Ein bestimmter Stundenwert sollte nicht sein, kann aber sein und darum soll sich eine MsgBox öffnen und darauf hinweisen.
Mit einem Klick auf „OK“ hat man diese Überscheitung zur Kenntniss genommen.
Wie würde das Listing dafür aussehen?

Gruß

Daten > Gültigkeit
Moin, Boyscout,

dafür braucht’s kein VBA, das kann Excel ganz allein: Daten > Gültigkeit, bei Einstellungen den Zeitrahmen angeben, bei Fehlermeldung Information wählen. Jedenfalls unter Office 2000 :smile:

In VBA bietet sich an, das Aktivieren der Zelle zu nutzen, zB

Private Sub Worksheet\_SelectionChange(ByVal Target As Excel.Range)
 If Target.Address = "$A$1" Then
 ' Tu, was ich denke
 End If
End Sub

Da weiß ich aber gerade nicht, wie man statt einer Zelle einen Bereich abfragt.

Gruß Ralf

Da weiß ich aber gerade nicht, wie man statt einer Zelle einen
Bereich abfragt.

Hallo Ralf,

so ganz hab ich den Sinn deines Codes nicht durchschaut, macht aber nix :smile:) Hab mir da Coolness angewöhnt, solange der eigentliche Anfrager nicht darauf reagiert mach ich erstmal garnix *gg*

Aber zu deiner Frage, Bereich abfragen geht so:

If Intersect(target, Range(„F12:H53“)) is Nothing then exit sub
oder
If Not Intersect(target, Range(„F12:H53“)) is Nothing then
'machwas
End If

Gruß
Reinhard

Moin, Reinhard,

so ganz hab ich den Sinn deines Codes nicht durchschaut

Worksheet_SelectionChange ist das Ereignis, mit dem VBA mitgeteilt wird, dass der Cursor gewandert ist.

If Intersect(target, Range(„F12:H53“)) is Nothing then exit

Danke, hoffentlich merke ich mir das :frowning:

Gruß Ralf

Hallo Ralf,

so ganz hab ich den Sinn deines Codes nicht durchschaut

Worksheet_SelectionChange ist das Ereignis, mit dem VBA
mitgeteilt wird, dass der Cursor gewandert ist.

achja, ich mein ich hab das schon mal gehört/gewußt *lächel*
Ich weiß allerdings nicht was das mit Eingabe einer Uhrzeit in eine Zelle zu tun hat *grübel*
Aber wie gesagt, warten wir erst mal ab ob hier jmd. anderes noch mal Piep sagt :smile:)

If Intersect(target, Range(„F12:H53“)) is Nothing then exit

Danke, hoffentlich merke ich mir das :frowning:

Verstehe ich, da kann ich auch nur beten. Geht mir gar nicht selten so, da weiß ich ganz genau es gibt da einen Vba-befehl der genau das macht was ich bräuchte, ich hatte ihn schon früher benutzt, aber verdammt nochmal wie hieß er denn? *fluch*

Dann bin ich erstmal hilflos, denn F1 oder Google nützt mir ohne den Namen erst mal Null :frowning:
Ich muß dann mühsam und sehr zeitaufwendig über Umwege nach diesem Namen forschen.

Angenommen, mir fiele jetzt „Intersect“ nicht ein. Aber ich wüßte noch daß der Befehl dazu benutzt wird um in „Worksheet_SelectionChange“ etwas abzuprüfen, dann ist das schnell gelöst, ich google dann nach „Worksheet_SelectionChange“ und schwupps sehe ich „Intersect“ und Problem ist gelöst.

Leider geht das nicht immer so einfach :frowning:(

Gruß
Reinhard

Hallo Ralf,
ich weiß, dass Excel das kann aber ich bin gerade dabei mich durch die Makro-Progammierung zu beißen und damit stehe ich noch ziemlich am Anfang (Seite 10 - Scherz -).
Habe mir hierfür extra ein Buch für Nixblicker und Vollidioten zugelegt
Allerdings arbeite ich mit Zeiten und Texten und das wird nicht beschrieben.
Danke für deine Rückantwort, werde mal versuchen dein „sub“ zu verstehen.

Gruß Dieter

Hallo Dieter,

Habe mir hierfür extra ein Buch für Nixblicker und Vollidioten
zugelegt

warum nicht. Würde ich auch genauso machen. Und logisch ist man am Anfang immer ein Nixblicker.

Allerdings arbeite ich mit Zeiten und Texten und das wird
nicht beschrieben.

Was genau ist dir da unklar?

Danke für deine Rückantwort, werde mal versuchen dein „sub“ zu
verstehen.

Ich würde an deiner Stelle diese Prozedurhülle nehmen:

Private Sub Worksheet_ Change (ByVal Target As Range)
'…
End Sub

Gruß
Reinhard

Hi Reinhard,

Ich weiß allerdings nicht was das mit Eingabe einer Uhrzeit in
eine Zelle zu tun hat *grübel*

gar nix. Aber irgendwie - wenn er unbedingt codieren will - muss er die Ausführung ja anstoßen, und was er dann mit der Uhrzeit anstellt, wird er schon selber wissen. Wobei ich immer noch meine, hier würde mit Kanonen auf Spatzen geschossen.

Abgesehen davon eignet sich der Worksheet.Change tatsächlich besser - mir ist beim Kopieren halt der Selection_Change in die Finger gerutscht.

Gruß Ralf