Problème dans le rappel d'une variable

Fabrice -  
 Fabrice -
Bonjour,

Voila je suis en train de faire une macro qui copie des éléments d'une feuille, sur une autre feuille. Problème il y a des cases à cocher que je veux supprimer par la même occasion dans la macro. Bon j'ai écrit ca:

Sub Macro1()
Dim i As Integer
For i = 1 To 300
ActiveSheet.Shapes("Check Box" & i &).Select 'apparemment il y a un problème ici dans l'appel de la variable'
Selection.Delete
Next i

End Sub


En gros j'arrive pas à trouver l'écriture pour rappeler ma variable i ... Avec vous une idée ? une solution ? :p

Merci

2 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Cela devrait faire l'affaire

Sub Macro1()
Dim i As Integer
On Error GoTo Fin 'si le nombre d'objet a enlever est inférieur a la valeur maxi de i
For i = 1 To 300
ActiveSheet.Shapes("CheckBox" & i).Select
Selection.Delete
Next i
Fin:
End Sub

Bonne suite
0
Fabrice
 
Merci pour cette réponse rapide,


Je sais pas pour quelle raison mais l'expression: ActiveSheet.Shapes("CheckBox" & i).Select pose toujours problème, et le fait de mettre la commande: On Error GoTo Fin renvoie immédiatement le programme à sa fin et la macro ne fait rien...

En fait, sur ma feuille, il y a beaucoup moins de 300 "check box". Il s'agit d'intégrer ce petit programme dans un programme plus gros qui copie certaines lignes d'une page A sur une page B, et donc suprimer les check box de la page B dont la dénomination peut aller jusqu'à Checkbox 299 ... mais il n'y en a pas autant. il pourra par exemple y avoir la checkbox239 mais pas de checkbox238 ... Peut être que au final il n'y aura à supprimer que 20 ou 30 checkbox, mais il faut balayer toutes les possibilités

J'avais pensé à inverser la ligne Fin: et Next i au cas où s'il y a erreur la boucle continue sur le prochain i mais y a toujours cette erreur dans la rédaction de la macro

Après peut être existe t il une commande qui sélectionne toutes les check box de la feuille de calcul et qui les supprime, ou une autre méthode pour arriver à ce résultat, mais je ne le connais pas
0