suppression d'une feuille si

  • Initiateur de la discussion Initiateur de la discussion PHILIP
  • 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 !

PHILIP

XLDnaute Occasionnel
Bonjour à tous,

Grace à vous j'apprends mais pas encore assez pour tous résoudre
voila j'ai écris un code qui dit que si la plage k7 à l23 de la feuille Tagesleitung est vide je supprime la feuille Ruckstand znl
cela doit être primaire car cela ne fonctionne pas
Code:
If sheets(“Tagesleitung”).range(“K7:L23)=””
then Application.DisplayAlerts = False 
Worksheets("Ruckstand znl" ).Delete 
Application.DisplayAlerts = True
pourriez vous m'aider
Merci
 
Re : suppression d'une feuille si

Salut,

Tu peux essayer ca
Code:
    With Sheets("Tagesleitung").Range("K7:L23")
        If .Cells.Count = .SpecialCells(xlCellTypeBlanks).Cells.Count Then
            Application.DisplayAlerts = False
            Worksheets("Ruckstand znl").Delete
            Application.DisplayAlerts = True
        End If
    End With
 
Re : suppression d'une feuille si

Ooops, exact, je n'avais pas teste avant 😱

Si toutes les cellules sont remplis ca plante.

Corrige comment cela ca devrait etre mieux😀
Code:
    Dim Cpt As Integer
    
    With Sheets("Tagesleitung").Range("K7:L23")
        On Error Resume Next
            Cpt = .SpecialCells(xlCellTypeBlanks).Cells.Count
        On Error GoTo 0
        If .Cells.Count = Cpt Then
            Application.DisplayAlerts = False
            Worksheets("Ruckstand znl").Delete
            Application.DisplayAlerts = True
        End If
    End With
 
Dernière édition:
Re : suppression d'une feuille si

Bonjour à tous ,

dans ma requête j'ai fais une erreur (merci à Minick pour son aide)
la plage k7:l23 n'est pas vide Toutes les cellules contiennent une valeur, donc la macro de Minick fonctionne tres bien mais ne pourra pas avoir le résultat escompté vu que ma demande était basé sur des cellules vides ma demande est donc si toutes les cellules contiennent 0 alors on supprime la feuille ruckstand ou si la somme des cellules de la plages k7 L23 = o on supprime la feuille ruckstand
Pourriez vous m'aider
 
Re : suppression d'une feuille si

Bonjour PHILIP, Minick,

2 solutions, selon ce que peut contenir la plage testée :

Code:
Sub Supprime1()
Dim cel As Range
For Each cel In Sheets("Tagesleitung").Range("K7:L23")
  If cel <> 0 Then Exit Sub
Next
On Error Resume Next 'si la feuille a été supprimée
Application.DisplayAlerts = False
Sheets("Ruckstand znl").Delete
Application.DisplayAlerts = True
End Sub

Sub Supprime2()
If Application.Sum(Sheets("Tagesleitung").Range("K7:L23")) Then Exit Sub [COLOR="Red"]'si la plage ne contient que des nombres >= 0[/COLOR]
On Error Resume Next 'si la feuille a été supprimée
Application.DisplayAlerts = False
Sheets("Ruckstand znl").Delete
Application.DisplayAlerts = True
End Sub

A+
 
Re : suppression d'une feuille si

Bonjour à tous

Dans la commande que ma transmise Job 75 le code dit:
Code:
If cel <> 0 Then Exit Sub
Si je ne veux pas sortir de la commande qui a une suite mais dire par exemple
if cel <>0 then "ne rien faire", le puis je par then cancel=true?, ou y'a t'il une autre maniere car je ne connais pas les consequences de cancel=true et then nothing ne marche pas

Merci pour vos conseils
 
Re : suppression d'une feuille si

Bonjour PHILIP,

Cancel est utilisable pour certaines macro évènementielles qui l'ont comme argument.

Ici utiliser un adressage :

Code:
Sub Supprime1()
Dim cel As Range
For Each cel In Sheets("Tagesleitung").Range("K7:L23")
  If cel <> 0 Then [COLOR="Red"]GoTo 1[/COLOR]
Next
On Error Resume Next 'si la feuille a été supprimée
Application.DisplayAlerts = False
Sheets("Ruckstand znl").Delete
Application.DisplayAlerts = True
[COLOR="red"]1[/COLOR] '---suite du code---
End Sub

A+
 
Re : suppression d'une feuille si

Re,

On peut aussi utiliser une variable de test :

Code:
Sub Supprime1()
Dim cel As Range, [COLOR="Red"]flag As Boolean[/COLOR]
For Each cel In Sheets("Tagesleitung").Range("K7:L23")
  If cel <> 0 Then flag = True: Exit For
Next
If Not flag Then
  On Error Resume Next 'si la feuille a été supprimée
  Application.DisplayAlerts = False
  Sheets("Ruckstand znl").Delete
  Application.DisplayAlerts = True
End If
'---suite du code---
End Sub

A+
 
- 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

Discussions similaires

L
Réponses
9
Affichages
1 K
S
  • Résolu(e)
Réponses
6
Affichages
2 K
Serge6926
S
Retour