Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Est-ce qu'une feuille existe

nadir****

XLDnaute Occasionnel
Bonjour
Comment savoir si une feuille intitulée BASE existe dans le classeur de travail ?
Est-ce que quelqu'un pourrait me donner une piste ?
Par avance, merci.
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Bonjour nadir,

sans plus de détails, une solution vba,avec fonction personnalisé...

Code:
Sub TestFeuilleExiste()
Dim nomfeuille As String
nomfeuille = "Feuil1"
If Not FeuilleExiste(nomfeuille) Is Nothing Then MsgBox "OK"
End Sub
Function FeuilleExiste(f As String) As Worksheet
On Error Resume Next
Set FeuilleExiste = Worksheets(f)
End Function

bon après midi
@+
 

Efgé

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Bonjour nadir****
Code:
[COLOR=blue]Sub[/COLOR] Nadir()
[COLOR=blue]Dim[/COLOR] F [COLOR=blue]As[/COLOR] Worksheet
[COLOR=blue]For Each[/COLOR] F [COLOR=blue]In[/COLOR] ActiveWorkbook.Worksheets
    [COLOR=blue]If[/COLOR] F.Name = "Base" [COLOR=blue]Then[/COLOR]
   [COLOR=green]'La Macro[/COLOR]
    [COLOR=blue]End If[/COLOR]
[COLOR=blue]Next[/COLOR] F
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Guiv

XLDnaute Occasionnel
Re : VBA - Est-ce qu'une feuille existe

Bonjour à tous,
Une autre proposition:
Code:
Sub test()
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Base" Then
            If i <> Sheets.Count Then
                GoTo suite
            Else
                MsgBox "La feuille ''Base'' n'existe pas"
            End If
        Else
            MsgBox "la feuille ''Base'' est la feuille n°" & i
            Exit For
        End If

suite:
    Next i
End Sub

Cordialement,
Guiv
 

ROGER2327

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Bonjour à tous
Encore une autre :
Code:
[B][COLOR="DarkSlateGray"]Sub toto()
Dim tmp&, msg$
   On Error GoTo E
   tmp = Sheets("BASE").Index
   msg = "La feuille BASE est la feuille n° " & tmp & " de ce classeur."
R:
   On Error GoTo 0
   MsgBox msg
Exit Sub
E:
   msg = "La feuille BASE n'existe pas dans ce classeur."
   Resume R
End Sub[/COLOR][/B]

Et encore une autre :
Code:
[B][COLOR="DarkSlateGray"]Sub tata()
Dim tmp, msg$
   On Error Resume Next
   tmp = Sheets("BASE").Index
   On Error GoTo 0
   If IsEmpty(tmp) Then
      msg = "La feuille BASE n'existe pas dans ce classeur."
   Else
      msg = "La feuille BASE est la feuille n° " & tmp & " de ce classeur."
   End If
   MsgBox msg
End Sub[/COLOR][/B]
ROGER2327
#3987


Mercredi 18 Tatane 137 (Saint Trou, chauffeur, SQ)
13 Thermidor An CCXVIII
2010-W30-6T01:19:00Z
 

Guiv

XLDnaute Occasionnel
Re : VBA - Est-ce qu'une feuille existe

Re,
Ou encore:
Code:
Sub test()
    On Error GoTo message
    Sheets("Base").Activate
    MsgBox "Voici la feuille BASE!"
    Exit Sub

message:
    MsgBox "La feuille BASE n'existe pas"
End Sub

Bon weekend
Guiv
 

Fo_rum

XLDnaute Accro
Re : VBA - Est-ce qu'une feuille existe

Salut

