Aide pour ajouter valeur

Résolu
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 15 juil. 2010 à 09:58
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 15 juil. 2010 à 11:16
salut tout le monde

j'aurais besoin d'aide

je voudrais regrouper des valeurs contenue dans une feuille excel sous forme de base de donnée en fonction de 2 conditions et ensuite additionner ces valeur ensemble pour les réutilisée dans un calcul dans la meme macro.

je vous présente mon code :

Sub TRL_Mois()
Dim Rea As Variant, NC As Variant, Tps As Variant

For x = 1 To 12 'ici avec le x me sert à changer de colonne quand les i sont fini'
For i = 2 To 1000'ici je boucle pour lire toute les lignes'
If Sheets("Sachets").Range("D" & i).Value = Sheets("Stat Sachets").Cells(9, x + 4).Value And _ 'première condition'
Sheets("Sachets").Range("F" & i).Value = Sheets("Stat Sachets").Range("D10").Value Then'deusième condition

'cest ici que je galère je pense que je m'y prend mal'
Rea(i) = Rea(i - 1) + Sheets("Sachets").Range("K" & i).Value'ici j'essaye d'ajouterla valeur de Ki à la précédente valeur de Rea'
NC(i) = NC(i - 1) + Sheets("Sachets").Range("AB" & i).Value'idem avec ABi et NC
Tps(i) = Tps(i - 1) + ((Sheets("Sachets").Range("N" & i).Value) - (Sheets("Sachets").Range("O" & i).Value * 20) - (Sheets("Sachets").Range("P" & i).Value * 10)) 'là je tente une opération avec 3 référence de cellule'


' pour la fin je pnse pas avoir d'erreur mais bon sait on jamais. ah oui!! entre le next i et le next x je met une formule en espérant quelle soit faite à chaque que la boucle i et finie... est ce que ca marche vraiment comme ca??
End If
Next i
If Tps <> "" Then
Sheets("Stat Sachets").Cells(10, 4 + x).Value = ((CDec(Rea - NC) / CDec(Tps)) / 27)
End If

Next x

End Sub

en espérant que vous puissiez m'aider
Jacky

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
15 juil. 2010 à 10:53
Salut,
Sub TRL_Mois()
   Dim Rea() As Variant, NC() As Variant, Tps() As Variant
   Dim i as integer, x as integer, NbLigne as integer, NbColonne as integer

   NbLigne = 1000
   NbColonne = 12
   Redim Rea(NbLigne*NbColonne)
   Redim NC(NbLigne*NbColonne)
   Redim Tps(NbLigne*NbColonne)
   For x = 1 To NbColonne 'ici avec le x me sert à changer de colonne quand les i sont fini'
      For i = 2 To NbLigne'ici je boucle pour lire toute les lignes'
         If Sheets("Sachets").Range("D" & i).Value = Sheets("Stat Sachets").Cells(9, x + 4).Value And _ 'première condition'
            Sheets("Sachets").Range("F" & i).Value = Sheets("Stat Sachets").Range("D10").Value Then'deusième condition

            'cest ici que je galère je pense que je m'y prend mal'
            Rea(i) = Rea(i - 1) + Sheets("Sachets").Range("K" & i).Value'ici j'essaye d'ajouterla valeur de Ki à la précédente valeur de Rea'
            NC(i) = NC(i - 1) + Sheets("Sachets").Range("AB" & i).Value'idem avec ABi et NC
            Tps(i) = Tps(i - 1) + ((Sheets("Sachets").Range("N" & i).Value) - (Sheets("Sachets").Range("O" & i).Value * 20) - (Sheets("Sachets").Range("P" & i).Value * 10)) 'là je tente une opération avec 3 référence de cellule'


            ' pour la fin je pnse pas avoir d'erreur mais bon sait on jamais. ah oui!! entre le next i et le next x je met une formule en espérant quelle soit faite à chaque que la boucle i et finie... est ce que ca marche vraiment comme ca??
         End If
      Next i
      If Tps <> "" Then
         Sheets("Stat Sachets").Cells(10, 4 + x).Value = ((CDec(Rea - NC) / CDec(Tps)) / 27)
      End If
   Next x
End Sub 


Pour commencer egarde le dimenssionement de tes variables tableau

A+
3
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
15 juil. 2010 à 11:16
Merci bigfish mais ca ne va pas jai des imcompatibilité de type entre rea et mes référence de cellule.

une idée??
0
Rejoignez-nous