VBA - suppression des checkboxes d'une seule colonne

Bonjour,

J'ai un fichier Excel sur lequel j'insère avec une macro plusieurs CheckBox sur différentes colonnes (A,B,C,D..)

Dans certains cas je souhaite supprimer toutes les CheckBox de une seule colonne. Je ne peux pas utiliser le nom de mes checkbox pour les supprimer car leur nombre n'est pas constant.

Voici le code qui fonctionne pour mettre les checkboxs

Sub mettrecheckbox()
Dim i As Integer
Dim h As Integer

i = InputBox("Combien de checkbox par colonne?")          'nombre de checkbox par colonne
h = InputBox("Combien de colonne?")                       'nombre de colonne
k = 1
j = 1

While j <= h
    While k <= i

            ActiveSheet.CheckBoxes.Add(66 * j, 142.5 + 14.25 * k, 24, 17.25).Select
            With Selection
                .Text = ""
                .Value = xlOff
                .LinkedCell = "Feuil2!A" & k

                .Display3DShading = False
            End With

        k = k + 1

    Wend
    j = j + 1
    k = 1
Wend

End Sub

Et le code posant probleme, je souhaite supprimer les checkbox de la colonne B mais rien à faire, je bloque

Sub supcheckbox()

n = 1
While n < 1000

    ActiveSheet.CheckBoxes.Delete(66, 142.5 + 14.25 * n, 24, 17.25).Select      'supprimer les checkbox de la colonne B

    n = n + 1

Wend
End Sub

Salut le Forum

Comme ceci

Sub supcheckbox()

    Dim shp As Shape

    For Each shp In ThisWorkbook.Sheets(1).Shapes
        If shp.Type = 8 Then
            If shp.Left > Range("B1").Left And shp.Left < Range("C1").Left Then
                shp.Delete
            End If
        End If
    Next shp
End Sub

Ou si on connait la valeur de la colonne

Sub supcheckbox()

    Dim shp As Shape

    For Each shp In ThisWorkbook.Sheets(1).Shapes
        If shp.Type = 8 Then
            If shp.Left = 66 Then
                shp.Delete
            End If
        End If
    Next shp
End Sub

Mytå

Salut myta!

Je te remercie c'est exactement ce que je voulais !

ca fonctionne parfaitement dans mon fichier

merci beaucoup

Bonjour,

Tant qu'on y est une 3ème méthode :

If shp.TopLeftCell.Column = 3 Then 'si le coin supérieur gauche est dans la colonne C

(dans le code de myta)

eric

Rechercher des sujets similaires à "vba suppression checkboxes seule colonne"