Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

On error... Mais que se passe-t-il ?

3 réponses
Avatar
Michael
Rerebonjour à tous !

Voici mon code qui me pose un bon probleme :

sub supprfeuilles

On Error GoTo 221
Sheets("4+2").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("4+2").Delete

221:
On Error GoTo 222
Sheets("4CS").Select
If Range("B4").Value = "" Then Sheets("4CS").Delete

222:
On Error GoTo 223
Sheets("10+2").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("10+2").Delete

223:
On Error GoTo 224
Sheets("17+3").Select
If Range("B4").Value = "" Then Sheets("17+3").Delete

224:
On Error GoTo 225
Sheets("20CS").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("20CS").Delete

Mon problème : lorsque la feuille 4+2 n'existe pas, là ok la macro
poursuit sa route en 221 et en arrivant à la 17+3 (qui n'existe pas
non plus) là, erreur : l'indice n'appartient pas a la selection
alors qu'il devrait aller en 224 non ?

Merci à celui ou celle qui pourra m'aider !

3 réponses

Avatar
michdenis
Bonjour Michael,

C'est une façon assez singulière de vouloir programmer par la gestion d'erreur !

Si tu expliquais ce que tu veux faire, il y a probablement des alternatives à ce que je présente !

Voici une façon de faire si tu veux gérer la procédure par une gestion d'erreur. Évidemment, j'ai seulement initié le déroulement de
la procédure, tu devrais la poursuivre pour la totalité de tes feuilles.

Pas tester...
'--------------------------------------
Sub supprfeuilles()

On Error Resume Next
Sheets("4+2").Select
If Err = 0 Then
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("4+2").Delete
Else
Err = 0
Sheets("4CS").Select
If Err = 0 Then
If Range("B4").Value = "" Then Sheets("4CS").Delete
Else
Err = 0
Sheets("10+2").Select
If Err = 0 Then
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("10+2").Delete
Else
Err = 0
End If
End If
End If

End Sub
'--------------------------------------


Salutations!



"Michael" a écrit dans le message de news:

Rerebonjour à tous !

Voici mon code qui me pose un bon probleme :

sub supprfeuilles

On Error GoTo 221
Sheets("4+2").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("4+2").Delete

221:
On Error GoTo 222
Sheets("4CS").Select
If Range("B4").Value = "" Then Sheets("4CS").Delete

222:
On Error GoTo 223
Sheets("10+2").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("10+2").Delete

223:
On Error GoTo 224
Sheets("17+3").Select
If Range("B4").Value = "" Then Sheets("17+3").Delete

224:
On Error GoTo 225
Sheets("20CS").Select
If Range("B53").Value = "" Then supprdeuxiemefeuille
If Range("B4").Value = "" Then Sheets("20CS").Delete

Mon problème : lorsque la feuille 4+2 n'existe pas, là ok la macro
poursuit sa route en 221 et en arrivant à la 17+3 (qui n'existe pas
non plus) là, erreur : l'indice n'appartient pas a la selection
alors qu'il devrait aller en 224 non ?

Merci à celui ou celle qui pourra m'aider !
Avatar
Michael
Merci michdenis ! ça fonctionne à merveille apres nombreux essais

Bonne soirée !
Avatar
Philippe Noss
Bonsoir
Je viens un fois que la solution semble etre trouvée
mais il me semble qu'une macro du type de celle ci dessous aurait
fonctionnée. Bon, je ne sais pas ce que fait supprdeuxiemefeuille.
mais Comme je suis paresseux, j'aime bien limiter le code ...

Sub testsup()
Application.DisplayAlerts = False

On Error Resume Next
With Sheets("4+2")
If Sheets("4+2").Range("B53").Value = "" Then supprdeuxiemefeuille
If .Range("B4").Value = "" Then .Delete
End With
With Sheets("4+ccc")
'If .Range("B53").Value = "" Then supprdeuxiemefeuille
If .Range("B4").Value = "" Then .Delete
End With
With Sheets("2+45")
If .Range("B53").Value = "" Then supprdeuxiemefeuille
If .Range("B4").Value = "" Then .Delete
End With
'etc , etc

Application.DisplayAlerts = True
End Sub

Philippe N
http://nossphil.perso.cegetel.net/exoutils.html