Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vba Schleifchen-Übung

vba Schleifchen-Übung
07.04.2017 16:32:47
silex1
Hallo,
ich bin dabei mir vba anzutun. Schleifchen sind gerade dran...;-)
Die Aufgabe lautet: in einer Tabelle (hab 10x10 Felder mir gewählt) die Zeilen mit den Spalten zu multiplizieren.
Hab schon in Heimarbeit geschafft, dass sich ab der aktiven Zelle diese Tabelle automatisch erstellt, gefüllt mit Zufallszahlen in Kopf und Spalte.
Sub tabErstellen()
Dim i As Integer
For i = 1 To 10
Worksheets("Tabelle2").Activate
ActiveCell.Offset(i, 0).Value = Int((10 * Rnd) + 1)
ActiveCell.Offset(0, i).Value = Int((10 * Rnd) + 1)
Next
'    For Z = 1 To 10
'        ActiveCell.Offset(i + 1, i).Value
'    Next
End Sub
Doch wie geht es weiter? Wie wird von der aktiven Zelle aus, die Tabelle nun befüllt?
Hab dies mal versucht (auskommentierter Bereich), jedoch denke ich wohl zu kompliziert...oder ist dies die falsche Schleifenform?
Für Denkansätze dankbar
René

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba Schleifchen-Übung
07.04.2017 16:50:10
Daniel
Hi
das braucht eine geschachtelte Schleife:
for z = 1 to 10
for s = 1 to 10
Activecell.Offset(z, s) = ActiveCell.Offset(z, 0) * ActiveCell.Offset(0, s)
Next s
Next z
sinnvoller wäre es aber, hier mit Formeln zu arbeiten und die Formeln in alle Zellen gleichzeitig zu schreiben, das ist in der Regel schneller und braucht weniger Variablen.
Außerdem hat man keine Schleife, was das Testen im Einzelstepmodus angenehmer macht:
Dim FO as string
With ActiveCell
With .Offset(1, 0).Resize(10, 1)
.FormulaR1C1 = "=RandBetween(1, 10)"
.Formula = .Value
end with
with .Offset(0, 1).Resize(1, 10)
.FormulaR1C1 = "=RandBetween(1, 10)"
.Formula = .Value
end with
FO="=RCsss*RzzzC"
FO = Replace(FO, "sss", .Column)
FO = Replace(FO, "zzz", .Row)
With .Offset(1, 0).Resize(10, 10)
.FormulaR1C1 = FO
.Formula = .Value
end with
end with

Gruß Daniel
Anzeige
AW: vba Schleifchen-Übung
07.04.2017 20:08:18
silex1
Hallo Daniel,
normal hätte ich es nur mit Formeln gemacht. *lol*
Da ich vba nun aber endlich mal in Angriff nehmen wollte und ich mich dort langsam rantasten muss, sind die Schleifchen nun erstmal dran. Ich muss da noch viel lernen! ;-)
Danke für Deine verschachtelte Schleife. Hatte also einen richtigen Ansatz, nur dass ich zwei Variablen ineinander verschachteln muss und die auch so darzustellen sind, war mir unbekannt.
Dies hilft mir aber unheimlich weiter zu verstehen, wie rum man dies angehen muss.
Vielen Dank nochmals für Deine Hilfe.
VG René

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige