Supprimer shapes avec boucle VBA

Bonjour,

Je cherche à supprimer des shapes sur plusieurs feuilles EXCEL avec la condition suivante: que le nom de la feuille commence par FU.

J'ai écrit le code suivant mais il ne se passe rien quand je l'exécute:

Sub efface_bouton()
 Dim img As Shape, k as integer, i as integer

K = sheets.count

for i = 1 to k
If Left(Activesheet.Name, 2) = "FU" Then
Sheets(i).Activate 
For Each img In ActiveSheet.Shapes
img.Delete

Next

End if

Next i

End Sub

Auriez-vous une idée svp ?

Merci à vous

JB

Bonjour,

Tu mets une condition, puis tu demandes d'activer la feuille(i).

Essaie d'activer la feuille d'abord et de voir ensuite si la condition est remplie. En l'état actuel des choses, tu ne changes pas de feuille.

Bonsoir 21Formatic,

Merci pour la solution, ça fonctionne :)

Par contre, maintenant j'aimerais copier la valeur de ma cellule A1 de ma Feuil1 dans toutes les cellules A1 des feuilles qui commencent par FU.

J'arrive bien à copier mais je n'arrive pas à coller, les cellules A1 des feuilles FU.. restent vides. Auriez-vous une piste svp ?

Sub copie_bouton()
 Dim img As Shape, k as integer, i as integer

K = sheets.count

Sheets("Feuil1").Range("A1").Copy

for i = 1 to k
Sheets(i).Activate 
If Left(Activesheet.Name, 2) = "FU" Then
Range("A1").PasteSpecial xlPasteValues
Range("A1").PasteSpecial xlPasteFormats

End if

Next i

End Sub

Merci à vous.

JB

Bonsoir,

21Formatic, bonsoir,

Je vous propose deux boucles en une :

Sub InitLRD()
    Dim I As Integer
    For I = 1 To Worksheets.Count
        If Left(Sheets(I).Name, 2) = "FU" Then
            On Error Resume Next ' c'est mieux avec des travaux sur les shapes
                ' boucle pour suppression des shapes
                For Each sh In Sheets(I).Shapes
                    sh.Delete
                Next sh
            On Error GoTo 0
            ' ajout de la cellule A1
            ActiveSheet.Range("A1").Copy Destination:=Sheets(I).Range("A1")
        End If
    Next I
End Sub

Le fichier qui va avec :

regardez le bien avant de lancer le bouton "Allons-y !" de la première feuille.

@ bientôt

LouReeD

Bonsoir LouReeD,

Merci pour votre contribution, ça fonctionne à merveille.

Merci aussi à 21Formatic qui m'a aidé sur ma problématique.

Bonne soirée à vous deux.

JB

bonsoir, delete shapes sans boucle avec

Sub Sans_Boucle()
     ActiveSheet.Shapes.SelectAll
     Selection.Delete
End Sub

Bonsoir BsAlv !

Votre traducteur doit être programmé à l'envers, non ? Le titre c'est "avec boucle" !
Mais vous avez raison cela m'a échappé !

Au plaisir de vous lire sur d'autre posts

@ bientôt

LouReeD

Rechercher des sujets similaires à "supprimer shapes boucle vba"