Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Lösung mit Makro | Herbers Excel-Forum


Betrifft: Lösung mit Makro von: alifa
Geschrieben am: 30.11.2009 23:30:19

Hallo,
100 Lämpchen sind auf einer Leiste, in einer Reihe angeordnet. Jedes Lämpchen hat seinen Schalter.
1. Jemand betätigt alle Schalter(Knopfdruck), der Reihe nach, angefangen von links. Alle 100 leuchten.
2. Jeder zweite Knopf wird betätigt. Jetzt leuchten 2,4,6....98,100 nicht mehr.
3. Jeder dritte Knopf wird betätigt und der Zustand der betreffenden Lämpchen verändert.
Und so weiter 100 Mal. Also anschließend wird jeder 4., dann jeder 5., 6., ....100. Knopf gedrückt. Welche Lämpchen leuchten am Ende dieser Prozedur?
Wie kann man dieses Problem mit einem Makro erfassen? Die Lösung glaube ich zu kennen. Mir geht es, wie gehabt, um das Makro. Kann mir jemand helfen, der vielleicht auch etwas Spaß daran hat?
Gruß, Erhard

  

Betrifft: AW: Lösung mit Makro von: Daniel
Geschrieben am: 30.11.2009 23:44:34

Hi
das wäre die BruteForce-Lösung:

Sub LampenProblem()
Dim Lampen(1 To 100) As Boolean
Dim i As Long, x As Long
For i = 1 To 100
    For x = i To 100 Step i
        Lampen(x) = Not Lampen(x)
    Next
Next
Range("A1:A100").Value2 = WorksheetFunction.Transpose(Lampen)
End Sub

mit dem Ergebnis: alle Quadrat-Lämpchen leuchten (1, 4, 9, 16, 25, 36 ...)
Gruß, Daniel


  

Betrifft: AW: Lösung mit Makro von: alifa
Geschrieben am: 01.12.2009 11:26:04

Hallo Daniel,

danke für Deine Lösung. Jetzt hätte ich noch die Bitte, mir zu erklären, wie das Programm diese Lösung findet. Einzelne Schritte. Und wie sähe es aus, wenn die MsgBox die 10 Werte ausgibt.

Gruß, E.


  

Betrifft: Da gibt's gar nichts zu erklären,... von: Luc:-?
Geschrieben am: 01.12.2009 19:55:55

...Erhard,
das Pgm „findet“ die Lösung nicht, sondern macht genau das, was du eingangs beschrieben hast → es schaltet die Lampen xmal um! Geh einfach mal die Zyklen durch, dann merkst du das auch (im inneren Zyklus wird der jeweilige Wert der Laufvariablen des äußeren als Start und Schrittweite [Step] verwendet). Deshalb schrieb Daniel ja auch Brute Force! Also keine Mathematik — nur Automation... ;-)
Gruß Luc :-?


Beiträge aus den Excel-Beispielen zum Thema "Lösung mit Makro"