Tester si la feuille existe

fred2705

XLDnaute Junior
Bonjour,

ce code ci dessous me permet de mettre une alerte si il y a eut une modification sur la feuil1 ou feuil8 avant de sauvegarder

Mais se code ne fonctionne plus si je supprime la feuil8! ce qui est parfois le cas.

Est-il possible de tester si la feuille existe avant ? ou avez vous une autre solution?

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      
If Feuil1.Range("V643") <> Feuil1.Range("O639") Then
         Cancel = True
         MsgBox "Les prix ont changés! Vous devez générer un PDF avant de sauvegarder"
     End If
 
If Feuil8.Range("V643") <> Feuil8.Range("O639") Then
         Cancel = True
         MsgBox "Les prix ont changés! Vous devez générer un PDF avant de sauvegarder"
     End If
      
End Sub


Merci pour votre aide.
 

job75

XLDnaute Barbatruc
Re : Tester si la feuille existe

Bonjour fred2705,

Si la déclaration des variables n'est pas obligatoire :

Code:
'-----
On Error Resume Next
If IsEmpty(Feuil8) Then MsgBox "Feuil8 n'existe plus !", 48: Exit Sub
If Feuil8.Range("V643") <> Feuil8.Range("O639") Then
  Cancel = True
  MsgBox "Les prix ont changés! Vous devez générer un PDF avant de sauvegarder"
End If
Si la déclaration des variables est obligatoire, par exemple avec Option Explicit, il y aura erreur de compilation si Feuil8 n'existe pas.

Edit : bonjour mutzik

A+
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Tester si la feuille existe

Bonjour Mutzik, Fred ,

Une autre solution sans la gestion d'erreur ....

@ Bonjour Job

Code:
Sub test_Onglet()
Dim Onglet As Worksheet
Dim Onglet_Ok As Boolean
Dim onglet_Cherché As String

onglet_Cherché = "Feuil8"

For Each Onglet In ThisWorkbook.Worksheets
    If Onglet.Name = onglet_Cherché Then Onglet_Ok = True: Exit For
Next Onglet

If Not Onglet_Ok Then MsgBox "L'onglet " & onglet_Cherché & " n'existe pas": Exit Sub

End Sub
 

gosselien

XLDnaute Barbatruc
Re : Tester si la feuille existe

Hello le forum,

ceci aussi:

Sub TesterSiOnglet()
Dim Lenom As String
Lenom = "Feuil23"
If Not Exists(Lenom) Then MsgBox ("L'onglet " & Lenom & " n'existe pas"): Exit Sub
Sheets(Lenom).Select
End Sub
Function Exists(TheName As String) As Boolean
On Error Resume Next
On Error Resume Next
Exists = Sheets(TheName).Name <> ""
On Error GoTo 0
End Function
 

Paf

XLDnaute Barbatruc
Re : Tester si la feuille existe

Bonjour à tous

Une autre solution pour tester l'existence d'une feuille (Feuil8)

Code:
NomFeuille="Feuil8"

 If  IsError(Evaluate("='" & NomFeuille & "'!A1")) then
     msgbox "La feuille n' existe pas"
 End If

IsError... renvoie Faux si la feuille existe, vrai si elle n'existe pas

A+
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
581

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87