suppression feuilles

Arctica

XLDnaute Nouveau
Bonjour à tous ,

j'ai une macro qui a un moment donné ajoute des feuilles au classeur. Elles sont renommées
ce que je voudrais c'est supprimer les feuilles si la cellule A 5 est vide .
J'ai un code trouvé sur le net mais qui ne marche pas pouvez vous m'aider ?


Sub supprimerFeuillesVides(Wb As Workbook)
Dim Ws As Worksheet

Application.ScreenUpdating = False

For Each Ws In Wb.Worksheets
If Ws.UsedRange.Cells.Address = "$A$5" And _
IsEmpty(Ws.Range("A5")) And Ws.Shapes.Count = 0 Then

Application.DisplayAlerts = False
If Wb.Worksheets.Count > 1 Then Ws.Delete
Application.DisplayAlerts = True

End If
Next Ws

Application.ScreenUpdating = True

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : suppression feuilles

Bonjour ,

Voici modifié, avec une routine test pour pouvoir passer les paramètres à supprimerFeuillesVides

Code:
Sub supprimerFeuillesVides(Wb As Workbook)
 Dim Ws As Worksheet

 Application.ScreenUpdating = False

 For Each Ws In Wb.Worksheets
 If IsEmpty(Ws.Range("A5")) Then
   Application.DisplayAlerts = False
    If Wb.Worksheets.Count > 1 Then Ws.Delete
   Application.DisplayAlerts = True
 End If
 Next Ws

 Application.ScreenUpdating = True

 End Sub
Sub test()
supprimerFeuillesVides ThisWorkbook
End Sub
 

jep77

XLDnaute Nouveau
Re : suppression feuilles

Bonjour,
Essaie ainsi :
Code:
Option Explicit
Public Sub SupprimerFeuillesVides_1()
Dim wb As Workbook, ws As Worksheet
    Application.ScreenUpdating = False
    Set wb = ActiveWorkbook
    For Each ws In wb.Worksheets
        With ws
            If .UsedRange.Cells.Address = "$A$5" And IsEmpty(.Range("A5")) And .Shapes.Count = 0 Then
                Application.DisplayAlerts = False
                If wb.Worksheets.Count > 1 Then ws.Delete
                Application.DisplayAlerts = True
            End If
        End With
    Next ws
    Set wb = Nothing
End Sub
 

Arctica

XLDnaute Nouveau
Re : suppression feuilles

Merci pour vos réponses,

Malheureusement si le code ne me fait pas d'erreur, il ne me supprime pas les feuilles visées
Voici un morceau de mon code qui ajoute et renomme les feuilles


Dim ListSh() As Variant
ListSh = Array("DKLU-K", "CKL-CZ", "ELYO1", "ELYO2", "ELYO3", "AM-AT", "DM-D-0", "DM-D-1", "DM-D-2", "DM-D-3", "DM-D-4", "DM-D-5", "DM-D-6", "DM-D-7", "DM-D-8", "DM-D-9", _
"PM-PL2", "SPSE", "NTNO")
For i = LBound(ListSh) To UBound(ListSh)
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = ListSh(i)
Next
Sheets("Feuil1").Name = "originale"
Sheets("originale").Activate
 

camarchepas

XLDnaute Barbatruc
Re : suppression feuilles

Bonjour ,

Pour le coup ton code ne sert pas à grand chose pour nous faire avancer .

c'est supprimer les feuilles si la cellule A 5 est vide .

hors avec le code proposé plus haut et implimenté correctement , le résultats est obtenu .

Dans le classeur ci joint c'est la feuil 5 qui en fera les frais .
 

Pièces jointes

  • Suppr1.xlsm
    17 KB · Affichages: 28

Discussions similaires

Réponses
7
Affichages
334

Statistiques des forums

Discussions
312 323
Messages
2 087 301
Membres
103 512
dernier inscrit
sisi235