K
kaze
Guest
Bonjour à tous
J'aimerais comprendre une macro qui effectue différents calculs. Quelqu'un pourrait il m'expliquer les différentes lignes de code en particulier celles en gras? Au début il y a 2 lignes pour set Topcel avec 2 ranges différents??
Merci par avance.
Sub ValueArea()
Dim TopCel As Range
Set TopCel = Range('H2:L2')
Range(TopCel, TopCel.End(xlDown)).ClearContents
Set TopCel = Range('A2')
'Pour affichage
Dim k As Integer
k = 1
Dim TargetCel1, TargetCel2, TargetCel3, TargetCel4, TargetCel5 As Range
Set TargetCel1 = Range('H2')
Set TargetCel2 = Range('I2')
Set TargetCel3 = Range('J2')
Set TargetCel4 = Range('K2')
Set TargetCel5 = Range('L2')
While Not IsEmpty(TopCel)
'Determination du range
Dim varRowsCount As Integer
varRowsCount = 1
While TopCel(varRowsCount + 1) = TopCel
varRowsCount = varRowsCount + 1
Wend
Dim varHigh, varLow, varN As Integer
varHigh = Application.Max(Range(TopCel(1, 4), TopCel(varRowsCount, 4)))
varLow = Application.Min(Range(TopCel(1, 5), TopCel(varRowsCount, 5)))
varN = varHigh - varLow + 1
Dim varDailyRange() As Integer
ReDim varDailyRange(1 To varN)
Dim i As Integer
For i = 1 To varN
varDailyRange(i) = varLow + i - 1
Next i
Note: Le code continue mais pour ne pas décourager les bonnes volontés par une longueur trop importante je m'arrête là.
Bonne journée
J'aimerais comprendre une macro qui effectue différents calculs. Quelqu'un pourrait il m'expliquer les différentes lignes de code en particulier celles en gras? Au début il y a 2 lignes pour set Topcel avec 2 ranges différents??
Merci par avance.
Sub ValueArea()
Dim TopCel As Range
Set TopCel = Range('H2:L2')
Range(TopCel, TopCel.End(xlDown)).ClearContents
Set TopCel = Range('A2')
'Pour affichage
Dim k As Integer
k = 1
Dim TargetCel1, TargetCel2, TargetCel3, TargetCel4, TargetCel5 As Range
Set TargetCel1 = Range('H2')
Set TargetCel2 = Range('I2')
Set TargetCel3 = Range('J2')
Set TargetCel4 = Range('K2')
Set TargetCel5 = Range('L2')
While Not IsEmpty(TopCel)
'Determination du range
Dim varRowsCount As Integer
varRowsCount = 1
While TopCel(varRowsCount + 1) = TopCel
varRowsCount = varRowsCount + 1
Wend
Dim varHigh, varLow, varN As Integer
varHigh = Application.Max(Range(TopCel(1, 4), TopCel(varRowsCount, 4)))
varLow = Application.Min(Range(TopCel(1, 5), TopCel(varRowsCount, 5)))
varN = varHigh - varLow + 1
Dim varDailyRange() As Integer
ReDim varDailyRange(1 To varN)
Dim i As Integer
For i = 1 To varN
varDailyRange(i) = varLow + i - 1
Next i
Note: Le code continue mais pour ne pas décourager les bonnes volontés par une longueur trop importante je m'arrête là.
Bonne journée