Bonjour,
Après avoir repris tous vos conseils du départ jusqu'à maintenant .... je ne comprends pas une chose. (sur une explication de MARCELG)
Voila on m'a expliqué cette procédure évènementielle qui se déclenche quand je sélectionne une cellule en colonne 4 à partir de la ligne 26.
Après avoir des noms définis comme "CLI_1", "CLI_2", ..., "REC1", ... en tant que noms de cellules.
Concernant le rangement de mes résultats, ce dernier se fait dans la feuille "Nom" dans les ranges correspondants ...(CLI,REC, .... )
J'ai trois questions :
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 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' regroupement des données Dim listdon As Variant Dim lign As Byte Dim donexp As String With Target If .Column <> 4 Or .Row < 27 Then Exit Sub lign = .Row - 26 listdon = Array("CLI", "REC", "PAY", "PAY", "DS", "SF", "VD", "AMCCY1", "AMCCY2", "CCYO", "CCYT", "RATE") donexp = "" For Each donnée In listdon donexp = donexp & Range(donnée & "_" & lign) Next donnée Call crea_page Sheets(nom).Range("CLI", "REC", "PAY", "PAY", "DS", "SF", "VD", "AMCCY1", "AMCCY2", "CCYO", "CCYT", "RATE").Value = donexp End With Call TypOpe Call transvalneg End Sub
-Pourquoi mon code précédent génére une erreur à la ligne suivante en me disant que la méthode range de l'objet worksheet a échoué ?
- Dois je appeler la création de la page avant de ranger les données dans cette dernière ?? (comme le code précédent le premier code )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 donexp = donexp & Range(donnée & "_" & lign)
et
-Est ce que je dois définir les ranges dans mon modules ? Et faire une boucle comme le code suivant ?
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 Sub varcop() ' Determine destination variables ds "deal" worksheet For i = 1 To 20 CLI = Sheets(nom).Range("C6:D6") REC = Sheets(nom).Range("C14:D14") PAY = Sheets(nom).Range("C15:D15") DS = Sheets(nom).Range("C4:D4") SF = Sheets(nom).Range("C7:D7") VD = Sheets(nom).Range("C8:D8") If Worksheets("2401").Range("G" & i).Value > 0 Then AMCCY1 = Sheets(nom).Range("D11") Else AMCCY2 = Sheets(nom).Range("D12") End If If Worksheets("2401").Range("H" & i).Value < 0 Then AMCCY2 = Sheets(nom).Range("D12") Else AMCCY2 = Sheets(nom).Range("D11") End If If Worksheets("2401").Range("G" & i).Value > 0 Then CCYO = Sheets(nom).Range("C11") Else CCYO = Sheets(nom).Range("C12") End If If Worksheets("2401").Range("H" & i).Value < 0 Then CCYT = Sheets(nom).Range("C12") Else CCYT = Sheets(nom).Range("C11") End If RATE = Sheets(nom).Range("C13:D13") Next i End With Dim intcount As Integer For intcount = 1 To 11 For i = 1 To 10 Select Case intcount Case 1: CLI = Range(CLI) Case 2: REC = Range(REC) Case 3: PAY = Range(PAY) Case 4: DS = Range(DS) Case 5: SF = Range(SF) Case 6: VD = Range(VD) Case 7: AMCCY1 = Range(AMCCY1) AMCCY1 = NumberFormat = "0.0000" Case 8: AMCCY2 = Range(AMCCY2) AMCCY2 = NumberFormat = "0.0000" Case 9: CCYO = Range(CCYO) Case 10: CCYT = Range(CCYT) Case 11: RATE = Range(RATE) End Select Next i Next intcount End Sub
Partager