S'assurer de l'inexistence d'un onglet dans Excel

Résolu/Fermé
dodorando Messages postés 8 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 27 octobre 2017 - Modifié le 26 oct. 2017 à 17:38
dodorando Messages postés 8 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 27 octobre 2017 - 27 oct. 2017 à 14:18
Bonjour à tous,

Je vous écris, car je suis en face d'un petit problème qui m'empêche de continuer mon code.
En fait, sur une page accueil, j'ai créé une liste déroulante avec plusieurs possibilités :
La cellule liée est : $A$1
Ma liste déroulante est : $A$2:$A$6

Dans mon code VBA, je souhaite créer une feuille à chaque changement de numéro de ma céllule liée. J'écris donc :
If Cells(1, 1) = 2 Then Sheets.Add.Name = "Liste course"

Cependant, si cette feuille "Liste course" existe déjà, je souhaiterais avoir une MsgBox.
Si celle-ci n'existe pas, je souhaiterais la créer.

Enfin, je souhaiterais faire de même avec le reste de ma liste :
If Cells(1, 1) = 3 Then Sheets.Add.Name = "Liste course détaillée"
If Cells(1, 1) = 4 Then Sheets.Add.Name = "Liste complète"
If Cells(1, 1) = 5 Then Sheets.Add.Name = "Liste complète détaillée"

Et de même, si ces feuilles existent, je souhaite voir apparaître une MsgBox...
Malheureusement, je n'arrive pas à arrêter ma macro à la MsgBox, ma macro continue et bugge...

Si quelqu'un peut m'aider, ça me tirerait une belle épine du pied !

D'avance merci pour votre aide,

Dodo.
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié le 26 oct. 2017 à 18:16
Bonjour,

Par exemple :
Option Explicit
Sub test()
  If Cells(1, 1) = 2 Then AjouteFeuille "Liste course"
  If Cells(1, 1) = 3 Then AjouteFeuille "Liste course détaillée"
  If Cells(1, 1) = 4 Then AjouteFeuille "Liste complète"
  If Cells(1, 1) = 5 Then AjouteFeuille "Liste complète détaillée"
End Sub
Private Sub AjouteFeuille(nom As String)
Dim sh As Worksheet
  On Error Resume Next
  Set sh = Worksheets(nom)
  On Error GoTo 0
  If sh Is Nothing Then
    Sheets.Add.Name = nom
  Else
    MsgBox "La feuille « " & nom & " » existe déjà."
  End If
End Sub



Cordialement
Patrice
1
dodorando Messages postés 8 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 27 octobre 2017
27 oct. 2017 à 14:18
Merci Patrice !!!
Ta solution fonctionne parfaitement !
Merci d'avoir pris le temps, tu m'as bien aidé !
Bon week-end.
Dodo.
0