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

Tester si la feuille existe

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

F

fred2705

Guest
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.
 
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:
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
 
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
 
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:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
656
Réponses
13
Affichages
601
Réponses
2
Affichages
386
Réponses
2
Affichages
739
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…