madjb
Messages postés38Date d'inscriptionmercredi 31 octobre 2007StatutMembreDernière intervention 7 février 2014
-
24 avril 2008 à 10:44
madjb
Messages postés38Date d'inscriptionmercredi 31 octobre 2007StatutMembreDernière intervention 7 février 2014
-
25 avril 2008 à 19:08
Bonjour forum !
Je viens à vous pour une petite question technique sur les sommes:
J'ai plusieurs tableaux ou des chiffres sont enregistrés par mois:
- la première colonne affiche les mois telque janv-07 fev-07 etc...
- les autres colonnes affichent des chiffres par categories
- les tableaux ne commencent pas aux même dates, certains peuvent commencer en 2006 d'autre en 2008
Ma question:
Je ne sais pas comment m'y prendre pour rechercher dans la première
colonne tous les "06" par exemple et de lui dire d'additionner les
chiffres qui correspondent pour obtenir la somme sur l'année 2006.
Le but étant de remplir un tableau
J'espère avoir été assez clair au niveau des explications
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 avril 2008 à 23:20
Tu as 2 possibilités: formules Excel ou VBA
Pour chacune de ces possibilités, il y en a plusieurs autres...
L'important est de savoir "Est-ce que c'est important de passer par VBA ?"
Si non, tu utilises une colonne vide comme je t'ai dit et tu copies la formule
= ANNEE(A1)
si la date est bien dans la colonne A et si la date est bien au format Date, sinon il faudrait utiliser
=DROITE(A1;2) 'pour ressortir les 2 derniers caractères ou 4 au besoin
Reste à voir le format qui en ressortira. DROITE va te donner 06. ANNEE pourrait sortir 2006 ou 06 (?). Mais l'important c'est que tu aies ressorti l'année.
Dans une autre colonne, tu fais un SOMME.SI
Disons que les années (la formule précédente) sont en Z et les valeurs à additionner en C
Tu écris dans une cellule vide à la ligne 1
=SOMME.SI(Z:Z; Z1; C:C)
et tu copies cette formule jusqu'en bas de tes données.
Maintenant, si VBA est important, tu pourrais tout simplement refaire ce que je viens d'écrire, mais en code... Mais ce n'est pas le plus propre.
Encore faut-il savoir si vraiment les cellules sont au format Date ou Texte...
Le principe est de boucler de la ligne 1 à la dernière et vérifier si l'année ou la partie de droite est celle recherchée.
nbLignes = Cells(Rows.Count, "A").End(xlUp).Row 'renvoit la dernière ligne
For i = 1 to nbLignes
If Year(Range("A" & i)) = AnneeRecherchée Then
Total = Total + Range("C" & i)
End If
Next
si au format texte
For i = 1 to nbLignes
If Right(Range("A" & i), 2) = AnnéeRecherchée_à_2Chiffres Then
Total = Total + Range("C" & i)
End If
Next
MsgBox Total
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI