AW: In einer Userform alle Daten von Tabelle
12.02.2010 12:55:49
Tabelle
Hallo Fatih,
hier nochmal die GetData Prozedure mit ein paar Kommentaren. Der spannende Part sind eigentlich die letzten 5 Zeilen "Bereich durchlaufen". Hier spart man sich die 56-fache Eingabe von "Me.TextBox(x) = Sheets(y).Range(z)".
wird es jetzt verständlicher?
Gruß
Christian
Private Sub GetData(intMnth As Integer, intType As Integer)
Dim i As Integer, intCol As Integer, intFirstCol As Integer
Dim lngRow As Long, wks As Worksheet
'Farbe der CommandButtons
For i = 1 To 4
Me.Controls("cmdType" & i).BackColor = IIf(i = intType, &HC0C0FF, &H8000000F)
Next
'Tabelle abhängig von intMnth
With ThisWorkbook
For i = 1 To .Worksheets.Count
If .Worksheets(i).CodeName = "tblMonth_" & Format(intMnth, "00") Then
Set wks = .Worksheets(i)
Exit For
End If
Next
End With
'Tabellenname in Label anzeigen
Me.lblMonth.Caption = wks.Name
'Startposition abhängig von intType
Select Case intType
Case 1: lngRow = 6: intFirstCol = 4 'Prämie-Laufend
Case 2: lngRow = 16: intFirstCol = 4 'Prämie-Einmal
Case 3: lngRow = 6: intFirstCol = 15 'Stückzahl-Laufend
Case 4: lngRow = 16: intFirstCol = 15 'Stückzahl-Einmal
End Select
'Bereich durchlaufen
For i = 1 To 56
intCol = intFirstCol + (i - 1) Mod 8 'Spalte
If i Mod 8 = 1 Then lngRow = lngRow + 1 'Zeile
Me.Controls("TextBox" & i) = wks.Cells(lngRow, intCol) 'TextBox füllen
Next
End Sub