OVH Cloud OVH Cloud

Supprimer une ligne et sa case à cocher

2 réponses
Avatar
FilipH
Bonjour,

J'ai une liste dans excel avec pour chaque ligne de cette liste une case à cocher dans la colonne A
Chacune des case a cocher est liée a une cellule de la colonne A.
Ex :
Ligne 3 la case a cocher est liée à la cellule A3
Ligne 4 la case a cocher est liée à la cellule A4 etc etc

JE souhaite par code vba supprimer la ligne sur laquelle je me trouve et en même temps la case à cocher présente sur cette ligne

pour supprimer la ligne, j'utilise :
activecell.row.delete
mais je n'arrive pas a supprimer la case à cocher .
j'aimerai le faire en faisant référence à la cellule liée. (Linkedcell) je crois)
quelle syntaxe dois je utiliser pour dire a excel de supprimer la case à cocher qui est liée a la cellule A3 par exemple ou a la ligne de ma cellule active (Je pensai utiliser Cells(activecell.row,1) pour identifier la cellule liée.
Je n'arrive pas à le traduire
Quelqu'un aurait il une solution ?

2 réponses

Avatar
MichD
Bonjour,
Comme tu ne l'as pas mentionné dans ta question, l'exemple de code
suivant s'adresse à des "Checkbox" émanant de la boîte d'outils "contrôle".
Le code devrait placer dans le module de la feuille.
'---------------------------------------------
Sub test()
Dim Ole As OLEObject, X As Long
'Nom onglet de la feuille à adapter
With Worksheets("Feuil1")
X = ActiveCell.Row
For Each Ole In Feuil1.OLEObjects
If TypeOf Ole.Object Is MSForms.CheckBox Then
If Range(Ole.LinkedCell).Row = X Then
Ole.Delete
ActiveCell.EntireRow.Delete xlUp
End If
End If
Next
End With
End Sub
'---------------------------------------------
MichD
Avatar
MichD
bonjour,
Place ce code dans la feuille où tu veux supprimer ces objets.
Ce code fait référence à des checkbox émanant de la boîte d'outils
"contrôle".
Sub test()
Dim Ole As OLEObject, X As Long
'Nom onglet de la feuille à adapter
With Worksheets("Feuil1")
X = ActiveCell.Row
For Each Ole In Feuil1.OLEObjects
If TypeOf Ole.Object Is MSForms.CheckBox Then
If Range(Ole.LinkedCell).Row = X Then
Ole.Delete
ActiveCell.EntireRow.Delete xlUp
End If
End If
Next
End With
End Sub
MichD