Detecter la présence d'une feuille
m
Bonjour,
Je cherche à détecter une feuille dans un classeur afin de ne pas la copier plusieurs fois, pour cela j'utilise ce code:
Sub Bouton149_Cliquer()
'recherche d'une feuille nommée "bdd1"
For I = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(I).Name = "bdd1" Then
'si elle est présente
bdd.Copy before:=bdd
bdd1.Unprotect Password:="1234"
Else
MsgBox "Copie déja présente dans le classeur, supprimée la pour en recharger une autre"
End If
Next I
End Sub
Seulement ce code me fait apparaitre le msgbox plusieurs fois, je suppose qu'il apparait a la vérification de chaque feuille et au final il ne rajoute jamais la feuille supplémentaire même si elle n'existe pas encore.
Avez-vous un code qui permettrait de detecter une feuille dans un classeur grace à son nom?
merci d'avance
Cordialement
max
Bonjour maxgib,
J'ai déjà répondu à cette problématique dans un post précédent,
La fonction:
Function feuilleExiste(nomTeste as String) as Boolean
feuilleExiste = False
For each uneFeuille in ThisWorkbook.Sheets
If uneFeuille.Name = nomTeste Then feuilleExiste = True : Exit Function
Next uneFeuille
End Function
L'utilisation:
Sub maProcedure()
Dim nomDeFeuilleSouhaite as String
nomDeFeuilleSouhaite = "blablabla"
If feuilleExiste(nomDeFeuilleSouhaite) = True Then
'actions à faire si la feuille existe
Else
'actions à faire si la feuille n'existe pas.
End If
Ce qui donne au final quelquechose dans ce style
Sub Bouton149_Cliquer()
If feuilleExiste("bdd1") Then
MsgBox "Copie déja présente dans le classeur, supprimez la pour en recharger une autre"
Else
'ton code
End If
End Sub
Function feuilleExiste(nomTeste as String) as Boolean
feuilleExiste = False
For each uneFeuille in ThisWorkbook.Sheets
If uneFeuille.Name = nomTeste Then feuilleExiste = True : Exit Function
Next uneFeuille
End Function