Signaler

Problème code VBA [Résolu]

Posez votre question aude2222 14Messages postés mardi 28 mars 2017Date d'inscription 30 mars 2017 Dernière intervention - Dernière réponse le 9 mai 2017 à 10:06 par aurelie212
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 
Utile
+0
plus moins
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


--
Donnez votre avis
Utile
+0
plus moins
merciii

Mon tuteur veut que je passse par une macro
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !