Aide VBA, Somme de chaque ligne d'un tableau

Aide VBA, Somme de chaque ligne d'un tableau - VB/VBA/VBS - Programmation

Marsh Posté le 23-01-2013 à 10:36:22    

Bonjour,
 
Voila, j’ai un problème sur VBA.
Je réalise une macro me permettant de récolter des données de document Excel journalier fermés dans un tableau « virtuel ». Donc ca j’ai réussi à le faire apparemment.
Cependant je veux aussi faire apparaitre la somme de chaque ligne pour avoir, justement, le cumulé. Et c’est que ca fonctionne pas, en effet celui-ci m’affiche que des 0 la où je devrai avoir de 25,40…
 
Voici le code
 
 
Sub Cumul()
 
Dim tableau(365, 34) As Variant
Dim result(1, 34) As Variant
Dim annee As Integer
Dim somme As Variant
Dim tabb As Variant
 
Dim a As Integer
Dim i As Integer
Dim n As Integer
Dim r As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer 34b8ceb1d4
 
Set fs = CreateObject("Scripting.FileSystemObject" )
 
annee = Year(Now)
 
 
For i = 1 To 12
    For n = 1 To 31
 
    Fichier$ = "C:\Documents and Settings\9004076P\Bureau\Suivi de Chantier\Suivi de Chantier" & "_" & n & "_" & i & "_" & annee & ".xls"
    FichierBase$ = "Suivi de Chantier" & "_" & n & "_" & i & "_" & annee & ".xls"
 
    If fs.FileExists(Fichier$) = True Then
        r = r + 1
        Workbooks.Open (Fichier$)
        Workbooks(FichierBase$).Worksheets("Matériaux" ).Activate
 
            For a = 1 To 34
           
                Cellule$ = Sheets("Matériaux" ).Cells((9 + a), 3)
                tableau(r, a) = Cellule$
                 
            Next a
        Workbooks(FichierBase$).Close 'SaveChanges:=False
 
         
    End If
   Next n
Next i
 
For d = 1 To 34
    For e = 1 To 365
    tabb = tableau(e, d)
   
    result(1, d) = result(1, d) + tableau(e, d)
    Next e
Sheets("Feuil1" ).Cells(d, 7) = Val(somme) + Val(tabb)
Next d
 
End Sub
 
 
 
 
 
 
Pouvez m’aider  
Merci d’avance
 
je me suis surememnt mal exprimer, n'hesitez pas à me poser des question

Reply

Marsh Posté le 23-01-2013 à 10:36:22   

Reply

Marsh Posté le 23-01-2013 à 20:15:12    

 
              Pas besoin de FSO pour tester l'existence d'un fichier, surtout si on l'ouvre …
 
              Je suis p't'être fatigué ce soir mais je ne comprends pas du tout la logique dans les boucles,
              que ce soit en type de variable - conversion d'une cellule en texte pour être enregistrée dans un tableau puis
              retour en nombre pour le calcul (sans compter la définition de variables en variant, autant ne pas les définir !) -
              ou dans la conception même de ces boucles : où est donc calculée la variable somme ?
              Quelle utilité quant à la variable tabb ?
 
              Bref, pour que cela fonctionne, il faut remettre la "logique" à plat pour pouvoir effectuer un code simple et efficace ...
 
              Ou encore exprimer clairement ses besoins afin que l'on puisse tenter d'apporter de l'aide …
 

Reply

Marsh Posté le 25-01-2013 à 20:29:43    

 
               Pas de réponse ?
 
               Bref, pour ceux qui ont besoin d'une somme d'une plage de cellules en VBA,
               rien ne sert de vouloir réinventer la roue (un peu carrée comme plus haut !)
               alors qu'Excel est un tableur et a donc ses propres fonctions ‼
 
               Exemple d'une somme de la plage D11 à H20 :

Code :
  1.   Total = WorksheetFunction.Sum([D11:H20])


               Et hop !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed