Schleifen Programmierung

Guten Tag.
Ich habe eine Aufgabe bekommen, die ich wenig verstehe.

„Legen Sie eine neue Excel-Datei an und füllen Sie die Zellen A1 bis A15
mit Zufallszahlen, indem Sie die Formel =zufallszahl() über die Zellen ziehen.
Schreiben Sie ein Makro, das die Zellen in Spalte A mit grünem Hintergrund versieht,
solange sich ein Wert in der Zelle befindet. Alle anderen Zellen der Spalte A sollen
farblos sein, was sich durch Angabe von
.Interior.Pattern = xlNone
erreichen lässt.
Gehen Sie bei der Programmierung davon aus, dass die Spalte A nur 100 Zeilen hat.
Zum Testen Ihres Programms sollten Sie den Inhalt von Spalte A variieren, indem Sie
unterschiedlich viele Zellen mit Zufallszahlen füllen und dann jedes Mal Ihr Makro
starten, um zu sehen, ob es immer noch das richtige tut. Die Füllung sollte aber immer
lückenlos in Zeile 1 beginnen.
Hinweis:Ihr Makro benötigt 2 Schleifen…“

Ich weiß, das ich eine Schleife programmieren muss. Die Basics dazu hab ich auch drauf, nur fehlen mir die Befehle, um solch eine Aufgabe fertigzustellen.
Es wäre wirklich gut, wenn ihr mir ein wenig auf die Sprünge helfen könntet.
Vielen Dank
S.Erhorn

Hallo Simon,

Alle anderen
Zellen der Spalte A sollen
farblos sein, was sich durch Angabe von
.Interior.Pattern = xlNone
erreichen lässt.

wer erzählt denn sowas?
Schau mal in die Hilfe zu Pattern, das ist das Muster der Hintergrundfarbe, nicht die Farbe.
Die Farbe erreicht man u.a. mit
.Interior.Colorindex=xlNone

Hier siehst du was Pattern macht/ist (aus der Hilfe):

Beispiel zur Pattern-Eigenschaft
In diesem Beispiel wird der Innenbereich von Zelle A1 in Sheet1 mit einer Kreuzschraffur formatiert.
Worksheets(„Sheet1“).Range(„A1“). _
Interior.Pattern = xlPatternCrissCross

Hinweis:Ihr Makro benötigt 2 Schleifen…"

Wer erzählt denn sowas?
Ach, hab ich ja schon gefragt :smile:) Man benötigt gar keine Schleife, wie nachstehender Code klar demonstriert.

Okay, der wird dir nix nutzen, anscheinend wollen die von dir Schleifen sehen.

Ich weiß, das ich eine Schleife programmieren muss. Die Basics
dazu hab ich auch drauf, nur fehlen mir die Befehle, um solch
eine Aufgabe fertigzustellen.
Es wäre wirklich gut, wenn ihr mir ein wenig auf die Sprünge
helfen könntet.

Zeige mal deinen bisherigen Code.

Gruß
Reinhard

Sub tt()
Columns(1).Clear
Columns(1).Interior.ColorIndex = xlNone
Range("A1:A" & Int(Rnd() \* 100) + 1).FormulaLocal = "=Zufallszahl()\*15+1"
'Range("A1:A" & Int(Rnd() \* 100) + 1).FormulaLocal = "=Ganzzahl(Zufallszahl()\*15+1)"
Range("A1:A100").SpecialCells(xlCellTypeFormulas).Interior.ColorIndex = 34
End Sub

Zum Testen Ihres Programms sollten Sie den Inhalt von Spalte A
variieren, indem Sie
unterschiedlich viele Zellen mit Zufallszahlen füllen und dann
jedes Mal Ihr Makro
starten, um zu sehen, ob es immer noch das richtige tut. Die
Füllung sollte aber immer
lückenlos in Zeile 1 beginnen.
Hinweis:Ihr Makro benötigt 2 Schleifen…"

Hallo Simon,

wenn es denn zwei Schleifen sein sollen:

Sub tt2()
Dim Zeile As Long, Zufall As Integer
Zufall = Int(Rnd() \* 100) + 1
For Zeile = 1 To Zufall
 Range("A" & Zeile).FormulaLocal = "=Zufallszahl()"
Next Zeile
For Zeile = 1 To 100
 If Range("A" & Zeile).Value = "" Then
 Range("A" & Zeile).Interior.ColorIndex = xlNone
 Else
 Range("A" & Zeile).Interior.ColorIndex = 3
 End If
Next Zeile
End Sub

Gruß
Reinhard

danke für die schnelle hilfe. mein bisheriger code war müll. ich habs einige male probiert, bin aber immer gescheitert und hab excel ohne speichern beendet. wir haben es so gelernt, das man schleifen immer mit „do while“ anfängt und mit „loop“ beendet. es scheint ja aber auch anders zu gehen =)
@ reinhard: unserer info-prof. erzählt sowas… aber wir vermuten auch schon, das der nicht soooo die ahnung hat. in einigen aufgaben davor stand auch schon müll drinnen.

Hallo Simon,

danke für die schnelle hilfe. mein bisheriger code war müll.

meinste, als ich mit Vba anfing wäre mein Code besser gewesen? Ist doch völlig normal.

ich habs einige male probiert, bin aber immer gescheitert und
hab excel ohne speichern beendet.

okay. Deshalb sagte ich ja, zeig mal deinen Code. Dann können ich oder andere dir hier sagen warum der Ansatz falsch ist oder wenn er richtig ist, wodran es hängt daß er nicht klappt.
Ä, ist natürlich nur ein Einzelfallangebot, soll jetzt kein Studienbegleitservice werden für lau :smile:

wir haben es so gelernt, das
man schleifen immer mit „do while“ anfängt und mit „loop“
beendet. es scheint ja aber auch anders zu gehen =)

Kann ich aus der Ferne nicht beurteilen. Vielleicht sagte der Lehrer Do While ist EINE Variante eine Schleife zu basteln und es drang nicht in alle Ohren *hihi*

@ reinhard: unserer info-prof. erzählt sowas… aber wir
vermuten auch schon, das der nicht soooo die ahnung hat. in
einigen aufgaben davor stand auch schon müll drinnen.

Vielleicht isses nur von ihm falsch formuliert.
Wenn er gerade die Do while-Formel durchnimmt, will er natürlich daß ihr nur die und alle anderen bislang gelernten Befehle benutzt.

Gruß
Reinhard

studienbegleitend soll das ganze natürlich nicht sein, aber es gut zu wissen, das man so kompetente hilfen hier findet. =)