Calcul du nombre de ligne

Fermé
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017 - 29 mars 2017 à 16:00
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017 - 30 mars 2017 à 11:06
Bonjour,

je suis débutante en VBA j'ai une petite question
j'ai envie de calculer le nombre de sinistre que j'ai par mois mais sa ne marche pas si vous pouviez m'aider
merci
mon classeur excel est sous la forme
Date_Souscription_Adhésion en colonne a
04/01/2013
06/01/2013
18/01/2013
28/01/2013
27/01/2013
21/01/2013
08/01/2013

Date_Survenance en colonne b
23/07/2013
23/02/2013
31/01/2013
04/09/2013
01/02/2013
06/03/2013
09/01/2013



voici mon code

Sub test()

Dim Date_Souscription_Adhésion As Range 'définit les variables
Dim Date_Survenance As Range
Dim i As Integer
Dim j As Integer
Dim DernLigne1 As Long
Dim DernLigne2 As Long
Dim nblignes As Integer

Worksheets("Feuil1").Activate

DernLigne1 = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row 'définit la dernière ligne colonne A
DernLigne2 = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row 'définit la dernière ligne colonne B

Set Date_Souscription_Adhésion = Sheets("Feuil1").Range("A2:A" & DernLigne1) 'définit la colonne A
Set Date_Survenance = Sheets("Feuil1").Range("B2:B" & DernLigne2) 'définit la colonne B

nblignes = 0
' nblignes2 = 0

For i = 1 To Date_Souscription_Adhésion.Rows.Count ' boucle sur la colonne A
For j = 1 To Date_Survenance.Rows.Count ' boucle sur la colonne B

If Year(Date_Souscription_Adhésion(i, 1)) = 2013 Then 'i étant la ligne de 2 à dernière ligne et 1 la colonne A
If Month(Date_Souscription_Adhésion(i, 1)) = 1 Then
If Year(Date_Survenance(j, 1)) = 2013 Then 'j étant la ligne de 2 à dernière ligne et 1 la colonne B
If Month(Date_Survenance(j, 1)) = 7 Then
nblignes = Range("A9").End(xlUp).Row 'compter le nombre de ligne
End If
End If
End If
If Month(Date_Souscription_Adhésion(i, 1)) = 1 Then
If Year(Date_Survenance(j, 1)) = 2013 Then 'j étant la ligne de 2 à dernière ligne et 1 la colonne B
If Month(Date_Survenance(j, 1)) = 2 Then
nblignes = Range("A9").End(xlUp).Row 'compter le nombre de ligne
End If
End If
End If
End If


Next j
Next i

MsgBox "le nombre de sinistre declarer en fevrier est" & nblignes
End Sub
A voir également:

2 réponses

cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 494
29 mars 2017 à 16:12
Pourquoi ne pas avoir continué sur ton sujet précédent ?

Le code ne fonctionnait pas ?
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017
29 mars 2017 à 16:14
non sa ne marcher pas
la sa marche juste le nombre de ligne sa ne veut pas marcher
ca ne me donne pas le bon resultat
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 494
29 mars 2017 à 16:20
Et en remplaçant :

nblignes = Range("A9").End(xlUp).Row 'compter le nombre de ligne

par :

nblignes = nblignes +1
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017 > cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021
29 mars 2017 à 16:23
non plus il ne me donne pas les bonnes valeurs
je crois quil prend pas en compte les condition if juste au ddessus
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 494
29 mars 2017 à 16:33
Et si tu ré-écris les If comme ceci ?

If Year(Date_Souscription_Adhésion(i, 1)) = 2013 And Month(Date_Souscription_Adhésion(i, 1)) = 1 Then

If Year(Date_Survenance(j, 1)) = 2013 And If Month(Date_Survenance(j, 1)) = 7 Then
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017 > cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021
29 mars 2017 à 16:43
comme ca:

Sub test()

Dim Date_Souscription_Adhésion As Range 'définit les variables
Dim Date_Survenance As Range
Dim i As Integer
Dim j As Integer
Dim DernLigne1 As Long
Dim DernLigne2 As Long
Dim nblignes As Integer

Worksheets("Feuil1").Activate

DernLigne1 = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row 'définit la dernière ligne colonne A
DernLigne2 = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row 'définit la dernière ligne colonne B

Set Date_Souscription_Adhésion = Sheets("Feuil1").Range("A2:A" & DernLigne1) 'définit la colonne A
Set Date_Survenance = Sheets("Feuil1").Range("B2:B" & DernLigne2) 'définit la colonne B

nblignes = 0
nblignes2 = 0

For i = 1 To Date_Souscription_Adhésion.Rows.Count ' boucle sur la colonne A
For j = 1 To Date_Survenance.Rows.Count ' boucle sur la colonne B

If Year(Date_Souscription_Adhésion(i, 1)) = 2013 And Month(Date_Souscription_Adhésion(i, 1)) = 1 Then 'i étant la ligne de 2 à dernière ligne et 1 la colonne A
If Year(Date_Survenance(j, 1)) = 2013 And Month(Date_Survenance(j, 1)) = 7 Then 'j étant la ligne de 2 à dernière ligne et 1 la colonne B
nblignes = nblignes + 1 'compter le nombre de ligne
End If
End If
If Year(Date_Souscription_Adhésion(i, 1)) = 2013 And Month(Date_Souscription_Adhésion(i, 1)) = 2 Then 'i étant la ligne de 2 à dernière ligne et 1 la colonne A
If Year(Date_Survenance(j, 1)) = 2013 And Month(Date_Survenance(j, 1)) = 7 Then 'j étant la ligne de 2 à dernière ligne et 1 la colonne B
nblignes = nblignes + 1 'compter le nombre de ligne
End If
End If



Next j
Next i

MsgBox "le nombre de sinistre declarer en juillet est" & nblignes
MsgBox "le nombre de sinistre declarer en fevrier est" & nblignes
End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié le 30 mars 2017 à 08:55
Bonjour,

peut-^tre sans VBA en 5 minutes avec un tableau croisé dynamique (TCD)

https://mon-partage.fr/f/ghkvtvt2/

Aude, si cela te convient et que tu ne connais les TCD fais signe
 Michel
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017
30 mars 2017 à 10:14
justement je dois le faire en vba
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017
30 mars 2017 à 10:15
au debut javais fait un tcd mais c'est trop long
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306 > aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017
30 mars 2017 à 11:00
Trop long pour faire un TCD ???
5 minutes c'est trop long !!!!
hé bé!
0
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017
30 mars 2017 à 11:06
non parce que je dois le faire pour chaque contrat et après faire un copier coller
0