Golan2
Messages postés6Date d'inscriptionvendredi 2 novembre 2007StatutMembreDernière intervention16 octobre 2009
-
28 sept. 2008 à 15:21
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
29 sept. 2008 à 09:57
Bonjour,
j'ai un problème de compteurs à résoudre pour lequel j'ai besoin de vos lumières.
Je cherche à catégoriser un certain nombre (variable) de documents en fonction de deux paramètres :
- paramètre_1 : "service" pouvant prendre 23 valeurs possibles
- paramètre_2 : "ancienneté" pouvant prendre 4 valeurs possibles.
Dans une feuille je met :
- en colonne1 le nom du document
- en colonne 9 le service
- et en colonne 10 l'ancienneté.
Je souhaite créer un tableau (plus loin dans ma feuille) de dimension :
- 23 lignes pour le service
- 4 colonnes pour l'ancienneté
Pour ce faire j'ai réalisé la macro suivante mais celle-ci ne fonctionne pas entièrement.
Il y a un souci au niveau des compteurs et des boucles.
Voici ma macro :
Sub répartition()
Dim ligne As Integer
Dim s As Integer
Dim a As Integer
Dim comp_S1_A1 As Integer 'nom du compteur pour le service_1 et de l'ancienneté_1
(...)
Dim comp_S23_A4 As Integer 'nom du dernier compteur
ligne = 3
comp_S1_A1 = 0
(...)
comp_S23_A4 = 0
For s = 1 to 23
For p = 1 to 4
nom_compteur = designation_compteur(s, p)
Do While Cells(ligne, 1) <> ""
If Cells(ligne, 9) = identifiant_service(s) Then
If p = 1 Then
If Cells(ligne, 10) <= identifiant_ancienneté(p) Then
nom_compteur = nom_compteur + 1
End If If p 2 or p 3 Then
If Cells(ligne, 10) < = identifiant_ancienneté(p) and Cells(ligne, 10) > identifiant_ancienneté(p-1) Then
nom_compteur = nom_compteur + 1
End If
If p = 4 Then
If Cells(ligne, 10) > identifiant_ancienneté(p) Then
nom_compteur = nom_compteur + 1
End If
End If
End If
ligne = ligne + 1
Loop
Cells(s + 2, p + 16) = nom_compteur
Next
Next
End sub
----------------------------------------------------------------------
'fonction utilisée:
Function designation_compteur(service As Integer, ancienneté As integer)designation_compteur switch(service 1, ancienneté = 1, comp_S1_A1, _
(...) service 23, ancienneté 4, comp_S23_A4)
End Function
-----------------------------------------------------------------------
Function identifiant_service(nb_service As Integer)identifiant_service switch(nb_service 1, "service A", _
(...)
nb_service = 23, "service W")
End Function
-------------------------------------------------------------------------
Function identifiant_ancienneté(nb_ancienneté As Integer)identifiant_ancienneté switch(nb_ancienneté 1, 14
(...)
nb_ancienneté = 4, 40)
End Function
Si vous avez une idée, je suis sur ce problème depuis vendredi...
Merci de votre aide
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 29 sept. 2008 à 09:57
Bonjour,
Tu pourrais nous donner ton message d'erreur?
Merci
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- Le bon thème tu choisiras --