AW: Nachtrag
29.09.2012 09:35:26
Hans
Hallo Steve,
wie komme ich nur drauf, dass Deine Tabelle ganz anders aussieht, als ich Deine Beschreibung verstanden habe? Das Problem und der Aufwand liegt darin, ein entsprechendes Szenario aufzubauen.
Hier die Beispielarbeitsmappe:
https://www.herber.de/bbs/user/81932.xls
Hier das Kernstück des UserForm-Codes:
Private Sub cmdOK_Click()
Dim wks As Worksheet, wksTarget As Worksheet
Dim iCol As Integer, iColA As Integer, iRow As Integer, iRowT As Integer
Set wks = ActiveSheet
For Each wksTarget In Worksheets
If wksTarget.Name = "Blatt2" Then
Application.DisplayAlerts = False
wksTarget.Delete
Application.DisplayAlerts = True
End If
Next wksTarget
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Blatt2"
For iCol = 4 To wks.Cells(2, wks.Columns.Count).End(xlToLeft).Column
If wks.Cells(2, iCol).Value = CInt(cboYear.Text) And _
wks.Columns(iCol).Hidden = False Then
For iColA = iCol - 3 To iCol + 2
Cells(1, iColA).Value = wks.Cells(2, iCol).Value
iRowT = 2
For iRow = 3 To wks.Cells(Rows.Count, iCol).End(xlUp).Row
If wks.Rows(iRow).Hidden = False Then
Cells(iRowT, iColA).Value = wks.Cells(iRow, iCol).Value
iRowT = iRowT + 1
End If
Next iRow
Next iColA
End If
Next iCol
End Sub
Gruss hans