Conditionner le déroulement d'une macro a l'existence d'une feuille

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

degap05

XLDnaute Impliqué
Bonjour le forum,

Je souhaiterais que l'exécution d'une macro soit conditionné à l'existence d'une feuille.
Si la feuille "Validé" existe la macro se déroule, si cette feuille n'existe pas message: Vous devez créer la feuille "Validé" et sortie de la procédure.

Merci pour votre compréhension.
 
Dernière édition:
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Bonjour,

Ci-dessous un exemple à adapter :


Sub test()
Marqueur = 0
For Each X In Sheets
If X.Name = "Validé" Then Marqueur = 1
Next
If Marqueur = 0 Then Exit Sub 'Si la feuille n'existe pas, on sort de la Sub
'Si la feuille existe, mettre ici ton code ...
End Sub
 
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Bonjour,

Ci-dessous un exemple à adapter :


Sub test()
Marqueur = 0
For Each X In Sheets
If X.Name = "Validé" Then Marqueur = 1
Next
If Marqueur = 0 Then Exit Sub 'Si la feuille n'existe pas, on sort de la Sub
'Si la feuille existe, mettre ici ton code ...
End Sub

Bonjour Catrice,
Là je suis incapable d'adapter ton code avec :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Avec un peu plus d'explication si tu veux bien.
Merci.
 
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Re,

Je n'ai pas regardé ton code.
J'ai juste répondu à la question, "Si la feuille "Validé" existe la macro se déroule".
Où veux tu dans ton code tester l'existence de la feuille "Validé" ?

Voir modif ci-dessous :

'Code avant
Marqueur = 0
For Each X In Sheets
If X.Name = "Validé" Then Marqueur = 1
Next
If Marqueur = 0 Then
MsGbox "La feuille n'existe pas"
Exit Sub
Else
'Si la feuille existe, mettre ici ton code ...
End IF
'Code apres
 
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Re,

Ca devrait ressembler à :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Marqueur = 0
For Each X In Sheets
If X.Name = "Validé" Then Marqueur = 1
Next
If Marqueur = 0 Then
MsgBox "La feuille n'existe pas"
Exit Sub
Else
'Ici ton code
End IF
End Sub
 
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Bonsoir

Bonsoir, Catrice

@ Catrice

une autre façon de tester l'existence d'une feuille...

Code:
On Error Resume Next
x = Len(Sheets("Feuil1").Name)
On Error GoTo 0
If x > 0 Then
MsgBox "existe"
End If
 
Re : Conditionner le déroulement d'une macro a l'existence d'une feuille

Bonjour, Catrice et bhbh,


Voilà comment j'ai adapté vos propositions:
Dim test As Boolean, curSheet As Worksheet

For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name = "Validé" Then test = True
Sheets("Cde").Select
'si la feuille n'a pas encore été créée, la créer
If Not test Then ThisWorkbook.Sheets.Add.Name = "Validé"
Sheets("Validé").Range("A1").Value = "DEM01900"
Sheets("Cde").Select
Next

'mon code

Voyez-vous une amélioration à apporter ?

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

Discussions similaires

Réponses
2
Affichages
244
Retour