wenn x<>y dann z=z+1

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: wenn x<>y dann z=z+1

von erikafuchs » Fr, 23.02.2007 16:04

Hallo Karo,

das ist schon recht hilfreich - da kann ich mich doch schon mal am praktischen Beispiel in Calc-Makros reinarbeiten. Mein Programm sieht aber leider ganz anders aus. Ich habe verschiedene mathematische Probleme, z.B. müssen die Schüler an Funktionsgraphen die Gleichung ablesen. Ich denke schon, dass mir hier jemand auch so eine "übersetzung" eines Algorithmus´ basteln kann. Ich glaube ich mach noch mal ein neues Thema auf.

Erstmal Dank
Pit

von Karolus » Fr, 23.02.2007 05:56

Hallo Pit

Bei deinen Versuchen , HIER einen VBA- Übersetzer zu finden, kann ich dir nicht helfen, aber unter folgendem Link findest findest du ein Tabellendokument, das du mit geringem Aufwand von 'Vokabelabfrage' auf 'Rechenaufgaben-Abfragen' umändern kannst.
Nebenbei findest du im Dokument noch jede Menge Basic-code zum Lernen.
http://www.gesamtschule-wald.homepage.t ... rainer.ods

Gruß Karo

von erikafuchs » Di, 20.02.2007 16:59

Lieber Thomas,

da bin ich wieder! Ich habe jetzt die erste Rohfassung meines Programms in Excel zum Laufen gebracht (unter Kräftiger Mithilfe des entsprechenden Forums - von VBA habe ich nämlich auch wenig Ahnung), aber, wie gesagt, ich will das ja eigentlich unter Calc zum Laufen bringen. Muss ich mich da jetzt auch noch durch StarBasic durcharbeiten. Gibt es nicht einen Übersetzer dafür? Beides basiert doch auf VisualBasic - nehme ich an. Könnte mir hier mal jemand den VBA Code:

Sub Tabelle6
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("c7:c14 ")) Is Nothing Then Exit Sub
If Target.Value <> Cells(Target.Row, Target.Column + 1) And Target.Value <> "?" Then
Cells(Target.Row, Target.Column + 2) = Cells(Target.Row, Target.Column + 2) + 1
End If
End Sub


übersetzen, damit ich mal die Unterschiede sehen kann? In den Zellen meiner vereinfachten Tabelle stehen jetzt in den Zellen C7 bis C14 Fragezeichen. Der Code oben vergleicht in einer Tabelle die Eingaben in diesen Zellen mit den Werten rechts daneben und zählt die Falscheingaben im übernächsten Feld.

Wenn ihr mir da mal weiterhelfen könntet, wüßte ich, was auf mich zukommt.

Grüße und Dank von
Pit

von Toxitom » Do, 15.02.2007 19:16

Hey Pit,

Klar, wir verzeihen dir :wink:

Also, ein gutes Buch zu OpenOffice.org Makros findest du -> hier.

Tia, und das Forum sit antürlich auch voll von Tipps und Hilfen, nur der Einstieg.. ist zugegebenerweise schwer - insbesondere für VBA Umsteiger.

Aber - wir helfen ja hier :-)

Viele Grüße
Thomas

von erikafuchs » Do, 15.02.2007 16:40

Naja, jetzt habt ihr mich erwischt!

auf der einen Seite habe ich das ganze Ding schon mal in Excel zusammengebaut, weil ich das nun mal kenne und es Bücher über VBA gibt - auf der anderen Seite empfehle ich all meinen Schülern OpenOffice und versuche, in der Schule (und bei mir zu Hause) auf OpenOffice umzusteigen. Ich habe das ganze Projekt in Excel bebastelt und in OpenOffice angepasst. Dabei habe ich erfreut festgestellt, dass ich in OpenOffice die geplante Stoppuhr ohne Makros hinbekommen habe (das geht in Excel z.B. nicht). Jetzt mache ich einen Schnellkurs in Excel - probiere dort, meine Probleme zu lösen und hatte gehofft, dass ich das in OpenOffice wieder anpassen kann. Ich habe kein Buch zu Makros in OpenOffice gefunden. Könnt ihr mir nochmal verzeihen ... ich will ja auch viel lieber mit OpenOffice arbeiten ... aber wie schreibt man da Makros???

Zerknirschte Grüße
Pit

von Toxitom » Do, 15.02.2007 08:24

Hey Pit,
etzt habe ich einen Schnellkurs in VBE gelesen und das gebastelt
Aber hallo..... falsches Forum?
Mit VBA kommst du bei OpenOffice.org leider nicht sehr weit - da geht gar nichts. Dein Code mag unter MS Excel funktionieren, leider aber nicht unter OOo Calc :-(
Haben wir uns da die ganze Zeit Missverstanden?

Gruss
Thomas

von erikafuchs » Mi, 14.02.2007 21:21

So, jetzt habe ich einen Schnellkurs in VBE gelesen und das gebastelt:

If ActiveCell.Value = Active.Cell.Offset(0, 1).Value Then
ActiveCell.Offset(0, 2).Value = 1
Else
ActiveCell.Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value +1
End If

In der aktiven Zelle gibt der Schüler sein Ergebnis ein, rechts davon steht verdeckt das richtige Ergebnis, rechts davon werden die richtigen Ergebnisse gezählt und rechts davon die Fehler.

Wie ich jetzt aber dafür sorge, dass das bei jeder Eingabe überprüft wird weiss ich nicht.

Hilfe!
Dank + Grüße
Pit

von Toxitom » Mi, 14.02.2007 16:36

Hey Pit,

na denn mal los :-)

