Range kopieren (nur Werte nicht Formeln) & Kontrollkästchen

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Lightsource.

    Range kopieren (nur Werte nicht Formeln) & Kontrollkästchen

    Hallo habe 2 Probleme in VBA (Excel 2007)

    -will per Befehl einen Bereich in einen anderen gleichgrossen kopieren:
    Worksheets("Tab1").Range("F9:AD11").Copy Worksheets("Tab2").Range("F9:AD11")

    Das klappt, aber leider kopiert er auch die Formeln in den Zellen von Tab1 in die Zielzellen von Tab2, ich will nur die Werte kopieren.

    -Habe 20 Kontrollkästchen (Forms) (Kontrollkästchen 30-50) und will nun per VBA Werte in eine Zelle kopieren wenn das jeweilige Kontroll kästchen vom Benutzer gecheckt wird. Kann ich dafür eine Schleife verwenden? (Vorgabe ist es die Forms und nicht die ActiveX Kontrollkästchen zu benutzen)

    Vielen Dank

    Visual Basic-Quellcode

    1. Worksheets("Tabelle1").Range("C10:F25").Copy
    2. Worksheets("Tabelle2").Range("C10").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    3. False, Transpose:=False


    Du kannst durch die Kontrollkästchen eine Schleife bilden.

    Visual Basic-Quellcode

    1. Dim c As Control
    2. Dim name As String
    3. Dim nummer As Integer
    4. Dim a As Variant
    5. Dim wert As Variant
    6. ' Tabelle der Positionen
    7. a = Array("A1", "B1", "C1", "D1", "A2", "A3", "A4", "C9", "D10", "F10", "G10")
    8. ' Tabelle der einzusetzenden Werte
    9. wert = Array(10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
    10. ' Durch alle Controls auf dem Form
    11. For Each c In UserForm1.Controls
    12. ' Falls es eine CheckBox ist
    13. If Left(c.name, 8) = "CheckBox" Then
    14. ' Falls die CB angewählt ist
    15. If c.Object.Value = True Then
    16. ' Welche Nummer steht im Namen?
    17. nummer = CInt(Replace(c.name, "CheckBox", "")) - 30
    18. ' Daten in die Tabelle schreiben
    19. Worksheets("Tabelle1").Range(a(nummer)).Value = nummer
    20. End If
    21. End If
    22. Next
    23. End Sub