D UNE MACRO pour créer un cycle
bonjour à tous
j'aurais besoin d'un sérieux coup de main pour faire une macro qui permet à l’utilisation qui dispose d'un tableau de créer un cycle de conduite complet en remplissant les champs suivant pour chaque étape du cycle :
- Vitesse de début (km/h)
- Vitesse de fin (km/h)
- Durée (s)
Les trois colonnes bleues suivantes indiquent le nombre de pas, la durée du pas et le cumul de temps. Elles sont automatiquement générées à partir des données utilisateur.
Le programme associé au bouton « Créer cycle » s’occupe ensuite de traduire les informations renseignées dans le tableau précédent afin de créer un cycle exploitable.
Le programme calcul l’évolution de tous les paramètres du véhicule et du cycle à chaque pas de temps :
- Temps (s)
- Incrément (s)
- Vitesse (km/h et m/s)
- Distance instantanée (m)
- Distance totale parcourue (m)
- Accélération (m/s²)
actuellement le parcours total est de 2 km environs je voudrais environs le rallonger à 10 km
pour se faire il faudrais rallongé les intervalle de pause de 30 sec ( quand Vitesse =0) et allongé les 9 paliers de 15 sec ensuite le dupliqué 3 fois pour faire augmenter en 3 fois la distance
mais comment faire ?
je suis un novice en macro et si je dois faire sa avec des formules je ne sait pas comment procedé .
je vous donne le fichier pour mieux comprendre
et je vous remerci d'avance .
-- 16 Mai 2011, 15:34 --
bon j'ai trouvé le programme macro
pour ceux que sa interrése voici le programme
Private Sub CommandButton1_Click()
'//////////////////////////Efface le cycle précédent
Range("A4:A200").ClearContents
Range("J6:P1184").ClearContents
Sheets("data cycle").Range("AJ1:AP1184").ClearContents
'//////////////////////////Variables utilisées
Dim NombrePhases As Integer
Dim NombreCellule As Integer
Dim TempsCycle As Variant
Dim Vitesse As Variant
Dim Step As Variant
Dim VitesseDepart As Integer
Dim VitesseArrivee As Integer
Dim NombrePas As Variant
Dim Acceleration As Variant
Dim Distance As Variant
Dim DistanceParcourue As Variant
Dim A As Variant
'//////////////////////////Calcul du nombre de phases
For i = 4 To 200
If Range("D" & i) = Empty Then
Else
Range("A" & i) = i - 3
NombrePhases = Range("A" & i)
End If
Next
'//////////////////////////Calcul du nombre de cellule du cycle
For i = 4 To NombrePhases + 3
NombreCellule = NombreCellule + Range("E" & i)
Next
'//////////////////////////Conditions initiales pour le cycle
VitesseDepart = Range("B4")
VitesseArrivee = Range("C4")
NombrePas = Range("E4")
Step = Range("F4")
A = 4
'//////////////////////////Etape initial
Range("J5") = 0
Range("K5") = Step
Range("M5") = (VitesseDepart / 3.6) + (VitesseArrivee - VitesseDepart) / (3.6 * NombrePas)
Range("L5") = Range("M5") * 3.6
Range("N5") = Range("M5") * Range("K5")
Range("O5") = Range("N5")
Range("P5") = (Range("M5") - VitesseDepart) / Range("K5")
TempsCycle = Range("K5")
'//////////////////////////Calcul du cycle
For i = 6 To NombreCellule + 4
Vitesse = Range("M" & i - 1) + (VitesseArrivee - VitesseDepart) / (3.6 * NombrePas)
If Application.RoundDown(Abs(Vitesse), 3) = 0 Then
Vitesse = 0
End If
Distance = Vitesse * Step
DistanceParcourue = DistanceParcourue + Distance
Range("J" & i) = TempsCycle
Range("K" & i) = Step
Range("L" & i) = Vitesse * 3.6
Range("M" & i) = Vitesse
Range("N" & i) = Distance
Range("O" & i) = DistanceParcourue
Acceleration = (Range("M" & i) - Range("M" & i - 1)) / Step
Range("P" & i) = Acceleration
TempsCycle = TempsCycle + Range("K" & i)
If Application.RoundDown(Abs(TempsCycle - Range("G" & A)), 3) = 0 Then
Step = Range("F" & A + 1)
NombrePas = Range("E" & A + 1)
VitesseDepart = Range("B" & A + 1)
VitesseArrivee = Range("C" & A + 1)
A = A + 1
End If
Next
'//////////////////////////Copie du cycle dans une autre feuille
Sheets("data cycle").Range("AJ1:AP1184").Value = Range("J1:P1184").Value
End Sub
Bonjour hakim,
Voici la macro qui permet de générer les données et les graphiques que tu veux.
Tu n'as qu'à ajouter les infos voulues dans les colonnes B, C et D (sans laisser de lignes vides entre les données).
Tu peux aussi ajuster l'échelle de l'abscisse des graphiques.
Note que je me suis permis de corriger les calculs dans les colonnes N et O.
En effet, pour une accélération constante, la formule pour calculer le déplacement est celle=ci : d2 = d1 + v1*t + 0.5*a*t^2
A+