AW: Daten in anderes Tabellenblatt kopieren
25.02.2019 12:28:56
Daniel
HI
da ich mal davon ausgehe, dass das bei Klick auf die Checkboxen passieren soll, ggf so:
1. kopiere diesen Code in ein allgemeines Modul
2. weise jeder Checkbox über das Kontextmenü dieses Makro zu.
Sub BeiKlick()
Dim shpe As Shape
Dim txt As String
Dim WasTun As String
Dim Zellen As Range
Dim Ziel As Range
With ActiveSheet.Shapes(Application.Caller).OLEFormat.Object
txt = .Caption
WasTun = IIf(.Value = 1, "Hinzu", "Löschen")
End With
Select Case WasTun
Case "Hinzu"
Set Zellen = Sheets("BOM").Columns(2).SpecialCells(xlCellTypeConstants, 16)
Set Ziel = Sheets("Result").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Zellen.Offset(0, -1).Copy Ziel
Zellen.Offset(0, 1).Copy Ziel.Offset(0, 1)
Ziel.Offset(0, 1).Resize(Zellen.Count).Replace "-01", "-" & txt, xlPart
Case "Löschen"
With Sheets("Result").Columns(2)
.Replace "*-" & txt, True, xlWhole
If WorksheetFunction.CountIf(.Cells, True) Then
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
End If
End With
End Select
End Sub
das Makro erkennt automatisch die angeklickte Checkbox (sofern sie verknüpft ist) und liest deren Text und Wert aus)
Code ist passend für die Beispieldatei, dh mit Fehlerwert als Konstante.
Gruß Daniel