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:
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 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
Le "Union" ne passe plus lors de l'execution et j'obtient l'erreur :
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
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 remplacepar
Code : Sélectionner tout - Visualiser dans une fenêtre à part If x <> 8 / y ThenJ'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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part If x * y <> 8 Then
Partager