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

T

thierrylon

Guest
bonjour,
j'aimerais savoir s'il existe un code pour savoir si une feuille existe.
je voudrais faire une macro qui recherche une feuille et si elle n'existe pas qu'il la crée.
 
Re : recherche d'onglet

Bonsoir, par exemple :

Sub existe()
On Error GoTo creation
Sheets("Essai").Select: On Error GoTo 0: Exit Sub
creation:
Sheets.Add.Name = "Essai"
End Sub


Le principe : tu sélectionnes la feuille que tu veux.
Si elle n'existe pas, tu la créées.
Bonne soirée
 
Re : recherche d'onglet

🙂 Salut,
Peut être ca pourrait aller, c'est de notre ami Pierrejean

Dim existe As Boolean
'****************************************************
'pour savoir si ta feuille existe
For n = 1 To Sheets.Count
If Sheets(n).Name = "tafeuille" Then
existe = True
Exit For
End If
Next n
'si elle n'existe pas on la créee
If Not existe Then
Sheets.Add after:=Sheets("autre feuille")
ActiveSheet.Name = "tafeuille"
Else
'si elle existe on l'efface
Sheets(" tafeuille ").Cells.Clear
Sheets("tafeuille ").Select
End If
'*********************************************************
Bon courage 😉
 
Re : recherche d'onglet

Bonsoir

Une autre façon

Avec une fonction VBA personnalisée (dont je ne suis pas l'auteur
mais que je trouve jolie)

Code:
Function IsExistingWorksheet(wb As Workbook, strSheetName As String) As Boolean
'source:http://www.code-vb.com/visual-basic-source-code/vb-excel/test_if_sheet_exists.htm
'Purpose: Test is worksheet exists
'Testcase:
'?debug.Print IsExistingWorksheet(sheet1")  >>True
'?debug.Print IsExistingWorksheet(Workbooks("book1"),"Sheet1")  >>True
'?debug.Print IsExistingWorksheet(Workbooks("book1"),"sheet10") >>False
Dim ws As Worksheet
    IsExistingWorksheet = False
    For Each ws In wb.Worksheets
        If (StrComp(ws.Name, strSheetName, vbTextCompare) = 0) Then
            IsExistingWorksheet = True
            Exit For
        End If
    Next
End Function
Code:
Sub test()
'ça c'est de moi
Dim nom_feuille As String
nom_feuille = InputBox("Nom de feuille à vérifier")
If Not IsExistingWorksheet(ThisWorkbook, nom_feuille) Then
'Teste le classeur actif avec ThisWorkbook
'adapter pour tester un autre classeur
'ex: Workbooks("Toto") à  la place de ThisWorkBook
'il faut que le classeur Toto soit ouvert
Sheets.Add
ActiveSheet.Name = nom_feuille
End If
End Sub


1) copier le code ci-dessus dans un module standard

2) Pour tester lancer la macro test

A+

Staple
 
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

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
661
Réponses
14
Affichages
331
Réponses
18
Affichages
726
Retour