bonjour à tous ! =)
Voila j'ai un petit probleme, j'aimerais faire un programme qui me fasse un tableau comme suit :
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
Dans la première partie du programme, je lui demande de faire une boucle pour me créer la première colonne. Tout se passe pour le mieux.
Ensuite je fais une boucle qui fait les colonne, à l'intérieur de laquelle une fait les lignes. Par exemple à la fin de la première partie du programme, je lui demande de passer à la colonne 2. Une fois a la colonne deux, je lui demande de prendre la première cellule, d'y mettre la première cellule de la colonne 1 + A, A étant une variable qui s'initialise en temps valeur de la colonne traitée, et qui s'incrémente de 1 à chaque fois que la boucle se reproduit.
Les variables :
CMAX : nombre de colonnes max (pour moi j'aimerais le faire pour 5 mais si ça peut s'adapter ensuite au nombre que je veux c'est très bien)
LMAX nombre de lignes max (5 dans cet exemple)
L : la ligne traitée
C : La colonne traitée
VALEUR : la valeur de la cellule de excel que j'active
AL : una variable qui me permet de dire que chaque fois qu'on passe a une colonne suivante, on enleve une Ligne (Pour obtenir une matrice diagonale supérieure)
Voila .. quand je lance, la première colonne ne pause pas de problemes, mais la suivante : calcul de valeurs de 2 à 35.000 sur la colonne 2, et qui attaque ligne 6 .. comprend pas !
Quelqu'un a t il repéré quelle est mon erreur? Je suis débutant donc j'ai utilisé les codes que je connais, me proposer une autre solution pour résoudre ce probleme ne m'aidera donc peut etre pas si c'est d'un niveau plus avancé que le mien. Par contre m'expliquer pourquoi ça ne marche pas et comment je peux rectifier avec mes connaissances serait génial !
Merci d'avance ! =)
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 Sub PROG() Dim LMAX As Integer Dim CMAX As Integer Dim A As Integer Dim AL As Integer Dim L As Integer Dim C As Integer Dim VALEUR As Integer LMAX = InputBox("Lignes") CMAX = InputBox("Colonnes") A = 0 L = 1 C = 1 AL = 0 Sheets("Feuil1").Cells(1, 1) = 1 While L <> LMAX - AL + 1 If L = 1 And C = 1 Then Sheets("Feuil1").Cells(L, C) = 1 Else Sheets("Feuil1").Cells(L - 1, C).Activate VALEUR = Selection.Value Sheets("Feuil1").Cells(L, C) = VALEUR + A End If L = L + 1 A = A + 1 Wend C = C + 1 AL = AL + 1 A = C While C <= CMAX While L <> LMAX - AL + 1 Sheets("Feuil1").Cells(L, C - 1).Activate VALEUR = Selection.Value Sheets("Feuil1").Cells(L, C) = VALEUR + A L = L + 1 A = A + 1 Wend C = C + 1 AL = AL + 1 A = C Wend End If End Sub
Partager