Posez votre question Signaler

Avec Excel, vérifier l'existance d'une feuill

tacotac - Dernière réponse le 12 avril 2011 à 11:20
Bonjour à tous
Existe t'il en VBA, un moyen de savoir si une feuille nommée "toto" (par exemple) existe dans un classeur ?
Merci
Lire la suite 

Avec Excel, vérifier l'existance d'une feuill »

9 réponses
Réponse
+9
moins plus
bonjour

avec ma boucle, dès que ma fonction rencontre la feuille 3 par exemple il plante car elle n'existe pas.

L'on ne sait absolument pas ce à quoi sert ta boucle mais elle ne part sûrement pas sur un algorithme approprié puisqu'elle ne fonctionne pas. Quelque chose comme ceci devrait fonctionner :
Sub sel_feuilles()
Dim i as integer
For i = 1 to  Worksheets.Count
    If Worksheets(i).Name = "mon test" Then
        ' "mon code"
    Else
        '  "mon autre code"
    End If
Next i
End Sub
zouzou75 - 17 juil. 2009 à 11:14
Même si c'est plus d'un an après,

merci à gbinforme pour le code, ça m'a été très utile!
Ajouter un commentaire
Réponse
+4
moins plus
J'ai mieux qu'une boucle ou l'utilisation de gestion d'erreurs pour vérifier si une feuille existe.

La fonction suivante retourne la valeur "Vrai" si la feuille n'existe pas.

Public Function FeuilleInexistante (ByVal strNomFeuille As String) As Boolean
'Retourne TRUE si strNomFeuille est le nom d'une feuille qui n'existe pas dans le classeur actif

FeuilleInexistante = IsError(Evaluate("='" & strNomFeuille & "'!A1"))

End Function

Insérez la dans un module de votre classeur Excel, puis appelez la depuis l'une de vos macro en lui passant en paramètre le nom de votre feuille, comme par exemple cette macro qui affiche un message :

dim strNomFeuille as String

strNomFeuille = "nom de ma feuille"

if FeuilleInexistante (strNomFeuille ) then MsgBox "Cette feuille n'existe pas dans le classeur " & ThisWorkbook.Name


Bonne chance ;)
slyleglobetrotter- 12 avril 2011 à 11:20
Salut Jacknight,

Ta méthode fonctionne super bien, merci mais que faudrait il ajouter pour qu'elle fonctionne pour une feuille et une feuille "graphique" ?

Merci
Ajouter un commentaire
Réponse
+1
moins plus
Je souhaiterais modifier ma demande précèdente.
Existe t'il en vba le moyen de supprimer les feuilles d'un classeur qui ne sont pas nommées toto ou titi (par exemple) ? MERCI A L'AVANCE
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

Cette macro devrait répondre à ta demande :

Sub sup_feuilles()
' suppression des feuilles
dim i,j as integer
dim codfeu as string
codfeu = "t?t?"
Application.DisplayAlerts = False
j = Worksheets.Count
i = 1
Do Until j < i
If InStr(1, Worksheets(i).Name, codfeu) = 0 Then
' suppression feuille si le nom ne comporte pas le "code feuille"
Worksheets(i).Delete
j = j - 1
Else
i = i + 1
End If
Loop
Application.DisplayAlerts = True
End Sub


Elle ne garde que les feuilles nommées titi ou toto ou tztz
en raison du "?".

pour d'autres noms il faut changer le paramètre "codfeu"

maksym92 - 15 mai 2008 à 14:16
Salut!
J'ai un besoin similaire: je cherche à faire une macro qui supprime des feuilles "Année1", "Année2" sachant que le nombre de ces feuilles est une variable. J'ai essayé votre macro mais elle ne fait rien (pas de message d'erreur mais pas de modification dans Excel). Avez vous une explication?
Voilà ma macro:

Sub sup_feuilles()
Dim i, j As Integer
Dim codfeu As String
codfeu = "Année?"
Application.DisplayAlerts = False
j = Worksheets.Count
i = 1
Do Until j < i
If InStr(1, Worksheets(i).Name, codfeu) = 1 Then
Worksheets(i).Delete
j = j - 1
Else
i = i + 1
End If
Loop
Application.DisplayAlerts = True
End Sub
licool- 15 mai 2008 à 17:53
Salut,

essayes ça :

Sub Supr_feuil()
For Ctr = Sheets.Count To 1 Step -1
If Sheets(Ctr).Name Like "Année*" Then
SendKeys ("{ENTER}")
Sheets(Ctr).Delete
End If
Next
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

je realise une boucle sur chaque feuille de mon classeur mais celles ci sont nommés Feuil+un chiffre qui ne sont pas consecutifs (ex : feuil1, feuil2, feuil5, feuil15, etc... mais organiséés tout de meme par ordre croissant.

je souhaiterai tester chaque feuille de mon classeur mais avec ma boucle, dès que ma fonction rencontre la feuille 3 par exemple il plante car elle n'existe pas.

quelqu'un pourrait m'aider svp??
merci
Ajouter un commentaire
Ce document intitulé « avec Excel, vérifier l'existance d'une feuill » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?