Bonjour à tous.
Pour une fois c'est à mon tour de poser une question.
J'ai créer une fonction de suppression qui supprime une feuille et une ligne dans lui faisant référence dans la première feuille du classeur.
Dans la première ligne de référence j'ai un bouton qui me permet d'aller directement a cette feuille que je dois donc également supprimer.
Je ne connais pas le nom du bouton puisque lui même est généré par code vba.
J'ai réussi a faire un code qui me permet bien de supprimer le bouton puis la ligne. Et qui fonctionne mais je me demande si il n'y as pas plus facile de pointer le bon bouton a supprimer.
C'est juste histoire d'optimiser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub BnSupprimer_Click() Sheets(CBPostes.Value).Visible = True Sheets(CBPostes.Value).Unprotect Sheets(CBPostes.Value).Delete Dim derniereLigne As Integer derniereLigne = Sheets(NomFeuillePrincipale).Range("A" & Rows.Count).End(xlUp).Row Dim X As Integer Dim Dico Set Dico = CreateObject("Scripting.Dictionary") For X = 5 To derniereLigne If Sheets(NomFeuillePrincipale).Range("A" & X).Value = CBPostes.Value Then Sheets(NomFeuillePrincipale).Unprotect Dim shp As Variant For Each shp In ActiveWorkbook.Sheets(NomFeuillePrincipale).Shapes If Not Dico.exist(shp.TopLeftCell.Row) Then Dico.Add shp.TopLeftCell.Row, shp.Name End If Next Sheets(NomFeuillePrincipale).Shapes(Dico.Item(X)).Delete Sheets(NomFeuillePrincipale).Rows(X).Delete Sheets(NomFeuillePrincipale).Protect Exit For End If Next End Sub![]()
Partager