Incrémenté des croix selon somme de valeur
Bonjour à tous,
Je reviens avec un nouveau problème qui me prend la tête depuis deux jours,
J'ai un tableau qui m'affiche des croix là ou les valeurs de la colonne L sont identique aux valeur de la ligne 1. Jusque là aucun soucis.
Seulement le problème, c'est qu'une fois que ces différente croix sont positionnées (donc des positions variables) je dois pouvoir remonter à la ligne 3 et faire la somme des nombre de la ligne 3 (Entre la colonne où se trouve ma croix et la fin du tableau) jusqu'à ce que la somme soit supérieure ou égale au résultat directement associé à la ligne où se trouve ma croix sur la colonne E.
Lorsque ce résultat est atteint, je dois pouvoir redescendre sur la ligne où se trouve ma croix et mettre une deuxième croix (et recommencer l'opération jusqu'à arrivé à la fin du tableau)
Je sais, à première vu ça parait assez imbuvable. ET naturellement cela nécessite, je pense, beaucoup de variable.
J'ai donc écrit la macro suivante qui semble répondre à mes attentes :
Sub Macro3()
Dim I As String
Range("M7:DL8007").ClearContents
Range("M7").Select
I = 6
v = -3
w = ActiveCell.Offset(0, [v]).Value
vl = 0
vv = 3
Do Until Cells(I, 12).Value = ""
For y = 13 To 104
If Cells(I, 12) = Cells(1, y) Then
Cells(I, y) = "X"
ActiveCell.Offset(0, [v]).Select
For k = w To 104
vl = vl + Cells(3, k)
If vl >= Cells(I, 5) Then
ActiveCell.Offset(0, [vv]).Value = "X"
Else
End If
Next k
Else
End If
Next y
I = I + 1
vv = vv + 1
v = v - 1
Loop
End SubSeulement, celui-ci m'affiche l'erreur 13 : "Incompatibilité de type" en me surlignant vl = vl + Cells(3, k)
Si quelqu'un vois...
Salut gmb,
Par exemple, si tu regarde la cellule L6, il y a marquer "S01"
Si on regarde sur la ligne 1 il y a de M1 à DK1 respectivement S01 à S52. Ici nous allons nous intéresser pour l'exemple à la cellule M1 où il y a marquer S01.
La première étape consite à mettre une croix à la jointure des deux. Ici il y a donc une croix à l'instersection de L6 et M1 qui renvoie tous les deux la valeur "S01" (Si L6 avais été "S02" on aurait eu une croix à l'intersection de L6 et M2 car M2 renvoie "S02" et ainsi de suite)
Donc ici une croix est placé à l'intersection des deux "S01" pour l'exemple, maintenant si tu regarde en E6 tu vois la valeur "270", l'idée est de faire la somme de la valeur sur la ligne 3 et au dessus de la croix (donc dans notre exemple la cellule M3) puis de faire la somme des autre cellule situé sur la droite jusqu'à obtenir une valeur égale ou supérieur à 270.
Une fois cette somme atteint l'idée est de descendre sur la même ligne que la croix (qui est en L6) et de mettre une nouvelle croix, et après on recommence à partir de cette nouvelle croix et ceux jusqu'à la fin du tableau tous à droite.
par exemple on veut 270 ici
Je vais en M3 et je vois 21, donc ca va pas
Je fais la somme de la valeur à droite qui est également 21 et j'ai donc 21 + 21 = 42 ca ne va pas toujours pas car 42 n'est pas supérieur ou égale a 270
Je continu encore à droite et j'ai encore 21, donc 21 + 21 + 21 = 63, c'est toujours pas ça.
Je continu ainsi de suite jusqu'à ce que ma valeur soit égale ou supérieur a 270, dans cette exemple on arrive en BK3 qui vaut 279.
Comme la somme est égale ou supérieur a 270, je descend à la ligne 6 ou se trouve ma croix en restant sur la colonne BK, donc ici j'arrive en BK6 et je met une nouvelle croix. Puis je recommence l'opération à partir de cette nouvelle croix jusqu'à atteindre une nouvelle fois une somme égale ou supérieur a 270 ou la fin du tableau
Voila voila
Bravo gmb,
Sur ce coup là, je te tire mon chapeau. C'est exactement ce que je cherchais à faire depuis deux jours, un grnad merci à toi
J'ai regarder la macro et je n'ai jamais encore utilisé plusieurs des termes qui y sont utilisé. Serait t-il possible de rajouter des commentaires que je puisse voir la technique que tu as employé ?