Bonjour,

Petit souci avec un tableau Excel dans un cadre d'objet indépendant.
Je n'arrive pas à faire une séléction multiple de cellule.

Sous Excel, le code suivant marche très bien:
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
 
Sub Macro1()
    Dim obj As Range, x As Byte, y As Byte
    With Worksheets(1)
        Set obj = .Range(.Cells(4, 2), .Cells(6, 3))
        For x = 2 To 18 Step 4
            For y = 4 To 28 Step 6
                If x <> 8 / y Then Set obj = Union(.Range(.Cells(y, x), .Cells(y + 2, x + 1)), obj)
            Next
        Next
        With obj
            ...
            ...
        End With
    End With
End Sub
Sous access, le code suivant ne marche pas:
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
 
Private Sub macro1()
    Dim x As Byte, y As Byte, obj As Range, exc As Worksheet
    Set exc = cadreindependant.Controls(1).Object.Worksheets(1)
    With exc
        Set obj = .Range(.Cells(4, 2), .Cells(6, 3))
        For x = 2 To 18 Step 4
            For y = 4 To 28 Step 6
                If x <> 8 / y Then Set obj = Union(.Range(.Cells(y, x), .Cells(y + 2, x + 1)), obj)
            Next
        Next
        With obj
            ...
            ...
        End With
    End With
End Sub
Le "Union" ne passe plus lors de l'execution et j'obtient l'erreur :

Erreur d'exécution '1004':
La méthode 'Union' de l'objet '_Global' a échoué

Qu'est ce qui ne va pas?

Question bonus:
si je remplace par J'obtient une erreur de dépacement de capacité lorsque x * y dépasse 255. Pourtant je n'attribue rien a ces variables... Comment VBA gère les variables lors des opérations arithmétiques?