Liebe Leute,
wieder mal seid ihr es, von denen ich mir Hilfe erhoffe. Ich stehe vor folgendem Problem: Es soll eine Anwendung geschrieben werden, wo der Anwender in eine Zelle eine Zahl seiner Wahl eingeben soll (z. B. in C5 die Zahl 5). Im weiteren Verlauf der Anwendung soll der Anwender aber gehindert werden, seine eingegebe Zahl wieder zu verändern. Schön wäre es, wenn die Zelle sich automatisch nach der erstmaligen Eingabe sperren würde. Aber das geht wohl nicht. Kann man evtl. durch geschicktes Programmieren erreichen, das Excel es „merkt“, dass die Zahl nach der erstmaligen Eingabe verändert wurde? Mir fällt kein Trick ein und daher hoffe ich auf eure Hilfe.
Hintergrund für mein Problem ist ein Spiel, welches ich in Excel für meine Arbeitskollegen programmieren möchte, und zwar Zahlenmastermind. Dabei setzt der Computer 4 Zahlen (aus insgesamt 8) in virtuelle Löcher. Der Anwender hat 10 Chancen herauszufinden, welche Zahl in welchem Loch ist. Nach jedem Rateversuch gibt der Computer Auskunft, wie viele Zahlen richtig sind und wie viele richtig und am richtigen Platz. Dabei möchte ich erreichen, dass der Anwender wirklich nur seine 10 Chancen nutzt und nicht mogelt, indem er z. B. in der ersten Zeile sich immer verändernde Zahlen eingibt, bis das Ergebnis stimmt.
Ich möchte durch dieses Spiel ein kleines bisschen Spaß ins Arbeitsleben bringen (natürlich nur für die Pause).
Also, ich zähl auf euch!
Euer Stefan
Liebe Leute,
Hi,
machs doch per Makro:
Dim zahl1 as Integer
dim aendern\_verboten as Boolean
Private Sub Worksheet\_Change(ByVal Target As Range)
if aendern\_verboten=true then
cells(3,5) =zahl1 '3.Reihe 5.Spalte, also E3
else
zahl1=cells(3,5)
aendern\_verboten=true
end if
End Sub
Gruß.Timo
Am Ende des Spiels kannst du ja aendern_verboten wieder auf False setzen.
wieder mal seid ihr es, von denen ich mir Hilfe erhoffe. Ich
stehe vor folgendem Problem: Es soll eine Anwendung
geschrieben werden, wo der Anwender in eine Zelle eine Zahl
seiner Wahl eingeben soll (z. B. in C5 die Zahl 5). Im
weiteren Verlauf der Anwendung soll der Anwender aber
gehindert werden, seine eingegebe Zahl wieder zu verändern.
Schön wäre es, wenn die Zelle sich automatisch nach der
erstmaligen Eingabe sperren würde. Aber das geht wohl nicht.
Kann man evtl. durch geschicktes Programmieren erreichen, das
Excel es „merkt“, dass die Zahl nach der erstmaligen Eingabe
verändert wurde? Mir fällt kein Trick ein und daher hoffe ich
auf eure Hilfe.
Hintergrund für mein Problem ist ein Spiel, welches ich in
Excel für meine Arbeitskollegen programmieren möchte, und zwar
Zahlenmastermind. Dabei setzt der Computer 4 Zahlen (aus
insgesamt 8) in virtuelle Löcher. Der Anwender hat 10 Chancen
herauszufinden, welche Zahl in welchem Loch ist. Nach jedem
Rateversuch gibt der Computer Auskunft, wie viele Zahlen
richtig sind und wie viele richtig und am richtigen Platz.
Dabei möchte ich erreichen, dass der Anwender wirklich nur
seine 10 Chancen nutzt und nicht mogelt, indem er z. B. in der
ersten Zeile sich immer verändernde Zahlen eingibt, bis das
Ergebnis stimmt.
Ich möchte durch dieses Spiel ein kleines bisschen Spaß ins
Arbeitsleben bringen (natürlich nur für die Pause).
Also, ich zähl auf euch!
Euer Stefan
Hi nochmal,
habe es gerade eben auch mal gebaut:
http://www.badongo.com/file.php?file=spiel__2005-12-…
Gruß.Timo
Zahlenmastermind. Dabei setzt der Computer 4 Zahlen (aus
insgesamt 8) in virtuelle Löcher. Der Anwender hat 10 Chancen
herauszufinden, welche Zahl in welchem Loch ist. Nach jedem
Rateversuch gibt der Computer Auskunft, wie viele Zahlen
richtig sind und wie viele richtig und am richtigen Platz.
Dabei möchte ich erreichen, dass der Anwender wirklich nur
seine 10 Chancen nutzt und nicht mogelt, indem er z. B. in der
ersten Zeile sich immer verändernde Zahlen eingibt, bis das
Ergebnis stimmt.
Hi Stefan,
erzeuge über Ansicht–Symboll.–Formular eine Befehlsschaltfläche der du das Makro Neu() zuweist.
Neu() gehört in Modul1, Worksheet_Change in den Codeteil von Tabelle1.
Durch Neu() werden die 10x4 Zellen in C1:L4 nicht mehr gesperrt.
Der User kann jetzt in Spalte C seine Zahlen eingeben. Solange es nur 3 sind, kann er sie noch ändern. Sobald er die vierte Zahl eingibt wird die Spalte gesperrt für Änderungen.
Anpassen musst du nur C1:L4 und .Columns
Option Explicit
Sub neu()
ActiveSheet.Unprotect password:=„abc“
Range(„C1:L4“).Locked = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, password:=„abc“
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column
Vielen Dank für die Hilfe, aber ich dachte an eine Lösung ohne Makros.
Stefan
Vielen Dank für die Hilfe, aber ich dachte an eine Lösung ohne Makros.
Stefan