Action supprimer feuille code
o-sixty-o
Messages postés
25
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerai pouvoir dire en code : pendant la période ou mon classeur est ouvert , si on supprime une feuille alor écrire x ds feuil1 . g donc placé mon code dans Worbook.activate car je ne vois pas ou le placer ailleurs..ms ça marche pas !! g testé toute sorte de chose ds worbook.activate avc les points d'arret et ça détecte rien ! comment pourrais-je faire ? c assez urgent il faut absolument que je puiss mettre ce code quelque part et qu'il soit détecté !!
merci ...
J'aimerai pouvoir dire en code : pendant la période ou mon classeur est ouvert , si on supprime une feuille alor écrire x ds feuil1 . g donc placé mon code dans Worbook.activate car je ne vois pas ou le placer ailleurs..ms ça marche pas !! g testé toute sorte de chose ds worbook.activate avc les points d'arret et ça détecte rien ! comment pourrais-je faire ? c assez urgent il faut absolument que je puiss mettre ce code quelque part et qu'il soit détecté !!
merci ...
A voir également:
- Action supprimer feuille code
- Supprimer rond bleu whatsapp - Guide
- Code ascii - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Concurrent action - Guide
- Supprimer page word - Guide
1 réponse
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
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
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
oh ben c'est futé ça ! Et tellement simple finalement, bravo :-)
A 6h du mat en plus...
Bonne journée