wenn in zelle B7:B29 wert, dann übergabe
02.09.2013 19:18:54
Christian
Benutze folgenden Code:
Code:
Option Explicit
Private Sub CommandButton12_Click()
Dim lgRow As Long, Zeile As Long
Dim Zelle As Range
Dim wks As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = Sheets("Kalk. Aw")
Set wks = Workbooks("01 Kalkulation Menue02.xlsm").Sheets("Vorlagen")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
For Zeile = 7 To 29
If Cells(Zeile, 2) "" Then
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)
End If
Next
End With
End Sub
nun habe ich folgendes Problem:
Es wird leider immer nur die letzte zeile welche einen wert hat in die externe Tabelle (wks) übertragen.
Nun sollte es so sein:
1. Schritt:
wenn erste zelle spalte 2 zeile 7 einen wert hat dann sollen folgende Werte in die Tabelle (wks) übertragen werden
Code:
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)
2. Schritt:
dann weiter zur zweiten (Zelle spalte 2 zeile 8) wenn diese einen wert hat dann sollen sich wieder die selben Werte in Tabelle (wks) übertragen jedoch diese Werte die eine Zelle (8) darunter liegen
Code:
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)
3. Schritt:
dann weiter zur dritten zelle Spalte 2 Zeile 8 usw. bis zelle Spalt 2 Zeile 29 erreicht ist dann ende!
In Tabelle (wks) tragen sich untereinander die Zeilen mit den gewünschten Werten ein welche in Spalte 2 Zeile 7 bis 29 werte enthalten. Sollte z.B die Zelle in zeile 10 leer sein wird diese nicht an die Tabelle (wks) übertragen!
Vielen Dank für die Hilfe
mfg chris