Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabe von Formeln verhindern

Eingabe von Formeln verhindern
15.09.2006 22:39:42
Formeln
Moin,
Folgendes ist mir passiert:
Ich habe eine Exceltabelle erstellt, mit einigen Berechnungen etc, in die der Anwender nur Daten eingeben soll, aber keine Formeln. Nun kam ein Nutzer auf die Idee, ein Minus einzugeben. Das funktioniert auch, wenn man den Eintrag mit der Return-Taste beendet. Der Anwender ist aber mit den Rechts/links/oben/unten-Tasten weiter gegangen, und dadurch hat Excel das Minus als Beginn einer Operation angesehen. Wie kann ich das verhindern?
Rolf

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe von Formeln verhindern
15.09.2006 22:45:15
Formeln
Hallo Rolf!
Z.B. mit diesem Code im Modul der Tabelle.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrExit
If Target(1, 1).HasFormula Then
  Application.EnableEvents = False
  Application.Undo
  MsgBox "No No!"
End If
ErrExit:
Application.EnableEvents = True
End Sub


Gruß Sepp

Anzeige
AW: Eingabe von Formeln verhindern
15.09.2006 23:02:10
Formeln
Klappt, obwohl ich nicht begreife, warum.
Allerdings unterbindet der Code nicht, dass der Anwender irritiert ist. Wenn er in A1 "-" eingibt und dann nach B1 wechselt, sieht er zunächst "-B1". Kann man nicht erreichen, dass die Cursertasten entweder deaktiviert (mit entsprechender Fehlermeldung) oder der Returntaste gleichgestellt werden?
Rolf
AW: Eingabe von Formeln verhindern
15.09.2006 23:20:41
Formeln
Hi Rolf,
für mich stellt sich die Problematik dass die Pfeiltaste nach Rechts kein Ereignis auslöst.
Vielleicht müßte man über Onkey den Pfeiltasten ein Makro zuweisen, dass den Zustand abprüft, ob der Zustand CutCopyModus o.ä. ist weiß ich nicht, ich wart mal ab ob Sepp ne Lösung im Petto hat.
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
@Reinhard!
15.09.2006 23:45:40
Josef
Hallo Reinhard,
man kann zwar mit "Application.OnKey "{RIGHT}", "" " die Pfeiltaste "Ausschalten", aber
das wirkt sich nicht aus, wenn Excel im Bearbeitungsmodus ist.
Gruß Sepp

