recherche d'onglet

thierrylon

XLDnaute Nouveau
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.
 

Cousinhub

XLDnaute Barbatruc
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
 

papapaul

XLDnaute Impliqué
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 ;)
 

Staple1600

XLDnaute Barbatruc
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:

Statistiques des forums

Discussions
312 492
Messages
2 088 914
Membres
103 983
dernier inscrit
AlbertCouillard