Und wenn es nicht weitergeht.... Code hier posten, da finden wir dann schon einen Weg :-)

Gruss
Thomas

von erikafuchs » Mi, 14.02.2007 14:49

Lieber Thomas,

ist Zelllistener ein feststehender Begriff, eine Schleife, oder eine Liste der betreffenden Zellen? Wenn ich das weiss könnte ich ja dann mal loslegen.

Gruß
Pit

von Toxitom » Mi, 14.02.2007 14:22

Hey Pit,
Gibt es einen einfachen Allgorithmus, der bei jeder Eingabe in einem beliebigen nichtgesperrten Feld eines Arbeitsblattes überprüft, ob die Eingabe mit dem Feld rechts daneben übereinstimmt und, wenn ja, im übernächsten Feld 1 dazuzählt - oder ist das Arbeit?
Na ja, wie man es nimmt ;-)
Kannst du mit dem folgenden etwas anfangen, ist es einfach, sonst "Arbeit":
Lösung: Schreibe einen Zelllistener, Überprüfe die aktuelle Selektion(aktive Zelle), überprüfe den Wert darin mit dem Referenzwert und passe entsprechend die Ergebniszelle an.

Gruss
Thomas

Makros

von erikafuchs » Mi, 14.02.2007 14:17

Vielen Dank, jetzt weiss ich endlich das Grundproblem. Das war zu befürchten, dass ich jetzt mit Makros einsteigen muss. Ich habe ja auch schon die ersten Versuche gestartet, (Basic und QBasic kann ich einigermaßen), in VBA habe ich die ersten Gehversuche gemacht. Ich nehme an, es ist auch garn nicht so schwer, mein Problem zu lösen - auf Anhieb habe ich das aber nach Studium der Handbücher noch nicht geschafft. Gibt es einen einfachen Allgorithmus, der bei jeder Eingabe in einem beliebigen nichtgesperrten Feld eines Arbeitsblattes überprüft, ob die Eingabe mit dem Feld rechts daneben übereinstimmt und, wenn ja, im übernächsten Feld 1 dazuzählt - oder ist das Arbeit?

Grüße
Pit

von Toxitom » Mi, 14.02.2007 12:06

He Pit,

mit Formeln kannst du nicht in eine ander Zelle schreiben! Das geht nur mit Makros. Also, der Teil:

Code: Alles auswählen

...;F1=F1+1;...
kann nicht funktionieren!
Formeln können nur das angezeigte Ergebnis der aktuellen Zellen verändern.
Die Problematik ist also - wie ich schon erwähnt hatte - in der Formelstruktur selbst zu beachten - alles ist immer dynamisch und ändert sich komplett.

Viele Grüße
Thomas

von erikafuchs » Mi, 14.02.2007 11:40

Lieber Thomas,
vielen Dank erstmal! Ja klar, eigentlich sollte es funktionieren - ich bekomme das aber nicht hin. Wenn es funkzionieren würde, sollte er auch den Zähler bei richtiger Eingabe nicht zurückseten, weill ja nur überprüft wird, "wenn falsch dann +1" und nicht "wenn richtig dann -1". Vielleicht mache ich ja aber was falsch - ich beschreibe meinen Aufbau mal genauer:
A1 enthält Zahl1
B1 enthält z.B. "+"
C1 ist für das Ergebnis und enthält ein "?" (färbt sich grün wenn C1=D1)
D1 berechnet A1+B1 (verdeckt)
in E1 würde ich reinschreiben "=(wenn(C1="?";"";(wenn(C1=D1;F1=F1+1);""))
klappt aber nicht, was mache ich falsch?
Gruß
Pit

von Toxitom » Mi, 14.02.2007 08:20

Hey Pit,

also, eine Möglichkeit der Antwort steht auch in dem anderen Thread, ansonsten hast du doch exakt deien Bedingung formuliert:

Code: Alles auswählen

=wenn (x <> y; z + 1; z)
Jetzt ersetz deine Platzhalter durch entsprechende Zelladressen - fertig.
Dabei wäre x die Eingabezelle, y die (richtige) Ergebniszelle, bei dir wahrscheinlich versteckt :-) ), und z die Zelle der letzten Zeile (Zelle), welche die Fehleranzahl enthält. Als Ergebnis steht dann in der aktuellen Zelle die Summe der bisherigen und neuen Fehler, diese Zelle wäre also Bezug für die nächste Zeile.
Aber: Das ganze funktioniert natürlich nur dynamisch, d.h., fird ein falsches Ergebnis geändert zu einem richtigen, vermindert sich die Fehler-Anzahl.

Möchtest du grundsätzlich die Fehlversuche zählen, dann geht das wohl nur über Makros.

Gruss
Thomas

wenn x<>y dann z=z+1

von erikafuchs » Di, 13.02.2007 21:12

Hallo zusammen,
von mir ist unten das Thema "Falscheingaben zählen". Vielleicht ist der Text zu lang. Ich wollte es noch mal auf den Punkt bringen:
Hat jemand eine Idee, wie man die Bedingung "wenn x<>y dann z=z+1 zum Laufen bringt?
Grüße
Pit

Nach oben