Test si une page excel existe

C

Crapulas

Guest
Bonjour,

Je souhaiterai avoir de l'aide pour du VBA dans excel.

J'ai un classeur avec un nombre de pages inconnues.
Je cherche toutes les pages qui comporte comme nom d'onglet par exemple "20XX-20YY"

Comment faire en VBA pour récupérer dans une liste toutes les pages ayant ce nom?

Même question, comment tester que le nom de page existe et si non créer la page avec ce nom?

Merci de votre et bonne soirée
 
P

PhiBou

Guest
Bonjour Crapulas, le Forum

2 macros pour tes 2 demandes.

La 1ère te renvoie dans un MsgBox les onglets nommés 20xx-20yy
Tu l'adapteras pour la mettre dans une liste.

La 2ème determine si l'onglet existe ou pas

Sub RechercheOnglet()
Dim Liste As String
Dim i As Long
For i = 1 To ActiveWorkbook.Sheets.Count
If Left(Sheets(i).Name, 2) & Mid(Sheets(i).Name, 6, 2) = "2020" Then
Liste = Liste & Sheets(i).Name & Chr(10)
End If
Next i
MsgBox Liste
End Sub

Sub PageExiste()
Dim NomPage As String
Dim Valor As String
NomPage = InputBox("Entrer le nom de la page", "")
On Error GoTo GestErreur
Valor = Sheets(NomPage).Range("A1")
MsgBox "La page existe"
Exit Sub
GestErreur:
MsgBox "La page n'existe pas"
End Sub

Bonne journée

PhiBou
 
P

PhiBou

Guest
Re le fil, le Forum

Pour tao.tix

Le test pour la 2ème macro c'est la gestion de l'erreur.

Si la page n'existe pas alors

Valor = Sheets(NomPage).Range("A1")

renvoie une erreur qui est gérée par GestErreur : MsgBox "La page n'existe pas"

Si la page existe on continue la procédure et on a : MsgBox "La page existe"

On aurait pu faire ceci :

Test = 0
For i = 1 To ActiveWorkbook.Sheets.Count
if Sheet(i).Name = NomPage then Test = 1
End If
Next i
if Test = 1 then
MsgBox "La page existe"
else
Msgbox "La page n'existe pas"
end if

mais lorsque on a un grand nombre d'onglets la gestion d'erreur est plus rapide.

PhiBou
 

Discussions similaires

Réponses
6
Affichages
507

Statistiques des forums

Discussions
312 348
Messages
2 087 506
Membres
103 566
dernier inscrit
c@b@l77540