Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Bei drücken der Leertaste soll automatisch ein X in einer Zelle gesetzt werden





Frage

Hallo, ich arbeite an einem Dokument in Excel 97. Dort sollen andere User Eingaben machen. Ich möchte nun Folgendes erreichen: in dem Formular gibt es die Möglichkeit entweder Ja oder Nein zu wählen. Wenn der User nun diese Zellen mit Hilfe des Tabulators erreicht, soll er nur noch auf die Leertaste drücken müssen, um entweder in der Zelle mit Ja ein X oder oder dann in der nächsten Zelle mit Nein ein X zu setzen. Vorab schon mal vielen Dank für jede Art von Hilfe!

Antwort 1 von nighty

hi alle

eine variante

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Value = " " Then Target.Value = "X"
End Sub

gruss nighty

Antwort 2 von want2cu

@nighty:
ich kann zwar kein VBA, aber ich hätte zu deiner Lösung folgende Anmerkung:

Lt. Aufgabenstelllung soll dann in der n ä c h s t e n Zelle mit NEIN ein X gesetzt werden.
Bezieht sich deine Lösung nicht auf dieselbe Zelle?

@Frank: Wenn es nur um ein Kreuz geht, warum nimmst du dann kein Formularfeld zum Ankreuzen oder regelst das über DATEN -GÜLTIGKEIT?

CU
Klaus

Antwort 3 von FrankK23

Hallo,

noch mal zur Verdeutlichung:
ich habe z.B. die Zellen B1 bis B4. In der Zelle B2 steht als Text Ja und in B4 steht Nein. Der User kommt nun über den Tabulator in B1 und soll jetzt hier durch klicken der Leertaste ein X setzen. Diese bedeutet dann, dass es sich für Ja entschieden hat. Will er Nein sagen, drück er nochmal auf die Tabulatortaste und kommt dann in die Zelle B3 (das Formular ist so aufgebaut, dass der User nur die Zellen mit der Tabulatortaste erreicht, in denen er Eingaben machen kann) und kann dann hier durch klicken der Leertaste sein Kreuz machen.

Würde ich das ganze über das Formularfeld machen, müsste man die Maus benutzen. Diem möchte ich vermeiden.

Frank

Antwort 4 von nighty

hi want2cu

das makro wird aktiv bei dem verlassen einer beliebigen zelle und wird auf ein leezeichen bzw. spacetaste geprueft,sollte ein leerzeichen vorhanden sein so wird es mit dem x ersetzt(es wird immer von der aktiven zelle ausgegangen).

gruss nighty

Antwort 5 von flupo

Ein "richtiges" Dialogfeld willst du wohl nicht basteln?

Damit wäre diese Cursorsteuerung kein Problem.
Rechtsklick unten auf den Registerkarten für die Tabellenblätter - "einfügen..." - Formular

Gruss Flupo

Antwort 6 von Aliba

Hi FrankK23,

ich weiß nicht, ob das so vorteilhaft ist, wie Du Dir das vorstellst. Warum besetzt Du nicht all diese Felder mit X vor und dann kann mit der Leertaste das nicht zutreffende gelöscht werden. Oder der User muß halt einfach das X eintragen.
Das Problem mit dem X im selben Feld kann nur über VB gelöst werden. Der Nachteil bei dieser Vorgehensweise ist ja auch, daß der User in dem Moment seiner Eingabe gar nichts sieht, daß er was in dem Feld geändert hat, sondern erst beim Verlassen der Zelle. Stellt er dann fest, hoppla das war jetzt falsch, muß ihm aber deutlich erklärt werden, daß er jetzt dieses Feld mit der Entf.-Taste zu leeren hat und es keinen Sinn macht das X durch Drücken der Leertaste zu entfernen. Es ist zwar optisch nicht mehr vorhanden, wird jedoch beim Verlassen der Zelle auf Grund der Anweisung wieder reingeschrieben. Könnte zu Problemen führen.

Nur so meine Meinung.

CU Aliba