J'aimerai créer un fonction qui me renvoi un objet de type Worksheet, selon un nom en paramètre. C'est a dire que si la sheets existe il me renvoi l'objet pointant vers celle-ci, sinon il en crée un nouvelle et me renvoi l'objet pointant vers cette nouvelle sheets.

Ce qui donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
'Retourne la feuille nommé selon le paramètre sheetsName (soit une new soit celle déjà existante)
Function GiveMeSheets(sheetsName As String) As Worksheet
    Dim oneSheets As Worksheet
 
    'Desactive les messages d'erreurs
    On Error Resume Next
 
    ' On cré un objet sheet selon le nom en paramètre
    Set oneSheets = ActiveWorkbook.Sheets(sheetsName)
 
    'Si il y a erreur, alors la feuille n'existe pas, sinon elle existe
    If Err <> 0 Then
        'Feuille inexistante, donc on la cré
        insertSheet (sheetsName) 'Cette function fonctionne correctement car la création a bien lieu
        Set oneSheets = ActiveWorkbook.Sheets(sheetsName)
    End If
 
    'Reactive les message d'erreurs
    On Error GoTo 0
 
    GiveMeSheets = oneSheets
End Function
Mais lorsque je fais appel a cette fonction j'obtiens l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
runtime-error '91':
Object variable or With block variable not set
Quelqu'un pourait-il m'expliquer le pourquoi du comment....

Merci