Aide VBA, Somme de chaque ligne d'un tableau - VB/VBA/VBS - Programmation
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 …
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 :
|
Et hop !
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