Rebonsoir les experts d’Excel,
Une autre petite question s’il vous plait …
Mon code If Then inclut plusieurs Select.Case et il est tellement long que lorsque de l’utilisation une erreur 28 espace pile insuffisant se produise ou erreur d’exécution « Value de l’objet range a échoué 2147417840 (80010108).
Lorsque j’essaie de résoudre ce problème dans le code, je vois que VBA souligne la partie dont voici un exemple. Ici il souligne la ligne avec la cellule D10 mais chaque fois le numéro de cellule change (H10, L10 etc) et voici l'exemple de code souligné:
Le code que j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Case Else: Range("D10").Value = "" ()
Comme vous pouvez constater j’utilise la même condition pour ma cellule Target D10 avec case D11 ainsi que pour la cellule Target E10 avec case E11.
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
30
31
32
33
34
35
36
37
38
39 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address = "$C$10" Then Select Case Target.Value Case 0.03: Range("C11").Value = 0.028 Range("C18").Value = 1.05 Case 0.04: Range("C11").Value = 0.028 Range("C18").Value = 1.4 ElseIf Target.Address = "$D$10" Then Select Case Target.Value Case 0.04: Range("D11").Value = 0.028 Case 0.045: Range("D11").Value = 0.028 Case 0.06: Range("D11").Value = 0.028 Case 0.075: Range("D11").Value = 0.027 Case 0.08: Range("D11").Value = 0.027 Case 0.09: Range("D11").Value = 0.027 Case 0.1: Range("D11").Value = 0.027 Case 0.105: Range("D11").Value = 0.027 Case Else: Range("D10").Value = "" Range("D11").Value = "" End Select ElseIf Target.Address = "$E$10" Then Select Case Target.Value Case 0.04: Range("E11").Value = 0.028 Case 0.045: Range("E11").Value = 0.028 Case 0.06: Range("E11").Value = 0.028 Case 0.075: Range("E11").Value = 0.027 Case 0.08: Range("E11").Value = 0.027 Case 0.09: Range("E11").Value = 0.027 Case 0.1: Range("E11").Value = 0.027 Case 0.105: Range("E11").Value = 0.027 Case Else: Range("E10").Value = "" Range("E11").Value = "" End Select
Je répète chaque fois le même code jusqu’à la cellule J10 en modifiant donc que les cellules.
Je voudrais donc savoir si je peux regrouper mes codes dans une seule condition et éviter ainsi l’erreur 28.
Mon essai qui ne fonctionne pas :
Pourriez-vous m’aider une fois de plus svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ElseIf Target.Address = "$D$10 : $J$10" Then Select Case Target.Value Case 0.04: Range("D11 :J11").Value = 0.028 Case 0.045: Range("D11 :J11").Value = 0.028 Case 0.06: Range("D11 :J11").Value = 0.028 Case 0.075: Range("D11 :J11").Value = 0.027 Case 0.08: Range("D11 :J11").Value = 0.027 Case 0.09: Range("D11 :J11").Value = 0.027 Case 0.1: Range("D11 :J11").Value = 0.027 Case 0.105: Range("D11 :J11").Value = 0.027 Case Else: Range("D10 :J11").Value = "" Range("D11 :J11").Value = "" End Select![]()
Partager