comment vérifier si une feuille du classeur est déjà existante

comment vérifier si une feuille du classeur est déjà existante - VB/VBA/VBS - Programmation

Marsh Posté le 29-05-2006 à 22:40:07    

Toujours pour mon appli, l'idée est de créer automatiquement une nouvelle feuille tous les mois avec pour name le mois en cours, ça ok. Mon problème maintenant est de faire vérifier que cette feuille existe déjà pour éviter les redondances, c'est entre autre, là que j'ai un petit soucis, merci pour vos aides.
claphipat@wanadoo.fr

Reply

Marsh Posté le 29-05-2006 à 22:40:07   

Reply

Marsh Posté le 30-05-2006 à 07:40:50    

bonjour,
Tu peux utiliser la fonction WsExist (à coller dans un module standart : Module1...)

Code :
  1. Sub test()
  2. WsName$ = "Feuil1"
  3. y = WsExist(WsName)
  4. Msg = IIf(y, " existe bien.", " n'existe pas." )
  5. MsgBox WsName & Msg
  6. End Sub
  7. Function WsExist(Nom$) As Boolean
  8. On Error Resume Next
  9. WsExist = Sheets(Nom).Index
  10. End Function

A+


---------------
roger
Reply

Marsh Posté le 30-05-2006 à 13:27:12    

A essayer
Option Explicit
 
Sub ListeFeuilles()
Dim NbFeuilles As Integer, i As Integer
Dim NouvelleFeuille As Worksheet, Feuille As Worksheet
Dim Tableau() As String
Dim Mois As String, FlagMois As Boolean
     
    FlagMois = False
    Mois = MonthName(Month(Now), False)
    Erase Tableau
    NbFeuilles = 0
    '   Lire dans un tableau les noms
    For Each Feuille In ActiveWorkbook.Sheets
        NbFeuilles = NbFeuilles + 1
        ReDim Preserve Tableau(1 To NbFeuilles)
        Tableau(NbFeuilles) = Feuille.Name
    Next
    '   Vérifier si le mois en cours s'y trouve
    For i = 1 To NbFeuilles
        If Tableau(i) = Mois Then
            FlagMois = True
            Exit For
        End If
    Next
    '   Agir en conséquence
    Select Case FlagMois
        Case True
            '........
        Case False
            Set NouvelleFeuille = ActiveWorkbook.Worksheets.Add
            NouvelleFeuille.Name = Mois
            ' ......
    End Select
End Sub
 
Sub Auto_Open()
    '........ ListeFeuilles ???
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed