Problème code VBA

Résolu/Fermé
aude2222 Messages postés 14 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 30 mars 2017 - 28 mars 2017 à 14:16
aurelie212 Messages postés 2 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 9 mai 2017 - 9 mai 2017 à 10:06
Bonjour à tout
J’ai une petite question en vba
J’ai un fichier excel comme suit (raccourci ma base est plus grande)
Numéro police Date de souscription Date de survenance
N° 03/03/2012 03/05/2012
N° 06/05/2015 06/09/2015
N° 05/09/2013 05/12/2013
N° 03/09/2012 07/09/2012
N° 04/04/2014 04/09/2014

J’ai envie de calculer le nombre de sinistre
C’est pourquoi dans un premier temps j’ai déclarer mes variables, ensuite activer la feuille que je vais utiliser, après je donne les plages de valeurs à mes variables.
Ensuite je fais plusieurs conditions : si l’année de ma date de souscription =2012 et si le mois c’est janvier et si l’année de ma date de survenance =2012 et le mois janvier alors calculer le nombre de ligne
Ensuite j’ai envie de stocker le résultat une autre feuille
Mais mon code ne marche pas si quelqu’un pouvait m’aider
Merci beaucoup
Voici mon code

Public Sub Sinistre_Decl()

Dim Nombre_Sinistre_Declare As Integer
Dim Date_Souscription_Adhésion As Range
Dim Numéro_Police As Range
Dim Date_Survenance As Range
Dim somme As Long
Dim nbligne As Integer
Dim Date_Annee_Mois As String


Set Date_Souscription_Adhésion = Range("G2:G1515")
Set Numéro_Police = Range("A2:A1515")
Set Date_Survenance = Range("U2:U1515")

Worksheets("Sinistre").Activate


'If Date_Souscription_Adhésion = [01/01/2013 : 31/01/2013] Then
If Year(Date_Souscription_Adhésion) = "2013" Then
If Month(Date_Souscription_Adhésion) = 1 Then
If Month(Date_Survenance) = "2013" Then
If Month(Date_Survenance) = 1 Then
'nbLignes = Range("U2", Range("U1048576").End(xlUp)).Rows.Count
nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
End If
End If
End If
End If

'ElseIf Month(Date_Survenance) = 2 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 3 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 4 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 5 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 6 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 7 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 8 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 9 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 10 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'ElseIf Month(Date_Survenance) = 11 Then
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'Else: Month(Date_Survenance) = 12
'nbligne = Worksheets("Sinistre").Range(Worksheets("Sinistre").Range("U2").Address & ":" & Worksheets("Sinistre").Range("U2").End(xlDown).Address).Rows.Count
'End If
'End If


'commentaire en C1
Range("C1") = nbligne
'faire la somme des nbligne

For somme = 1 To Cells(Rows.Count, 2).End(xlUp).Row
Range("F1" & i).Value = Application.WorksheetFunction.Sum(Range("C1" & i & "C1000" & i))
Next somme
'faire un copier

Worksheets("Feuil4").Activate
'faire un coller

'on fait la mm chose avec les autres mois


End Sub
A voir également:

2 réponses

phadeb Messages postés 86 Date d'inscription dimanche 2 avril 2006 Statut Membre Dernière intervention 13 mai 2017 21
8 mai 2017 à 11:46
Bonjour,

Si vous voulez calculer le nombre de sinistres par date, je pense qu'il serait plus simple de passer par un TCD


Sinon pour le code qui ne marche pas, vous avez mis des guillemets à une donnée numérique

Exemple :
If Year(Date_Souscription_Adhésion) = "2013" Then


--
0
aurelie212 Messages postés 2 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 9 mai 2017
9 mai 2017 à 10:06
merciii

Mon tuteur veut que je passse par une macro
0