Ich habe einen Bereich als Tabelle formatiert. Nun wird bei jedem Hinzufügen einer neuen Zeile Automatisch so eine Checkbox hinzugefügt:
i = 31
Do While i < 900
If Worksheets("Eingabeseite").Cells(i, 1) = Empty Then
Worksheets("Eingabeseite").OLEObjects.Add "Forms.CheckBox.1", Left:=Cells(i, 17).Left, Top:=Cells(i, 17).Top, Width:=Cells(i, 17).Width, Height:=Cells(i, 17).Height
Exit Do
Else
i = i + 1
End If
Loop
Jener Code funktioniert und fügt mir bei jedem Klick auf eine Schaltfläche sowohl eine neue Zeile als auch eine neue Ckeckboox in korrekt nummerierter Reihenfolge hinzu. Aber wenn ich nun ein anderes Makro starte, dass sowohl die Zeile in der die Checkbox aktiviert ist, als auch die jeweilige Checkbox löschen soll bin ich auf ein Problem gestoßen.
Mein Ansatz war Zeile wo checkbox aktiviert ist löschen, dann alle Checkboxes entfernen, anschließend neue Checkboxen hinzufügen zu jeder verbleibenden Zeile.
Funktioniert grundsätzlich, aber Checkbox 1 und 2 sind nach dem 2. Makro immer vertauscht alle anderen Stimmen ich sehe nicht warum bitte um Hilfe. Lösungen.
Danke
Code des Makros 2:
Sub Ausgewaehlte_Zeilen_Löschen()
i = 31
n = 1
Do While i < 900
If Worksheets("Eingabeseite").Cells(i, 1) = Empty Then
Exit Do
Else
If Worksheets("Eingabeseite").OLEObjects("CheckBox" & n).Object.Value = True Then
If i = 31 And Worksheets("Eingabeseite").Cells(i + 1, 1) = Empty Then
Worksheets("Eingabeseite").Range("A31") = Clear
Worksheets("Eingabeseite").Range("B31") = Clear
Worksheets("Eingabeseite").Range("C31") = Clear
Worksheets("Eingabeseite").Range("D31") = Clear
Worksheets("Eingabeseite").Range("E31") = Clear
Worksheets("Eingabeseite").Range("F31") = Clear
Worksheets("Eingabeseite").Range("G31") = Clear
Worksheets("Eingabeseite").Range("H31") = Clear
Worksheets("Eingabeseite").Range("G31") = Clear
Worksheets("Eingabeseite").Range("I31") = Clear
Worksheets("Eingabeseite").Range("J31") = Clear
Worksheets("Eingabeseite").Range("K31") = Clear
Worksheets("Eingabeseite").Range("L31") = Clear
Worksheets("Eingabeseite").Range("M31") = Clear
Worksheets("Eingabeseite").Range("N31") = Clear
Worksheets("Eingabeseite").Range("O31") = Clear
Worksheets("Eingabeseite").Range("P31") = Clear
Worksheets("Eingabeseite").Range("Q31") = Clear
Else
Worksheets("Eingabeseite").Range(Worksheets("Eingabeseite").Cells(i, 1), Worksheets("Eingabeseite").Cells(i, 16)).Delete
End If
For Each OLEObject In Worksheets("Eingabeseite").OLEObjects
If InStr(OLEObject.progID, "CheckBox") Then
OLEObject.Delete
End If
Next
j = 31
Do While j < 900
If Worksheets("Eingabeseite").Cells(j, 1) = Empty Then
Exit Do
Else
If Worksheets("Eingabeseite").Cells(j, 1) = "Windrad" Then
Worksheets("Eingabeseite").OLEObjects.Add "Forms.CheckBox.1", Left:=Cells(j + 1, 17).Left, Top:=Cells(j + 1, 17).Top, Width:=Cells(j + 1, 17).Width, Height:=Cells(j + 1, 17).Height
Else
Worksheets("Eingabeseite").OLEObjects.Add "Forms.CheckBox.1", Left:=Cells(j, 17).Left, Top:=Cells(j, 17).Top, Width:=Cells(j, 17).Width, Height:=Cells(j, 17).Height
End If
j = j + 1
End If
Loop
Exit Do
End If
i = i + 1
n = n + 1
End If
Loop
End Sub