peut-être ainsi (si on ne veut que l'information) ?
Code:
Sub ToBeOrNotToBe()
  Dim Est$
  Est = "n'existe pas "
  On Error GoTo Info
  With Sheets("BASE"): Est = "existe ":  End With
Info:
  MsgBox "La feuille BASE " & Est & " dans ce classeur !", vbExclamation, ""
End Sub
 

Guiv

XLDnaute Occasionnel
Re : VBA - Est-ce qu'une feuille existe

Re,
Ou bien, pour visualiser la liste des feuilles existantes:
Code:
Sub test()
    Dim liste As String
    For i = 1 To Sheets.Count
        liste = liste & vbCr & Sheets(i).Name
    Next i
    MsgBox liste
End Sub

On gagne encore une ligne en oubliant de déclarer la variable "liste"
Cordialement,
Guiv
 

YANN-56

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Bonsoir à tous,

C'est marrant la coïncidence! J'appelle souvent ma feuille d'Ouverture "Base"
(Sauf qu'en Majuscules)

En supposant que tu aies une "Feuil3"

Code:
Private Sub CommandButton1_Click() ' Ou un autre truc
For Each FEUILLE In ThisWorkbook.Worksheets   
    If FEUILLE.Name = "Feuil3" Then
    FEUILLE.Select ' Ou en faire  ce que tu veux! Genre sa Celles(x,y) = Bidule
    End If    
Next
End Sub

Je n'ai pas ajouté les "Fleurs, Dim et Set ",
mais tu auras reçu ci-dessus des réponses efficaces.

Amicalement

Yann
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : VBA - Est-ce qu'une feuille existe

Bonjour,

Ma petite contribution.....

Code:
Sub cherche()
MsgBox FeuilleExiste("Base")
End Sub

Function FeuilleExiste(Feuille As String) As Boolean
On Error Resume Next
FeuilleExiste = CBool(Len(Sheets(Feuille).Name))
Err.Clear
End Function

Bon W-E
 

laetitia90

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

bonjour tous;
ou encore...

Code:
Dim x As Worksheet
On Error Resume Next
Set x = Worksheets("BASE")
If Err <> 0 Then MsgBox "pas ok" Else MsgBox " ok"
On Error GoTo 0
 

steuf999

XLDnaute Nouveau
Re : VBA - Est-ce qu'une feuille existe

Bonjour ! J'aurai besoin d'aide pour intégrer vos codes dans ma macro.
Elle crée un onglet selon un onglet modèle et renomme l'onglet en fonction de la valeur d'une cellule donnée.
J'aurai aimé vérifier avant de renommer que l'onglet n'existe pas et si c'est le cas, continuer la macro sur la ligne suivante.
Je vous mets mon code actuel
Code:
Sub Creation_Onglets_Selon_Modele()
    Dim c As Range
 
    Application.ScreenUpdating = False
    
    
    'On crée les onglets qui sont listés à partir de la cellule A12 de l'onglet nommé Liste
    Set c = Worksheets("Liste").Range("A12") 'cellule de départ
    Do Until IsEmpty(c)     'boucle tant que c est vide
 
        'on copie le modèle en dernier
        Worksheets("Modèle").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
 
        With Worksheets(ThisWorkbook.Sheets.Count) 'avec l'onglet créé
        
       
            .Name = c.Value     'on renomme
            'on remplit notre modèle comme on veut...
            .Range("B7") = c.Value 'on met dans la cellule B7 le matricule du salarié
            
             End With
 
        Set c = c.Offset(1, 0)      'prochaine ligne
    Loop
 
    Application.ScreenUpdating = True
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Bonsoir steuf999.


Un truc comme ça, peut-être ?​
Code:
Sub Creation_Onglets_Selon_Modele()
Dim c As Range

  Application.ScreenUpdating = False

                'S'ils n'existent pas, on crée les onglets qui sont listés
                'à partir de la cellule A12 de l'onglet nommé Liste

  Set c = Worksheets("Liste").Range("A12")  'cellule de départ

  Do Until IsEmpty(c)                       'boucle tant que c n'est pas vide

                'Si l'onglet (c.Value) n'existe pas, on copie le modèle en dernier

    On Error Resume Next: Worksheets(c.Value).Activate
    If Err.Number Then Worksheets("Modèle").Copy After:=Worksheets(ThisWorkbook.Sheets.Count): ActiveSheet.Name = c.Value

    With ActiveSheet                        'avec l'onglet créé ou l'onglet déjà existant

      If .Name = c.Value Then

                'on remplit notre modèle comme on veut...

        .Range("B7") = c.Value              'on met dans la cellule B7 le matricule du salarié

      Else

                ' c.Value n'est pas un nom d'onglet correct : suppression de l'onglet
                '(On peut mettre ici un message d'alerte)

        Application.DisplayAlerts = False
        .Delete
        Application.DisplayAlerts = True

      End If

    End With
    
    Set c = c.Offset(1, 0)                  'prochaine ligne

  Loop

  Application.ScreenUpdating = True

End Sub


Bonne nuit.


ℝOGER2327
#8118


Lundi 2 Sable 143 (Saint Doublemain, idéologue - fête Suprême Quarte)
11 Frimaire An CCXXIV, 9,7627h - cire
2015-W49-3T23:25:50Z
 
Dernière édition:

steuf999

XLDnaute Nouveau
Re : VBA - Est-ce qu'une feuille existe

Merci pour votre réponse ! Malheureusement j'ai exécuté la macro et effectivement cela ne bloque plus pour les onglets existants mais ça ne me crée pas les onglets liés aux nouveaux matricules de la liste . Je crois que le probleme est sur le delete ?
 

ROGER2327

XLDnaute Barbatruc
Re : VBA - Est-ce qu'une feuille existe

Re...


Le code proposé a évidemment été testé. Voyez le classeur joint.​


ℝOGER2327
#8119


Mardi 3 Sable 143 (Saint Phlegmon, doctrinaire - fête Suprême Quarte)
12 Frimaire An CCXXIV, 4,1256h - raifort
2015-W49-4T09:54:05Z
 

Pièces jointes

  • Création d'onglets.xlsm
    24.9 KB · Affichages: 120

Discussions similaires

Réponses
13
Affichages
412
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…