Action supprimer feuille code
Fermé
o-sixty-o
Messages postés
25
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
6 novembre 2008
-
6 nov. 2008 à 14:09
eriiic Messages postés 24513 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 mars 2023 - 7 nov. 2008 à 07:37
eriiic Messages postés 24513 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 mars 2023 - 7 nov. 2008 à 07:37
A voir également:
- Action supprimer feuille code
- Supprimer compte instagram - Guide
- Supprimer une page word - Guide
- Supprimer compte facebook - Guide
- Supprimer code pin windows 11 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
1 réponse
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
240
6 nov. 2008 à 16:17
6 nov. 2008 à 16:17
bonjour
une autre option, mais il faut pour savoir si la feuille existe encore, tester son nom avec toutes les autres feuilles
à placer dans ThisWorkBook
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
quand tu supprimes une feuille, elle se desactive donc lance automatiquement cette precedure
une autre option, mais il faut pour savoir si la feuille existe encore, tester son nom avec toutes les autres feuilles
à placer dans ThisWorkBook
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
quand tu supprimes une feuille, elle se desactive donc lance automatiquement cette precedure
6 nov. 2008 à 21:50
oui, mais l'activation d'une autre feuille déclenche cet évènement...
Comme il n'y a pas d'évènement 'suppression de feuille' à part noter celle qui sont existantes à l'ouverture et pointer ensuite je ne vois pas.
Exemple : Classeur1.xls
Option Explicit Dim ListeFeuilles(200) As String, nbFeuilles As Long Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Sh As Worksheet, i As Long, j As Long, k As Long, ok As Boolean For i = 1 To nbFeuilles ok = False For j = 1 To Sheets.Count If ListeFeuilles(i) = Sheets(j).Name Then ok = True Exit For End If Next j If Not ok Then k = k + 1 Cells(k, 1) = ListeFeuilles(i) End If Next i If k > 0 Then Cells(k + 1, 1) = "" End Sub Private Sub Workbook_Open() Dim Sh As Worksheet, i As Long For i = 1 To Sheets.Count ListeFeuilles(i) = Sheets(i).Name Next i nbFeuilles = i - 1 End Sub Sub Lister() Call Workbook_BeforeClose(False) End SubA la fermeture (ou clic sur un bouton) les feuilles ayant été supprimées sont listées en colonne A
(les feuilles crées et supprimées lors de la même session ne sont pas prises en compte)
eric
7 nov. 2008 à 06:06
Je sais bien Eric, mais rien n'empêche de tricher lol
aller : en 4 lignes, sans compter les sub et end sub, sans fermer ni ouvrir le classeur
immédiatement apres la destruction de la feuille
code à placer dans ThisWorkBook
Public feuil As String, fc As Integer Private Sub Workbook_SheetActivate(ByVal sh As Object) If ThisWorkbook.Sheets.Count <> fc Then Workbook_SheetDeleted feuil End Sub Private Sub Workbook_SheetDeactivate(ByVal sh As Object) fc = ThisWorkbook.Sheets.Count feuil = sh.Name End Sub Private Sub Workbook_SheetDeleted(ByVal sh As String) MsgBox "Feuille : " & sh & " Détuite" End Subfinalement, faire une interruption sur une suppression de feuille est faisable...
amicalement
7 nov. 2008 à 07:37
oh ben c'est futé ça ! Et tellement simple finalement, bravo :-)
A 6h du mat en plus...
Bonne journée