bonjour
Maintenant que j'ai créée toutes mes macros, j'aimerais pouvoir toutes les mettre dans une meme est unique macro, pour me faciliter la tache, fini d'activiver 12 macros, mais une seul qui lance tous les calculs.
Ayant fait un peu de C, il y a longtemps, donc je n'en ai plus que de vague souvenir.
Je sais commen structurer mes sous-macros, mais j'ai malheuresement un porblème,sa ne marche plus du tout, trop de problème de blocage.
http://cjoint.com/?hhi4OvBTcN
Voila mon Prog
S'il était possible de me montrer comment faire sur une partie de mon prog, me mettre le commencement, sur 4 modules
basetime module5
entry module6
cumul module8
ext module 7
et j'adapterai en rajoutant le reste, mais c'est déja sur cette mise en commun que ma macro ne marche plus
Sub Programme()
Dim i As Variant
Dim g As Range
Dim DebBase As Date
' Calcul la base du temps
DebBase = Int(Range("B5") * 24) / 24
'Saisie du nombre d'itération de la boucle
Do
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Loop Until (Val(i) > 0) And (Val(i) < 257)
L = DebBase
'Efface la plage G5:Gxxx
Range("G5:G" & Range("G65536").End(xlUp).Row).ClearContents
'Affecte les temps dans les cellules
For Each g In Range("G5:G" & Val(i) + 4)
g = L
L = L + TimeValue("00:01:00")
'par offset (0,1) on affecte la cellule de droite
g.Offset(0, 1) = L
Next g
Dim z As Range, x%
'Efface la plage K5:Kxxx
Range("K5:K" & Range("K65536").End(xlUp).Row).Select
Selection.ClearContents
For p = 5 To Range("B65536").End(xlUp).Row
For Each z In Range("G5:G" & i + 4)
If Cells(p, 2).Value > Range("G" & z.Row).Value Then
If Cells(p, 2).Value < Range("H" & z.Row).Value Then
If Cells(p, 4).Value = "Entry" Then
Cells(z.Row, 11).Value = Cells(z.Row, 11).Value + 1
Exit For
End If
End If
End If
Next z
Next p
Dim w As Integer
Dim total As Long
Dim ind As Integer
Dim lig As Integer
lig = 9
ind = 4
total = 0
For j = 1 To 87
' en fonction du nombre de valeurs à cumuler
For w = 1 To 10
total = total + Range("K" & w + ind).Value
Range("L" & lig).Value = total
Next w
ind = ind + 1
lig = lig + 1
total = 0
Next j
Dim v As Range, y%
Range("M5:M" & Range("M65536").End(ylUp).Row).Select
Selection.ClearContents
For o = 5 To Range("B65536").End(ylUp).Row
For Each v In Range("G5:G" & i + 4)
If Cells(o, 2).Value > Range("G" & v.Row).Value Then
If Cells(o, 2).Value < Range("H" & v.Row).Value Then
If Cells(o, 4).Value = "Exit" Then
Cells(v.Row, 13).Value = Cells(v.Row, 13).Value + 1
Exit For
End If
End If
End If
Next v
Next o
Dim u As Integer
Dim totall As Long
Dim indd As Integer
Dim ligg As Integer
ligg = 9
indd = 4
totall = 0
For j = 1 To 87
' en fonction du nombre de valeurs à cumuler
For u = 1 To 10
totall = totall + Range("M" & u + indd).Value
Range("N" & ligg).Value = totall
Next u
indd = indd + 1
ligg = ligg + 1
totall = 0
Next j
End Sub
Merci d'avance
Maintenant que j'ai créée toutes mes macros, j'aimerais pouvoir toutes les mettre dans une meme est unique macro, pour me faciliter la tache, fini d'activiver 12 macros, mais une seul qui lance tous les calculs.
Ayant fait un peu de C, il y a longtemps, donc je n'en ai plus que de vague souvenir.
Je sais commen structurer mes sous-macros, mais j'ai malheuresement un porblème,sa ne marche plus du tout, trop de problème de blocage.
http://cjoint.com/?hhi4OvBTcN
Voila mon Prog
S'il était possible de me montrer comment faire sur une partie de mon prog, me mettre le commencement, sur 4 modules
basetime module5
entry module6
cumul module8
ext module 7
et j'adapterai en rajoutant le reste, mais c'est déja sur cette mise en commun que ma macro ne marche plus
Sub Programme()
Dim i As Variant
Dim g As Range
Dim DebBase As Date
' Calcul la base du temps
DebBase = Int(Range("B5") * 24) / 24
'Saisie du nombre d'itération de la boucle
Do
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Loop Until (Val(i) > 0) And (Val(i) < 257)
L = DebBase
'Efface la plage G5:Gxxx
Range("G5:G" & Range("G65536").End(xlUp).Row).ClearContents
'Affecte les temps dans les cellules
For Each g In Range("G5:G" & Val(i) + 4)
g = L
L = L + TimeValue("00:01:00")
'par offset (0,1) on affecte la cellule de droite
g.Offset(0, 1) = L
Next g
Dim z As Range, x%
'Efface la plage K5:Kxxx
Range("K5:K" & Range("K65536").End(xlUp).Row).Select
Selection.ClearContents
For p = 5 To Range("B65536").End(xlUp).Row
For Each z In Range("G5:G" & i + 4)
If Cells(p, 2).Value > Range("G" & z.Row).Value Then
If Cells(p, 2).Value < Range("H" & z.Row).Value Then
If Cells(p, 4).Value = "Entry" Then
Cells(z.Row, 11).Value = Cells(z.Row, 11).Value + 1
Exit For
End If
End If
End If
Next z
Next p
Dim w As Integer
Dim total As Long
Dim ind As Integer
Dim lig As Integer
lig = 9
ind = 4
total = 0
For j = 1 To 87
' en fonction du nombre de valeurs à cumuler
For w = 1 To 10
total = total + Range("K" & w + ind).Value
Range("L" & lig).Value = total
Next w
ind = ind + 1
lig = lig + 1
total = 0
Next j
Dim v As Range, y%
Range("M5:M" & Range("M65536").End(ylUp).Row).Select
Selection.ClearContents
For o = 5 To Range("B65536").End(ylUp).Row
For Each v In Range("G5:G" & i + 4)
If Cells(o, 2).Value > Range("G" & v.Row).Value Then
If Cells(o, 2).Value < Range("H" & v.Row).Value Then
If Cells(o, 4).Value = "Exit" Then
Cells(v.Row, 13).Value = Cells(v.Row, 13).Value + 1
Exit For
End If
End If
End If
Next v
Next o
Dim u As Integer
Dim totall As Long
Dim indd As Integer
Dim ligg As Integer
ligg = 9
indd = 4
totall = 0
For j = 1 To 87
' en fonction du nombre de valeurs à cumuler
For u = 1 To 10
totall = totall + Range("M" & u + indd).Value
Range("N" & ligg).Value = totall
Next u
indd = indd + 1
ligg = ligg + 1
totall = 0
Next j
End Sub
Merci d'avance