Une boucle qui ne rend rien
Bonjour tout le monde
je travail sur une application VBA..alors que je suis débutant en programmation VBA j'ai des problèmes si vous pouvez m'aidez s'il vous plait!
j'explique le problème ..
j'ai deux classeur l'un d'eux contient des pourcentage et l'autre contient des montant.. je dois multiplier les montants par les pourcentages et coller le résultat dans une autre feuille sur le méme classeur que les montant .. voici le code pour mieu m'expliquer.
Sub PSAP_FIN()
Dim J As Long
Dim I As Long
Dim SCR As Variant
Dim Cat As Variant
Dim temp As Variant
'''''''''''''''''''''j'initialise mes deux compteur
SCR = 0
J = 2
''''''''''''''''''''''''''''''''''''''''''''''''''j'active le classeur qui contient les montant
Workbooks("PSAP 19.xlsx").Sheets("Survenance Par Année").Activate
''''''''''''''''''''''''''''''''''''''''''''''''''je lance une boucle catégorie pour claculer pour chaque catégorie à part à la fin
For Cat = 1 To 90
''''''''''''''''''''''''''''''''''''''''''''''''''je lance ma deuxième boucle pour passer de ligne en ligne
For I = 2 To Range("A65536").End(xlUp).Row
''''''''''''''''''''''''''''''''''''''''''''''''''je vérifie si la valeur de la cellule égal à la catégorie dont je suis
If cells(I, 1) = Cat Then
''''''''''''''''''''''''''''''''''''''''''''''''''je passe maintenant au deuxième classeur et je cherche les pourcentage selon la condition qui est la date dans ce cas là..
If cells(I, 6) = 2010 Then
Workbooks("Param.xlsx").Sheets("Traité 19").Activate
temp = cells(2, 1)
ElseIf cells(I, 6) >= 2008 Then
Workbooks("Param.xlsx").Sheets("Traité 19").Activate
temp = cells(3, 1)
ElseIf cells(I, 6) >= 2005 Then
Workbooks("Param.xlsx").Sheets("Traité 19").Activate
temp = cells(5, 1)
Else: Workbooks("Param.xlsx").Sheets("Traité 19").Activate
temp = cells(8, 1)
End If
''''''''''''''''''''''''''''''''''''''''''''''''''je multiplie le montant de la cellule par le pourcentage et je lui ajoute à l'ancien somme
Workbooks("PSAP 19.xlsx").Sheets("Survenance Par Année").Activate
SCR = SCR + cells(I, 10) * temp
End If
'''''''''''''''''''''''''''''''''''''''''''''''''' je passe à la ligne suivante jusqu'à 90
Next I
''''''''''''''''''''''''''''''''''''''''''''''''''j'active à nouveau mon ancien classeur et la nouvelle feuille qui contiendra ces sommes
Workbooks("PSAP 19.xlsx").Sheets("PSAP FIN").Activate
cells(J, 3) = SCR
''''''''''''''''''''''''''''''''''''''''''''''''''je passe à la ligne suivante dans le nouveau classeur
J = J + 1
''''''''''''''''''''''''''''''''''''''''''''''''''je passe à la nouvelle catégorie
Next Cat
End Sub
le problème c'est que ça donne que des zéro.???? merci d'avance
Bonjour,
Avec les fichiers joints ça serai plus facile de t'aider je pense.
Cdt.
Bonjour
Le code se trouve dans quel fichier ? Celui des pourcentages ou des montants ?
Amcialement
Le code est dans le classeur des montants.
voilà vous trouverez ci-joint les deux classeurs dont je vous ai parlé..
Le code VBA se trouve à la feuille2 du classeur ESSAIE
mERCI
re,
Il n'y a pas de code dans la feuille2. Attention que tu es sous excel 2007 et que tu dois sauver ton fichier au format XLSM.
Ton souci vient peut être de là. si non, merci de reposter le fichier Essaie mais au format XLSM.
Autre question aussi, pourquoi fais-tu une boucle de 1 à 90 ?
D'autre part les fichiers et feuilles ne sont pas nommés. Merci de préciser.
A te relire