Bonjour tout le monde,
D'après le FAQ de Skyroad, il est possible d'utiliser le code ci dessous en utilisant une seule variable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim i As Long If Sh.Name <> "Feuil1" Or Target.Address(0, 0) <> "G26" Then Exit Sub While Sh.Range("G26") > Worksheets("Fusible").Range("A" & i + 3) i = i + 1 Wend Sh.Range("G27") = Worksheets("Fusible").Range("A" & i + 3) If Sh.Range("G26") = "" Then Sh.Range("G27") = "" End If End Sub
Donc je m'étais dit que je pouvais extrapoler ce système avec un nombre indéfini de variable (par la suite, je me suis rendu compte que ce que j'avais supposé était faux)
J'ai voulu appliquer le code suivant (pour une application differente de la première) :
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
40
41
42 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim m As Integer, n As Integer, p As Integer If Sh.Name <> "Feuil1" Or Target.Address(0, 0) <> "G14" Then Exit Sub If Sh.Name <> "Feuil1" Or Target.Address(0, 0) <> "K10" Then Exit Sub For p = 1 To 5 If Worksheets("Feuil1").Range("G14") = Worksheets("Feuil2").Cells(27, 1 + p) Then Exit For End If Next If ComboBox1.Value = Worksheets("Feuil3").Range("A2") Then For m = 1 To 5 If Dispo.Value = Worksheets("Feuil2").Cells(12, m + 1) Then Exit For End If Next For n = 1 To 12 If Worksheets("Feuil1").Range("G14") = Worksheets("Feuil2").Range("A" & 12 + n) Then Exit For End If Next Worksheets("Feuil2").Range("B2") = Worksheets("Feuil2").Cells(12 + n, m + 1) * Worksheets("Feuil2").Cells(28, 1 + p) ElseIf ComboBox1.Value = Worksheets("Feuil3").Range("A1") Then For n = 1 To 12 If Worksheets("Feuil1").Range("G14") = Worksheets("Feuil2").Range("K" & 12 + n) Then Exit For End If Next Worksheets("Feuil2").Range("B2") = Worksheets("Feuil2").Range("L" & n + 12) * Worksheets("Feuil2").Cells(28, 1 + p) End If End Sub
Problème : quand je touche soit à la cellule "G14" en "Feuil1", soit à la cellule "K10" de la "Feuil1", le code affiche un message d'erreur comme étant une "forme ambiguë".
je voudrais savoir quelle(s) modification(s) apporter afin de gérer un résultat (ici, en "B2" de la "Feuil2") en fonction de plusieurs variables (ici, 2)
Merci de votre attention.
PS : si vous avez des pistes au niveau du tutoriel et/ou du FAQ, je suis preneur car j'ai cherché toute l'après midi, et je dois admettre que je sèche un peu
Partager