Compteur mois par mois

Résolu
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006 - 8 mars 2006 à 11:48
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 8 mars 2006 à 14:50
Bonjour à tous,

Pourriez vous m'aider à écrire le code VBA pour faire l'opération suivante: voici mes données de départ :


<COLGROUP>
<COL width=35>
<COL width=71>

----

ID ,
Trade,
----

3145,
20-Sep-05,
----

3154,
20-Sep-05,
----

3183,
27-Sep-05,
----

3203,
30-Sep-05,
----

3240,
11-Oct-05,
----

3249,
12-Oct-05,
----

3272,
18-Oct-05,
----

3300,
21-Oct-05,
----

3388,
4-Nov-05,
----

3421,
9-Nov-05,
----

3424,
9-Nov-05,
----

3481,
18-Nov-05,
----

3502,
23-Nov-05,
----

3503,
23-Nov-05,
----

3572,
5-Dec-05,
----

3627,
14-Dec-05,
----

3647,
16-Dec-05,
----

3659,
19-Dec-05,
----

3670,
21-Dec-05,
----

3710,
30-Dec-05,
----

3711,
3-Jan-06,
----

3718,
4-Jan-06,
----

3729,
5-Jan-06,
----

3813,
20-Jan-06,
----

3894,
2-Feb-06,
----

3902,
6-Feb-06

Pour simplifier, je souhaite faire une macro qui me fasse une somme du nombre de lignes pour lesquelles le mois et l'année sont identiques.
Perso j'arrive juste à sommer les lignes qui ont la date identique au jour prêt, loool, et cette info ne me sert absolument à rien.

voila merci d'avance

7 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 mars 2006 à 14:50
Re,

Attention dans ta definition de variable, il n y a que Date2 qui est du type Date (SI JE NE ME TROMPE PAS), MyDate et Date1 sont de type Variant.

Essaie le code suivant:

Dim MyDate As Date
Dim DateDebut As Date
Dim DateFin As Date
Dim DateCellule As Date
Dim NumLigne As Long
Dim NombredeFois As Integer
Dim LigneResultat As Long



DateDebut = CDate(Range("B" & 2).Value) ' Premier date de l'intervale
DateFin = CDate(Range("B" & 27).Value) ' A remplacer par la derniere date de l'intervale
MyDate = DateDebut


LigneResultat = 2Do Until (Month(MyDate) Month(DateFin) + 1) And (Year(MyDate) Year(DateFin))

NumLigne = 2
NombredeFois = 0 For NumLigne 2 To 27 '(27 dernier ligne ecrite)
DateCellule = CDate(Range("B" & NumLigne).Value) If (Month(MyDate) Month(DateCellule)) And (Year(MyDate) Year(DateCellule)) Then NombredeFois = NombredeFois + 1
Next

Range("C" & LigneResultat).Value = Month(MyDate) & "/" & Year(MyDate) & ":" & NombredeFois
LigneResultat = LigneResultat + 1
MyDate = DateAdd("M", 1, MyDate)
Loop

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 mars 2006 à 12:14
Salut,

Est ce que ces données sont dans une feuille excel?

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
8 mars 2006 à 12:17
tout à fait
0
titi035 Messages postés 173 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 10 mai 2010
8 mars 2006 à 13:48
Salut,



Tu peux utiliser une combinaison des fonctions SI() et MOIS()

explications pour décembre:

Tu crées une colonne et tu met la fonctions =SI(MOIS(Trade)=12;1;0)

ça va te donner une colonnes de 1 et de 0. t'a plus qu'à faire la SOMME
de cette colonne dans une cellule quelque part dans ta feuille.



Pour une meilleure lisibilité, tu peux éventuellement créer une feuille pour ce calcul.



A+,

Titi035
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 mars 2006 à 14:18
Re:

Est ce que les mois et annee egaux (les lignes a compter) sont l'une en dessous de l'autre.

Exemple (le tien)

Contre exemple
.... 20-Sep-05
.... 21-Sep-05
.... 05-Nov-05
.... 08-Nov-05
.... 22-Sep-05

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
8 mars 2006 à 14:21
oui
0
geric57 Messages postés 10 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 mars 2006
8 mars 2006 à 14:24
En fait je pense pas que ça reglerai mon problème:

Je vais poser le problème autrement. Par exemple, j'ai la boucle suivante.

Sub ()

Dim MyDate, Date1, Date2 as Date

For MyDate = Date1 To Date2
.........
Next

End Sub

Je voudrait que MyDate prenne les valeurs de Date1 ä Date2 de mois en mois (et non de jour en jour)
0
Rejoignez-nous