Etant débutant en VBA,je me permets de venir solliciter les "ames charitables " lol
En effet j'essaie de faire une petite macro dont l'énoncé est le suivant :
il y a un fichier ou il y a 11 colonnes ou des donnees sont deja saisies pour chque ligne Col 1 NumeroIdentifiant Col 2 Lieu Col 3 S/N Col 4 Nom Col 5 etat Col 6 Dossier Col 7 NumeroRef Col 8 Date/HeureCreationDossier Col 9 Date/HeureAppelIntervenant Col 10 Date/Heure Interventiontechnicien Col 11 Date/HeureClôture
A partir de ces données d’entrée, des pénalités sont calculées mensuellement. On ajoute aux pénalités individuelles (disponibilité d’un équipement) les pénalités globales (disponibilité du parc informatique dans son ensemble). Voici les éléments pour calculer ces différentes valeurs :
Taux de disponibilité par machine 95% =>Pénalités associés Indisponibilité > = à 1jours ou 10heures = 10€/ machine Indisponibilité entre 1 et 2 jours => 10€ +18 € = 28€ /machine Indisponibilité entre 2 et 3jours => 10€ +18€ + 25€ =53€/ machine Indisponibilité supérieur à 3jours => 53€ + 25€/jour supplémentaire / machine
Taux de disponibilité du parc 98% =>Pénalités associés entre 97 et 97.99% 1500€ entre 96 et 96.99% 3000€ entre 0 et 95.99% 4500€
Voici le code que j'ai commence a faire
Code :
Sub reparations()
'On selectionne le classeur et on active la feuille
Dim classeur As Workbook
Set classeur = Workbooks("PenalitesMois.xlsm" ) 'ici nom du classeur saisit en dur
Dim maFeuille As Worksheet
Set maFeuille = classeur.Worksheets(1) 'on suppose que les donnees sont sur la feuille 1
classeur.Activate
maFeuille.Activate
'Je suppose que la feuille possede deja des donnees
' et d'apres le cahier des charges soit 11 colonnes
'et j'ai suppose egalement que les dates sont ordonnees.
Dim moisACalcul As Byte
moisACalcul = Application.InputBox("Saisissez le mois dont vous souhaitez y calculer les pénalités (de 1 à 12) " )
'Faire une gestion d'erreur ou cas ou ce n'est pas un mois entre 1 et 12
Call CalculPenaliteQuelMois(moisACalcul)
End Sub
Function CalculPenaliteQuelMois(MoisACalculer)
'cette boucle va permettre de trouver la premiere ligne du mois duquel on souhaite y calculer les penalites.
'pour 2 jusqu'a la derniere ligne ou il y a des donnees d'ecrites
For ligne = 2 To Range("A" & Rows.Count).End(xlUp).Row
'si le mois de la cellule recuperer est different du mois ou il faut calculer les penalites
If Month(Cells(ligne, 9)) <> MoisACaluler Then
'on fait un compteur
compteur = compteur + 1
'le compteur va m'indiquer a quelle ligne le mois a calculer commence
Else
'ici on force la sortie de la boucle et on recupere Compteur
End If
Next
ActiveRow.Select = compteur ' la ligne active devient la ligne ou on a trouve le mois a calculer
ActiveRow.Activate = compteur
'Cette boucle me servir a indiquer le nombre de ligne du mois duquel on souhaite y calculer les pénalités.
For i = compteur To Range("A" & Rows.Count).End(xlUp).Row
If Month(Cells(ligne, 9)) = MoisACaluler Then
compteur2 = compteur2 + 1
'ce compteur me comptera le nombre de ligne ou il y a le mois dont on doit calculer les penalites.
Else
' ici on force la sortie de la boucle et on recupere Compteur2
End If
Next
For i = compteur To compteur2
'on fait le calcul du mois a calculer.
'on recupere les nombres de jours ouvres entre deux dates qui correspond a la penalite d'une intervention.
Dim nbJoursOuvres As Long
'va m'indiquer le nombre de jour entre la date appel xerox et la cloture du dossier.
MsgBox "la penalite du mois duquel on a souhaite calculer la penalite est de " & SommePenaliteDuMois
End Function
N'ayant pas le fichier qui contient les données a tester et étant vraiment pas TIP /TOP programmeur je viens demander de l'aide..
A savoir si le code répond un peu a l'énoncé ?si il y a d'éventuel correction ou critiques ?Je suis preneur de toutes infos qui pourrait me faire avancer..
Marsh Posté le 19-12-2011 à 23:57:04
Bonjour à tous et a toutes =)
Etant débutant en VBA,je me permets de venir solliciter les "ames charitables " lol
En effet j'essaie de faire une petite macro dont l'énoncé est le suivant :
il y a un fichier ou il y a 11 colonnes ou des donnees sont deja saisies pour chque ligne
Col 1 NumeroIdentifiant
Col 2 Lieu
Col 3 S/N
Col 4 Nom
Col 5 etat
Col 6 Dossier
Col 7 NumeroRef
Col 8 Date/HeureCreationDossier
Col 9 Date/HeureAppelIntervenant
Col 10 Date/Heure Interventiontechnicien
Col 11 Date/HeureClôture
A partir de ces données d’entrée, des pénalités sont calculées mensuellement. On ajoute aux pénalités individuelles (disponibilité d’un équipement) les pénalités globales (disponibilité du parc informatique dans son ensemble). Voici les éléments pour calculer ces différentes valeurs :
Taux de disponibilité par machine 95%
=>Pénalités associés
Indisponibilité > = à 1jours ou 10heures = 10€/ machine
Indisponibilité entre 1 et 2 jours => 10€ +18 € = 28€ /machine
Indisponibilité entre 2 et 3jours => 10€ +18€ + 25€ =53€/ machine
Indisponibilité supérieur à 3jours => 53€ + 25€/jour supplémentaire / machine
Taux de disponibilité du parc 98%
=>Pénalités associés
entre 97 et 97.99% 1500€
entre 96 et 96.99% 3000€
entre 0 et 95.99% 4500€
Voici le code que j'ai commence a faire
N'ayant pas le fichier qui contient les données a tester et étant vraiment pas TIP /TOP programmeur je viens demander de l'aide..
A savoir si le code répond un peu a l'énoncé ?si il y a d'éventuel correction ou critiques ?Je suis preneur de toutes infos qui pourrait me faire avancer..
Merci a tous et a toutes =)..