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 
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
) 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 
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
)
If Intersect(target, Range(„F12:H53“)) is Nothing then exit
Danke, hoffentlich merke ich mir das 
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 
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
(
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