Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
13
Affichages
238
Réponses
2
Affichages
238
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…