Variable non définie

Bonjour,

J'ai un code, cependant j'ai un message d'erreur me disant "Variable objet ou variable de bloc With non définie" (On m'a parlé d'une boucle for each et déclarer ws mais je n'ai pas vraiment compris)

Comment cela se fait-il ?

Voici le code :

Public Sub Delete_Worksheets()

Dim ws As Worksheet

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
     End With

    Select Case ws.Name
        Case "Accueil", "Données"
            'ne rien faire
        Case Else
            'supprime la feuille
        ws.Delete
    End Select

End Sub

Merci d'avance

bonjour,

Ton ws ne représente rien.

Je suppose qu'il s'agit d'ActiveSheet dans ce cas remplace par :

Public Sub Delete_Worksheets()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
     End With
    Select Case ActiveSheet.Name
        Case "Accueil", "Données"
            'ne rien faire
        Case Else
            'supprime la feuille
        ActiveSheet.Delete
    End Select
End Sub

Sinon tu peux aussi essayer :

Public Sub Delete_Worksheets()
Dim ws As Worksheet
Set ws = ..?..
'le reste sans changement

A+

galopin01 a écrit :

bonjour,

Ton ws ne représente rien.

Je suppose qu'il s'agit d'ActiveSheet dans ce cas remplace par :

Public Sub Delete_Worksheets()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
     End With
    Select Case ActiveSheet.Name
        Case "Accueil", "Données"
            'ne rien faire
        Case Else
            'supprime la feuille
        ActiveSheet.Delete
    End Select
End Sub

Sinon tu peux aussi essayer :

Public Sub Delete_Worksheets()
Dim ws As Worksheet
Set ws = ..?..
'le reste sans changement

A+

Merci pour la réponse. En fait, il ne s'agit pas de la feuille active mais des plusieurs feuilles différentes. J'ai 5 feuilles et j'aimerais juste en supprimer 2 juste en cliquant sur un bouton supprimer (bouton auquel j'affecte la macro).

Arf !

Public Sub Delete_Worksheets()
Dim ws As Worksheet
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
     End With
For each ws in Worksheets
    Select Case ws.Name
        Case "Accueil", "Données"
            'ne rien faire
        Case Else
            'supprime la feuille
        ws.Delete
    End Select
End Sub
galopin01 a écrit :

Arf !

Public Sub Delete_Worksheets()
Dim ws As Worksheet
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
     End With
For each ws in Worksheets
    Select Case ws.Name
        Case "Accueil", "Données"
            'ne rien faire
        Case Else
            'supprime la feuille
        ws.Delete
    End Select
End Sub

Parfait merci !

Juste pour ton information il manque le Next mais ce n'est qu'un détail.

Merci à toi.

J'avais posé la question : pour qui le 4e sujet ? Lauréat : Galopin !

Mais toujours aucun fichier à l'horizon...

Bonsoir,

Désolé, je ne faisait que passer distraitement....

A=

On a tous été dans ce cas.

Salut à toi !

Bonjour,

et toujours les infos au compte-goutte, il n'a pas l'air de vouloir comprendre...

eric

Rechercher des sujets similaires à "variable definie"