XL 2016 Si une feuille existe alors ... Sinon la créer

Slip_Officiel

XLDnaute Nouveau
Bonjour à tous,

Je fais appelle à vous car je n'arrive pas à trouver le code VBA qui correspond à l'action suivante :

Si la feuille portant le nom de la case A2 existe, alors msgbox " cette feuille existe"
sinon, créer la feuille portant le nom de la case A2

Merci d'avance
 

fanfan38

XLDnaute Barbatruc
Bonjour,
VB:
Sub temp()
 Dim i As Integer
 For i = 1 To Sheets.Count
   If Sheets(i).Name = Range("A2").Value Then
     MsgBox ("Cette feuille existe")
     Exit Sub
   End If
 Next
  Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Range("A2").Value
End Sub

A+ François
 

patricktoulon

XLDnaute Barbatruc
Bonjour le fil

sinon
VB:
Sub test()
MsgBox SheetsExist("Feuil5")' le nom du classeur est optional 
End Sub

Function SheetsExist(nom, Optional classeur As String = "") As Boolean
    If IsError(TypeName(Evaluate("='[" & IIf(classeur = "", ThisWorkbook.Name, classeur) & "]" & nom & "'!A:B"))) Then Exit Function Else SheetsExist = TypeName(Evaluate(nom & "!A:B")) = "Range"
End Function
 

D.D.

XLDnaute Impliqué
Bonjour le fil

sinon
VB:
Sub test()
MsgBox SheetsExist("Feuil5")
End Sub

Function SheetsExist(nom, Optional classeur As String = "") As Boolean
    If IsError(TypeName(Evaluate("='[" & IIf(classeur = "", ThisWorkbook.Name, classeur) & "]" & nom & "'!A:B"))) Then Exit Function Else SheetsExist = TypeName(Evaluate(nom & "!A:B")) = "Range"
End Function

En une ligne !
J'adore !
 

patricktoulon

XLDnaute Barbatruc
re
sinon sans boucle aussi mais avec gestion d'erreur post Call
et ca prend en charge les sheets graphiques
VB:
Sub test2()
    MsgBox SheetsExist2("Feuil5")
End Sub

Function SheetsExist2(nom, Optional classeur As String = "") As Boolean
On Error Resume Next
SheetsExist2 = True
Set x = Workbooks(IIf(classeur = "", ThisWorkbook.Name, classeur)).Sheets(nom)
If Err.Number > 0 Then SheetsExist2 = False: Err.Clear
End Function
 

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 087
Membres
112 656
dernier inscrit
VNVT