Bonjour à toutes et à tous,

Curiosité: ce code renvoie l'erreur d'exécution 424: Objet requis en surlignant en jaune la partie en gras ci-dessous:
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
24
25
26
27
28
29
Option Base 1

Sub Test()

        Dim a As Worksheet
        Dim b As Worksheet
        Dim c As Worksheet
        Dim d As Worksheet
        
        Set a = Worksheets("A")
        Set b = Worksheets("B")
        Set c = Worksheets("C")
        Set d = Worksheets("D")
        
        Dim fl As Variant
        
        fl = Array(a, b, c, d)
        
    With fl(1)
        .Range("A1").Value = "A"
    End With
      
For i = 1 To 4

        fl(i).Activate

Next

End Sub
Apparemment, c'est lié à la commande d'avant, car si With n'est pas utilisé, ça fonctionne:
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
24
25
26
27
28
29
Option Base 1

Sub Test()

        Dim a As Worksheet
        Dim b As Worksheet
        Dim c As Worksheet
        Dim d As Worksheet
        
        Set a = Worksheets("A")
        Set b = Worksheets("B")
        Set c = Worksheets("C")
        Set d = Worksheets("D")
        
        Dim fl As Variant
        
        fl = Array(a, b, c, d)
        

        fl(1).Range("A1").Value = "A"
    
      
For i = 1 To 4

        fl(i).Activate

Next

End Sub

De même, si With est utilisé, mais que la feuille est indiquée par sa variable directe et non par sa position dans une variable tableau (Array), ça fonctionne aussi:
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
24
25
26
27
28
29
Option Base 1

Sub Test()

        Dim a As Worksheet
        Dim b As Worksheet
        Dim c As Worksheet
        Dim d As Worksheet
        
        Set a = Worksheets("A")
        Set b = Worksheets("B")
        Set c = Worksheets("C")
        Set d = Worksheets("D")
        
        Dim fl As Variant
        
        fl = Array(a, b, c, d)
        
    With
        a.Range("A1").Value = "A"
    End With
      
For i = 1 To 4

        fl(i).Activate

Next

End Sub
Est-ce que c'est un bogue? Y a-t-il un moyen de le contourner?