Hallo Interessierte,
wie ich vom Mitlesen mitbekam benutzen gelegentlich Rater hier Excel um
etwas zu lösen.
Ich liebe Excel und tummle mich in Excelforen. In einem gibt es einen User NoNet, der hat seit Wochen begonnen Mittwochs eine Rätselaufgabe einzustellen.
Die aktuelle ist eine, wie immer von ihm selbst entwickelte
Rätselaufgabe. Man muß in einem 10 x 10 großem Gesamtfeld wo 25
Felder schon mit einem H wie Hasen belegt sind, 25 E wie Eier so auf die Felder aufteilen sodaß die Verteilung bestimmten Regeln entspricht.
Ist so eine Mischung aus
8 Damen auf einem Schachbrett, wo man 8 Damen so platzieren muß daß keine eine andere schlagen könnte.
Das habe ich vor langer Zeit schon gelöst, ohne Excel, nur durch
ausprobieren.
Also für alle lösbar.
Entweder sich auf Karopapier dieses 10x10 Feld aufzeichnen, die H’s
eintragen und dann mit 25 1 centstücken rumprobieren.
Oder halt mit Excel.
Nachfolgend ist für Excel ein Vba-Ansatz der für alle
H-Zellpositionen alle je Zelle möglichen E-Zellpositionen auflistet.
Wer will kann ja das als Ansatz nehmen und dann z.B. mit
25 For-Schleifen alle möglichen Kombinationen durchspielen und auswerten.
Hier ist der Link zu dem Rätsel:
http://raetselei.excelei.de/aktuelle_raetselei.php
Und auf der Webseite gibt es auch die alten Mittwochsrätsel.
Ich kenne die Lösung für dieses Rätsel, bei Interesse kann ich sie auch hier zeigen. Sie wurde wohl von demjenigen durch manuelles
Ausprobieren gelöst denn da war kein Vba-Code dabei oder gar eine
reine Formellösung mit wahrscheinlich gigantischen Formelmonstern oder
Hilfszellen.
FrOstern
Gruß
Reinhard
In ein Standardmodul:
Option Explicit
Sub Verstecken()
Dim c, firstAddress, Zei, wks1, Ei(1 To 25)
Dim Zmin, Zmax, Smin, Smax
Zmin = 9
Zmax = 20
Smin = 3
Smax = 12
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set wks1 = ActiveSheet
wks1.UsedRange.ClearContents
With Worksheets("Ostereiernester verstecken").Range("Raetselfeld")
Set c = .Find("H", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Zei = Zei + 1
wks1.Cells(Zei, 1).Value = Split(c.Address, "$")(1) & Format(Split(c.Address, "$")(2), "00")
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
wks1.Range("A1:A25").Sort Key1:=wks1.Range("A1"), Order1:=xlAscending, Header:=xlNo, \_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
With wks1
For Zei = 1 To 25
If Range(.Cells(Zei, 1).Value).Offset(-1, 0).Row \>= Zmin Then
.Cells(Zei, 2).Value = .Cells(Zei, 2).Value & "#" & Range(.Cells(Zei, 1).Value).Offset(-1, 0).Address
End If
If Range(.Cells(Zei, 1).Value).Offset(1, 0).Row = Smin Then
.Cells(Zei, 2).Value = .Cells(Zei, 2).Value & "#" & Range(.Cells(Zei, 1).Value).Offset(0, -1).Address
End If
If Range(.Cells(Zei, 1).Value).Offset(0, 1).Column