Projekt Sudoku 1. Teil Case Select

Ähnliche Dokumente
Einführung in die Programmierung mit VBA

Ü 419 a Absolute Bezüge

Visual Basic Express Fehlerermittlung

Access 2010 Programmierung Import und Export nach Excel

enneascanning Führungsfaden: in SORBA exportieren

Sudoku. Beispiellösung für Schwierigkeitsstufe mittel

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Thema: Excel-Grundlagen

Geschrieben von: Marcus Rose Mittwoch, 28. Mai 2008 um 17:14 Uhr - Aktualisiert Montag, 09. März 2009 um 06:33 Uhr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Anleitung Dudle 1. Name 2. Terminauswahl Name - 1 -

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

10 Berechnungen aus der Elektrotechnik

VBA Programmierung Einführung

Sicherheits- und Gesundheitsschutzplan für Baustellen (SiGe-Bau)

Mit der Eisenbahn durch die Schweiz 23

Beschreibung: Erforderliches Programm: Excel (97)2000 bis 2007

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

SUDOKU. l l l l l l l l l l l l l l l l. l l l l l l l l l l l l l l l l. l l l l l l l l l l l l l l l l

Lektion: SUDOKU 2 (etwas schwerer)

Vedische Multiplikation

Übungspaket 10 Fallunterscheidungen

PraxisApp Menü Einstellungen

hue12 January 24, 2017

Funktionen in JavaScript

1 Visual Basic for Application mit Excel (VBA)

Anleitung zum Erstellen einer CSV-Datei für den Import (Ausfüllanleitung zum Erfassungsbeleg)

Inhaltsverzeichnis. 1 Excel-Oberfläche und erste Dateneingabe 10

Bedingte Anweisungen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Unterlagen, Literatur. Grundlegende Einstellungen. HILFE!? Wenn Excel nicht mehr so aussieht wie beim letzten mal!

Funktionen in JavaScript

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Excel-Datei zur Verwaltung deines ordentlichen Urlaubes. Urlaubsplanung. Seite 1/9

Analysen mit Pivot-Tabellen durchführen

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

4 Makros ausprobieren

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

ECDL-Advanced Excel 2010 Advanced

Excel Aufbaukurs kompakt. Peter Wies 1. Ausgabe, November inkl. zusätzlichem Übungsanhang K-EX2013-AK-UA

Gliederung. Übungsbeispiel Autovermietung

Programmsteuerung mit PHP - if/else, elseif,switch

4) Um die Zellen eindeutig benennen zu können, erhält jede Spalte einen Buchstaben (A, B, C, D )

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Programmieren I. Kapitel 5. Kontrollfluss

Xpert - Europäischer ComputerPass. Peter Wies. Tabellenkalkulation (mit Excel 2010) 1. Ausgabe, 5. Aktualisierung, Juli 2013

1 Datenübernahme ohne VBA Grundlagen der VBA Programmierung Inhalt

Microsoft Excel 2016 Relative und absolute Bezüge

Kleine Einführung in den Matlab-GUI-Editor

Excel Kapitel 12 Lernzielkontrolle Excel 2013 Beantworten Sie die folgenden 12 Fragen

14. Es ist alles Ansichtssache

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

INFORMATIK TEIL: VBA. Infromatik WS 17/18 Teil: VBA. Allgemeines: - 4 Übungen á 3 Stunden

Excel Tipps & Tricks Umgang mit umfangreichen Tabellen

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Trainingshandbuch Schwingen. Anleitung Jahres- und Trainingsplanung

4.1 Aufbau und Eingabe von Formeln

Übung 7 Rechnerstrukturen

Trampolin 1.2. Startseite von Trampolin 1.2. Fenster "Großgerät"

Lektion: SUDOKU 1 (mittelschwer)

Kontrollstrukturen (1)

Mischungsverhältnisse: Nehmen wir an, es stehen zwei Substanzen (zum Beispiel Flüssigkeiten) mit spezifischen Gewicht a = 2 kg/l bzw.

Das HERON-Verfahren mit der TI84-Tabellenkalkulation CellSheet

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Namen in VBA nutzen HARALD NAHRSTEDT. Erstellt am

Beispiellösungen zu Blatt 101

Übersicht Shell-Scripten

Daten transformieren

Erläuterungen zum Bewertungsverfahren des Mathematik Eingangstests der Jgst.11 (SINUS SET Projekt 2)

Anweisungen in Python

Die Funktionen des Programms für Office Excel 2007

Um Werte und deren Verlauf in einer Grafik darzustellen, benutzen wir eine Tabellenkalkulation wie Excel oder das Tabellendokument von Open Office.

Text eingeben & erste Formatierungen Zeilen/Spalten einfügen & Zellen markieren

1. Im Hauptmenü wechseln Sie in den Punkt Liste. 2. Im Seitenbaum klicken Sie in den Menüpunkt, wo das Formular eingefügt werden soll.

Programmierkonventionen - 1 -

LÖS Lektion: SUDOKU 1 (mittelschwer)

Makro + VBA 2007 effektiv

In diesem Newsletter möchte ich Ihnen die Verwendung von Namen näher bringen.

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

NICHT TRIVIAL: MAKROVARIABLEN - GLOBAL ODER LOKAL

BESCHREIBUNG. Etikettendruck. CASABLANCAhotelsoftware gmbh - Öde Schönwies - Tirol - Austria

9.1 ADDIEREN UND SUBTRAHIEREN VON MATRIZEN MULTIPLIKATION EINER MATRIX MIT EINEM SKALAR

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Excel Kurzübersicht

Tabellen. Mit gedrückter Maustaste können Sie die Randlinien ziehen. Die Maus wird dabei zum Doppelpfeil.

Tag der Mathematik 2016

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Greenfoot: Verzweigungen

2. Programmierung in C

Eine kleine Befehlssammlung für Java Teil1

Handbuch zum VivaWeb-Serienbrief-Programm

Transkript:

Projekt Sudoku 1. Teil Case Select Wir wollen eine unterstützende Software erstellen, die nicht komplette Berechnung selbständig vornimmt, sondern nur dem Spieler Hilfen beim Ausfüllen gibt. So sollen die möglichen Zahlen, die in ein Feld eingesetzt werden können, angezeigt werden. Besonders wichtig für das Ausfüllen sind dann die eindeutigen Felder! Ein einfaches Sudoku, das wir in A1:I9 platzieren: Wenn wir eine leere Zelle anklicken, soll ein noch zu schreibendes Makro herausfinden, welche Zahlen in der betreffenden Spalte belegt sind und welche fehlen. Dazu notieren wir im Bereich A12:I12 die Zahlen 1 bis 9. Wenn nun eine Zahl in der Spalte vorkommt, soll in der Zeile darunter (A13:I13) an der entsprechenden Stelle eine 1 notiert werden. Kommt die Zahl nicht vor, notieren wir eine 0. Für die Zelle A8 ergibt sich dann folgendes Bild: Man sieht : 1, 2, 3, 4 und 6 sind belegt! Wie schreibt man nun ein solches Makro?

Kommentar zur Beschreibung ist sehr wichtig! Mit der Variablen i wollen wir durch die zu besichtigenden Bereiche spazieren. Die Variable inhalt soll den jeweiligen Zelleninhalt übernehmen und auf die Variable spalte wird mit dem schon bekannten ActiveCell.Column die Spaltennummer der angeklickten Zelle ausgelesen. Mit diesen Vorbereitungen geht es fast von selbst: Unbedingt wichtig ist es, den Bereich vor dem Neubeschreiben zu löschen!! Bei dem Setzen der Einsen ist es sehr praktisch, dass die Spaltenzahl genau dem Inhalt entspricht. Das Makro zeilenzahlen( ) wird völlig analog dazu geschrieben. Die Werte werden in A17:I17 notiert. Man erkennt, dass nur noch 7 und 8 als mögliche Einsetzungen übrigbleiben.

Etwas schwieriger ist die Erfassung des 3x3 Feldes. Weil es 9 solche Blöcke gibt, geben wir ihnen den schönen Namen Nonant. Um so einen Nonant zu besichtigen, müssen wir die linke obere Ecke haben und können dann die 3 Felder nach rechts und nach unten überprüfen. Dazu führen wir die folgende Nummerierung der Nonanten ein : Wir schauen uns den Beginn des Makros Namens nonantzahlen an: Wichtig ist zunächst der Kommentar, in dem noch einmal die Nummerierung der Nonanten aufgeschrieben wird. Die Variablen haben folgende Bedeutung: startz soll die Startzeile des Nonanten angeben (also z.b. bei Nonant 8 ist startz=7 ) starts soll die Startspalte des Nonanten angeben (also z.b. bei Nonant 8 ist starts=4 ) Die Zeile der angeklickten Zelle wird mit ActiveCell.Row und die Spalte mit ActiveCell.Column ausgelesen. Wir benötigen zum Durchqueren des Nonants die Startadressen. Die bestimmen wir am bequemsten mit der Case Select Anweisung. Allgemein sieht das so aus: Select Case <hier steht ein Ausdruck, dessen verschiedene Werte, die Fälle bestimmen> Case < Wert1, Wert2,... > < hier steht das, was dann passieren soll> End select

Im Makro wird das so ausgeführt: Zeilen 1,2,3 gehören zur oberen Reihe Zeilen 4,5,6 gehören zur mittleren Reihe Zeilen 7,8,9 gehören zur unteren Reihe Spalten 1,2,3 gehören zu einem linken N. Spalten 4,5,6 gehören zu einem mittleren N. Spalten 7,8,9 gehören zu einem rechten N. Hat man erst einmal die Startadressen, ist es einfach, den Nonant abzusuchen: Auch hier darf nicht vergessen werden, vorher alle Werte auf Null zu setzen. Jetzt ist die Zeile, die Spalte und der Nonant abgesucht und vorkommende Zahlen mit 1 notiert.

Wenn wir also die Summen bilden, kommen genau die Zahlen mit Summe 0 nicht vor. Dazu brauchen wir kein Makro, das geht direkt im Tabellenblatt: Hier wäre also 2, 6 und 7 eine mögliche Einsetzung. Das müssen wir jetzt noch zusammenschreiben! Eine Technik dazu sind Strings (=Texte).

Die Fallunterscheidung mit If Then Else lässt sich als leichte Übung auch mit Case Select formulieren! Es fehlt jetzt noch der Doppelklick: das geht mit einem vordefinierten Makro Worksheet_BeforeDoubleClick: Damit funktioniert jetzt der Doppelklick auf leere Zellen. Anmerkung: Falls dein Excel Probleme mit Application.Run hat, schreibe für Application.Run zeilenzahlen() mal Call zeilenzahlen. Einige wichtige Bemerkungen zum Schluss: Wenn man sich z.b. beim Namen einer Variablen verschreibt, gibt der VB Compiler von sich aus keinen Hinweis, sondern benutzt irgendeinen Wert für die neue Variable. Ein solcher Fehler hat mich bei der Programmentwicklung mehr als einen Tag Arbeit gekostet. Stellt aber als erste Zeile über alle Makros Option Explicit, dann werden solche Fehler bemerkt und nur noch deklarierte Variable zugelassen. Man sollte sich also dieses Option explicit unbedingt angewöhnen. Leider ist die Syntax von OpenOfficeBasic nicht kompatibel mit MS VisualBasic!! Immerhin gibt es Converter im Internet, die den VB Text in OOB übertragen. Eine Adresse ist z.b. www.business-spreadsheets.com/vba2oo.asp