Problème code VBA

Résolu
aude2222 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
aurelie212 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention  
 
merciii

Mon tuteur veut que je passse par une macro
0