AW: @Reinhard!
16.09.2006 00:11:48
Reinhard
Hallo Josef,
ich deute das so, ich kann wohl der Pfeiltaste mit Onkey ein Makro zuweisen, aber wenn jmd ein "-" in eine Zelle eingibt und dann die Pfeiltaste betätigt wird das Makro nicht ausgeführt, weil der Bearbeitungsmodus für Excel "höherwertig" ist.
Wie wäre es denn dann mit einer API Funktion die abprüft ob in einer Zelle ein "-" oder sonstige den Bearbeitungsmodus auslösende Zeichen eingegeben werden?
Was ist denn dann "höherwertiger" (=wird ausgeführt), API oder der Bearbeitungsmodus?
So wie ich deine VBA Kenntnisse einschätzen kann, kannst du auch meine einschätzen, also überforder mich bitte nicht :-)
Grad bei API-Funktionen oder auch Klassenmodulen tue ich mich unheimlich schwer die auch nur leicht abzuändern, weil ich da wenig durchblicke.
Bei einfacherem "normalen" VBA-Code tue ich mich leichter.
Und völlig Off Topic, ist mir jetzt in Folge 2mal passiert, dass eine in einem Modul als Public definierte Variable im Code "angemeckert" wurde. Ich weiß nicht warum. Wenn du magst:
https://www.herber.de/forum/messages/801855.html
Der Gesamtcode ist völlig unerheblich, ich muss nur wissen warum da die Variable "gespielt" im Code nicht bekannt ist
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
@Reinhard!
16.09.2006 00:21:33
MichaV
Hallo
3 sekunden lesen:
Public gepielt As Boolean
...
gespielt = False
Erkannt?
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: @Reinhard!
16.09.2006 00:21:50
Josef
Hallo Reinhard!
Mit deiner Vermutung liegst du vollkommen richtig.
Wenn sich Excel im Bearbeitungmodus befindet, dann gibt's praktisch kein VBA.
Excel ist dann in einer anderen Welt.
Und auch wenn man API-Funktionen einsetzt, dann laufe die ja doch im VBA-Code.
Daher müsste man schon beim laden der Mappe die Pfeiltasten deaktivieren.
Das ist aber keine Kleinigkeit, und ich würde davon abraten.
Ich halte nichts davon, das System für eine Excelmappe derart zu manipulieren.
Zu deinem Codeproblem:
SCHREIBFEHLER! die Variable heißt bei dir einmal "gespielt" und dann wieder "gepielt"!
Gruß Sepp
Anzeige
*schäm*
16.09.2006 01:26:35
Reinhard
Danke dir und Micha,
ich könnte mich jetzt rausreden und die Schuld auf Bill abwälzen, hätte ja Warnung kommen können, "Sie haben eine globale Variable "gepielt" genannt, meinen sie mit der Variablen "gespielt" in ihrem seltsamen Code etwa die gleiche Variable?" oder so :-)
Was mir schon länger auffällt, wenn ich selber Code schreibe und Fehler kommen finde ich sehr oft keine Lösung. Wenn aber ich diesen Code gar nicht kenne und ich lese eine Anfrage mit dem gleichen Code und dem gleichen Problem, dann sehe/finde ich eine Lösung zig bedeutend öfter.
Muss wohl so sein wie wenn man in der Schulklasse an der Tafel steht und die Hirnfähigkeiten gehen gegen Null und das Andere ist, man sitzt cool irgendwo in der Klasse und kann die Gedanken ohne Tafelstress frei fliegen lassen.
Wie auch immer, Danke Euch
Reinhard

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: *schäm*
16.09.2006 07:10:04
MichaV
Moin,
verwende einfach in jeder Variablendeklaration mindestens einen Grossbuchstaben. Bei der weiteren Eingabe schreibe alles klein. Dann siehst Du, ob "Bill" in der Variablen manche Buchstaben in Gross umwandelt.
Oder die ersten Buchstaben der Variablen eingeben und STRG+Leertaste.
Gruß- Micha
PS: Rückmeldung wäre nett.
PPS: @Sepp: Sorry für meine Einmischung
AW: *schäm*
16.09.2006 09:11:49
Reinhard
Moin Micha,
das Kleinschreiben allen Codes habe ich mir schon angewöhnt, was zur Folge hat dass ich bei normalen Texten oft die Großschreibung vergesse :-)
Und dann sehe ich ja beim Codeschreiben ob Excel-VBA automatisch bei erkannten Befehlen/Anweisungen umwandelt. Diese Hilfe verpufft natürlich wenn ich Variablen kleingeschrieben deklariere/definiere. Muss ich mir noch angewöhnen in Variablen zumindest einen Großbuchstaben zu verwenden.
Gruß
Reinhard
Anzeige
AW: *schäm*
16.09.2006 09:26:06
Josef
Hallo Micha!
"PPS: @Sepp: Sorry für meine Einmischung" ?!
Je mehr "Einmischer", um so besser die "Mischung"
Gruß Sepp
AW: Eingabe von Formeln verhindern
15.09.2006 23:42:38
Formeln
Hallo Rolf!
Das ginge nur mit erheblichem Aufwand.
Es gibt aber Software mit der man einzelne Tasten umbelegen oder deaktivieren kann.
Gruß Sepp

AW: Eingabe von Formeln verhindern
16.09.2006 17:15:20
Formeln
Herzlichen Dank für die Mühe, die ich euch macht habt.
Es ist ja ganz spannend, wenn die Experten untereinander diskutieren...
Aber, die Tastenbelegung zu ändern, ist wohl schwieriger, als ein paar Anwender zu schulen....
Danke.
Rolf
Anzeige
AW: Eingabe von Formeln verhindern
16.09.2006 22:54:23
Formeln
Hi Rolf,
wenn der Anwender in A1 NUR "-" eingibt dann gibts kein Wechseln nach B1 mehr.
(das Makro einmalig ähem einmalig laufen alssen *gg:
Option Explicit
Sub einmal()
Application.OnKey "-", "Nicht"
End Sub
Sub Nicht()
With ActiveCell
If .Value = "-" Then
.Value = ""
.Select
End If
End With
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Eingabe von Formeln verhindern
19.09.2006 18:10:50
Formeln
Hallo Reinhard,
entschuldige die späte Antwort. Ich ziehe es vor, die Anwender darüber aufzuklären, was bei Gebrauch der Curser-Tasten passiert. Is, glaub' ich, einfacher.
Danke trotzdem.
Rolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige