Somme sous vba

Khaldi

XLDnaute Nouveau
Bonjour je souhaite écrire un code qui me permet de calculer une somme dans VBA.
J ai effectuer ce code au dessous, mais après l exécution je reçois une liste de cellules sans valeurs (#VALEUR !)
C est un code assez simple.

Sub code ()
l=4
x=2
y=31
For c=28 to 74
Cells(l, c) =[SUM("x2:y2"). Select]
x=x+365
y=y+365
Next c
End sub
Je pense que l erreur vient du syntaxe de la fonction somme.
Prière de m aider.
Merci beaucoup
 

Khaldi

XLDnaute Nouveau
Bonjour,
toutes mes excuses j etais pas claire au debut.
j'ai 10 stations pluviometrique, dont chacune contient une série de données pluvio journalières de plus de 37 ans.
mon but est de réaliser un tableau contenant les données pluviométrique mais mensuelle ( Pluviométrie mensuelle moyenne) afin que je puisse ensuite les utiliser pour des calculs antérieurs.
donc comme j'ai mentionné, ma première etape est de réaliser un macro qui va me permettre d'obtenir un tableau contenant les données mensuelle ( pour chaque mois) et ce ci pour toutes les années ( suivant la station).
Merci encore.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@Khaldi [Bienvenue sur le forum]
Effectivement un fichier aiderait à y voir plus clair
NB:Ce n'est pas n'importe quoi, mais le code VBA d'un débutant qui a moins le mérite de tenter des choses ;)

En attendant le fichier, en guise de suggestion pour le demandeur ;)
(On peut interpréter les choses selon différents angles, donc ton fichier, Khaldi nous donnera le bon angle ;))
VB:
Sub code2()
Dim Ligne As Long, Col As Long
For Col = 28 To 74
Cells(4, Col) = Cells(4, Col).Column - 27
Next
Cells(4, 74 + 1) = Application.Sum(Cells(4, 28).Resize(, 47))
End Sub
Sub code3()
Dim Ligne As Long, Col As Long
Col = 4
For Ligne = 28 To 74
Cells(Ligne, Col) = Cells(Ligne, Col).Row - 27
Next
Cells(Ligne, Col).Offset(0) = Application.Sum(Cells(28, Col).Resize(47))
End Sub
 

Khaldi

XLDnaute Nouveau
voila les données d'une station, avec une serie de 46 ans.
mon objectif est de remplir le tableau des pluies mensuelles, sachant que P mensuelle=somme ( Pluies journalières) pour le mois en question.
et pour le mois de fervrier (on le prend tjs 28 jours)
Moi j'avais l’intention d'ecrire, 3 macros, pour chaque type de mois: càd, pour ceux ayant 30j, 31j et 28j.
Mais mon probleme est comment faire la somme??
Merci.
 

Pièces jointes

  • station1.xlsx
    235 KB · Affichages: 34
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Pourquoi ne pas simplement utiliser un TCD*?
(*Tableau Croisé Dynamique)
Voir ci-dessous
01Khaldi.jpg

Travail préparatoire sur la feuille où sont les données:
1) Insérer deux colonnes à partir de la colonne A
2) En A1, saisir : ANNEE et en B1 MOIS
3) en A2, mettre cette formule: = ANNEE(C2), en B2, mettre cette formule: =TEXTE(C2;"mmmm")
Puis recopier ces formules vers les bas
4) Remplacer les valeurs d'erreur et texte en colonne par 0

Et voilà ;)

NB: J'ai grouper par décade (pour un gain de place) mais on peut grouper le TCD par 2
 

Staple1600

XLDnaute Barbatruc
Re,

@Khaldi
J'ajoute une macro pour te faciliter la tâcher avant de créer le TCD.
VB:
Sub TravailPreparatoireAVANT_TCD()
Application.ScreenUpdating = False
Columns("A:B").Insert Shift:=xlToRight
Range("A2:B2").Value = Array("=YEAR(RC[2])", "=TEXT(RC[1],""mmmm"")")
With Range("A2:B2").Resize(Cells(Rows.Count, 3).End(3).Row - 1)
  .FillDown: .Value = .Value
End With
Columns("D:D").SpecialCells(xlCellTypeConstants, 18).Value = 0
Range("A1:D1") = Array("ANNEE", "MOIS", "Date", "pluie (mm)")
End Sub
 

Statistiques des forums

Discussions
314 094
Messages
2 105 816
Membres
109 432
dernier inscrit
GEORGESDEL