suppression feuilles

  • Initiateur de la discussion Initiateur de la discussion Arctica
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Arctica

Guest
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
 
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
 
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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
410
Réponses
5
Affichages
551
Réponses
10
Affichages
633
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
544
Retour