Problème code VBA [Résolu]

aude2222 14 Messages postés mardi 28 mars 2017Date d'inscription 30 mars 2017 Dernière intervention - 28 mars 2017 à 14:16 - Dernière réponse : aurelie212 2 Messages postés mercredi 3 mai 2017Date d'inscription 9 mai 2017 Dernière intervention
- 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
Afficher la suite 

2 réponses

Répondre au sujet
phadeb 87 Messages postés dimanche 2 avril 2006Date d'inscription 13 mai 2017 Dernière intervention - 8 mai 2017 à 11:46
0
Utile
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


--
Commenter la réponse de phadeb
aurelie212 2 Messages postés mercredi 3 mai 2017Date d'inscription 9 mai 2017 Dernière intervention - 9 mai 2017 à 10:06
0
Utile
merciii

Mon tuteur veut que je passse par une macro
Commenter la réponse de aurelie212