Rätselei, Eier verstecken

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.

und
Windows Minesweeper

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