Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife mit variabler Spalte....

Schleife mit variabler Spalte....
03.06.2004 23:19:33
Oliver
Hallo liebe Forumsgemeinde....
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 &gt 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 &gt 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...

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife mit variabler Spalte....
03.06.2004 23:33:45
Josef
Hallo Oliver!
Wie ist's damit?
Option Explicit

Sub test()
Dim intC As Integer
Dim intCol As Integer
Dim intCntrl As Integer
Dim lngRow As Long
lngRow = Range("G65536").End(xlUp).Row + 1
intCntrl = 1
intCol = 4
For intC = 1 To 25
Cells(lngRow, intCol) = Me.Controls("a" & intCntrl)
Cells(lngRow, intCol + 1) = Me.Controls("l" & intCntrl)
Cells(lngRow, intCol + 2) = Me.Controls("w" & intCntrl)
intCol = intCol + 6
intCntrl = intCntrl + 1
lngRow = lngRow + 1
Next
End Sub

Gruß Sepp
Anzeige
sieht schon super aus..aber...
04.06.2004 08:06:22
Oliver
Hallo Sepp,
vielen Dank für die rasche Antwort....jau, das war´s fast....also die richtigen Spalten werden jetzt angewählt...endlich...war echt schon verzweifelt... ;o)
Aber warum sind die Zeilen nun versetzt? Datensatz 1 wird in Zeile 1, Datensatz 2 in Zeile 2 usw. eingetragen.....Sollen aber alle in einer Zeile erscheinen....
Kannst Du mir noch einen Tip dazu geben?
Gruß
schon erledigt...war noch zu früh für mich ;o)
04.06.2004 08:12:20
Oliver
Hallo Sepp...
was ein Schluck Kaffee doch bewirken kann ;o) Ist ja logisch...
lngRow = lngRow + 1....so dies rausgenommen und es funzt endlich....danke danke danke ;o)
Jetzt kann ich ruhig ins WE gehen...wünsch Dir ein schönes solches ;o)
Gruß
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige