OVH Cloud OVH Cloud

Tester l'existence d'un élément de collection

4 réponses
Avatar
Stéphane Santon
Bonjour,

J'aimerais vérifier l'existence d'une feuille de calcul d'après son nom
dans le classeur, et la créer si elle n'existe pas.

Je ne trouve pas de fonction adaptée car l'appel de sheets( "nom")
provoque une erreur, alors que j'aurais aimé (comme dans d'autres
langages) que ça renvoie un élément vide que je peux alors tester.

Suis-je obligé de gérer l'erreur par on error ?

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

4 réponses

Avatar
AV
J'aimerais vérifier l'existence d'une feuille de calcul d'après son nom
Suis-je obligé de gérer l'erreur par on error ?
Pas forcément.

Il y a plein de façon...
Une :

MsgBox [iserr(leNomDeLaFeuille!A1)]

AV

Avatar
AV
Complément (après relecture question) pour créer la feuille "zzz" (si elle
n'existe pas ) :

If [iserr(zzz!A1)] = True Then Sheets.Add.Name = "zzz"

AV
Avatar
Stéphane Santon
Voilà la pirouette que je suis obligé de faire ...

Sub CreateSheets(aoWorkBook As Workbook)
Dim loSheet As Object, lsName As String

On Error GoTo CreateSheet

With aoWorkBook
lsName = "Quantités"
Set loSheet = .Sheets(lsName)
lsName = "Compteurs"
Set loSheet = .Sheets(lsName)
lsName = "Durées"
Set loSheet = .Sheets(lsName)
lsName = "Rythmes"
Set loSheet = .Sheets(lsName)
End With

On Error GoTo 0
Exit Sub

CreateSheet:
Set loSheet = aoWorkBook.Sheets.Add
loSheet.Name = lsName
Resume

End Sub

J'aimerais vérifier l'existence d'une feuille de calcul d'après son nom
dans le classeur, et la créer si elle n'existe pas.


--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

Avatar
Stéphane Santon
Bonjour,

Complément (après relecture question) pour créer la feuille "zzz" (si elle
n'existe pas ) :

If [iserr(zzz!A1)] = True Then Sheets.Add.Name = "zzz"


Merci. Je commence à comprendre les astuces...

Et si je veux tester la présence de la feuille dans un autre classeur,
car je prépare une macro complémentaire...

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime