Schleife mit variabler Spalte....
03.06.2004 23:19:33
Oliver
irgendwie habe ich gerad ein Brett vorm Kopf und komme nicht weiter.
Möchte per VBA erreichen, dass die Inhalte von 25 Datensätzen a´6 Textfeldern aus einer UF in ein Tabelle eingetragen werden. Nun sieht mein bisheriger Versuch so aus:
'Datensatz 1 = cb1 und so weiter
If cb1.Value = True Then
Range("g65536").End(xlUp).Offset(1, 0).Value = CSng(gesamt1)
Range("h65536").End(xlUp).Offset(1, 0).Value = CSng(r1)
Range("i65536").End(xlUp).Offset(1, 0).Value = CSng(n1)
If thema.Value > 2 Then~f~
Range("d65536").End(xlUp).Offset(1, 0).Value = CSng(a1)
Range("e65536").End(xlUp).Offset(1, 0).Value = CSng(l1)
Range("f65536").End(xlUp).Offset(1, 0).Value = CSng(w1)
Else
Range("d65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("e65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("f65536").End(xlUp).Offset(1, 0).Value = "ng"
End If
Else
Range("d65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("e65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("f65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("g65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("h65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("i65536").End(xlUp).Offset(1, 0).Value = "ng"
End If
If cb2.Value = True Then
Range("m65536").End(xlUp).Offset(1, 0).Value = CSng(gesamt2)
Range("n65536").End(xlUp).Offset(1, 0).Value = CSng(r2)
Range("o65536").End(xlUp).Offset(1, 0).Value = CSng(n2)
~f~If thema.Value > 2 Then
Range("j65536").End(xlUp).Offset(1, 0).Value = CSng(a2)
Range("k65536").End(xlUp).Offset(1, 0).Value = CSng(l2)
Range("l65536").End(xlUp).Offset(1, 0).Value = CSng(w2)
Else
Range("j65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("k65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("l65536").End(xlUp).Offset(1, 0).Value = "ng"
End If
Else
Range("j65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("k65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("l65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("m65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("n65536").End(xlUp).Offset(1, 0).Value = "ng"
Range("o65536").End(xlUp).Offset(1, 0).Value = "ng"
End If
und so weiter..bis die 25 Datensätze abgefragt wurden.
Ich bin mir hundertprozentig sicher, dass das auch über eine Schleife geht, aber irgendwie steh ich da gedanklich auf dem Schlauch. Mit Cells & Co ist mir klar, mein Problem besteht darin VBA begreiflich zu machen, dass er beim ersten Datensatz (cb1) in der Spalte D anfangen soll und dort den Wert aus "a" eintragen soll und von da an jeweils den "a" - Wert der einzelnen Datensätze in sechser Schritten spaltenmäßig weitergehen soll usw...genauso mit den Werten "l". Aus dem Datensatz "cb1" in Spalte "E" und dann die restlichen 24 in sechser Schritten weiter...usw. usw.
Mein Ansatz war:
Dim a as integer
Dim b as integer
dim c as integer
For a = 1 to 25
b = b + 4
c = c + 1
cells(65536, b ).End(xlUp).Offset(1, 0).Value = me.controls("a" & c)
cells(65536, b + 1 ).End(xlUp).Offset(1, 0).Value = me.controls("l" & c)
cells(65536, b + 2 ).End(xlUp).Offset(1, 0).Value = me.controls("w" & c)
....usw.
Das haut aber leider gar nicht...dann fängt er zwar in der richtigen Spalte an, aber geht dann ja nur in 4er Schritten voran...nehme ich aber "+6" beginnt er erst in der Spalte "F"....hab echt ein Brett vorm Kopf, Lösung garantiert ganz simpel aber ich komme nicht darauf.
Wer kann mir helfen?
Wäre supernett...
Gruss...