Compléter (simplifier un tableau)

Bonjour,

Je dois réaliser un tableau récapitulatif d'une feuille excel dont vous trouverez l'exemple en fichier joint.

Mon problème est que certains numéros de polices ont plusieurs occurrences est-il possible de dénombrer ces occurrences par type de sinistre (voir colonne G), et compléter les colonnes suivantes pour en arriver à quelque chose qui ressemble à ce qu'on trouve sur le deuxième onglet. J'ai plus de 500000 lignes à traiter, c'est pour cela que je souhaite automatiser le traitement.

Merci d'avance pour votre aide.

Jamantaz

64exemple.xlsx (14.08 Ko)

Bonjour,

J'ai jeté un oeil à votre fichier mais je n'arrive pas à comprendre ce que vous souhaitez exactement ?

Pourriez vous être plus précis ou donnez un exemple des résultats souhaité ?

En fait, je veux faire une ligne pour récapituler la sinistralité du contrat plus ou moins sous la forme suivante:

numéro de contrat, type de sinistre, responsabilité du conducteur (en droit, seul en cause, ...) et montant de débours.

Comme j'ai parfois plusieurs sinistres pour le même contrat, je cherche à agréger les données pour améliorer la lisibilité du tableau.

Jamantaz

Si j'ai bien compris, il existe 4 types de status :

en droit

en tort

seul en cause

autre

Je ne comprends pas pourquoi la police 30000014 avec un seul statut est ventilée sur 2 lignes alors que la police 30100450 avec 2 statuts différents est aussi ventilée sur 2 lignes

Bonjour,

Pour la 30000014 il s'agit d'une erreur. en fait, je suis en train de faire travailler pour le moment en utilisant la formule NB.SI, mais ça prends un temps fou, et pourtant, il faut que je parvienne au final à avoir un fichier dans lequel j'aurai le numéro de contrat, le nombre de sinistre et les débours en fonctions des quatre statuts en question, je ne sais pas si c'est clair.

Jamantaz

regarde si ça te convient ?

non testé

55assurance.xlsm (27.86 Ko)

Game over

Alors là, je dis respect!!!! c'est exactemement ce dont j'ai besoin, mais je ne sais pas pourquoi j'ai l'impression que si tu m'expliques comment tu as fait, je vais me taper un mal de crâne. Peux-tu quand même essayer de m'expliquer pour que j'essaie de mettre ça en place dans mon fichier?

Jamantaz

Salut,

voici le code

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Dim aa As String, bb As String, Status As String, Paye As Integer, Ct As Integer

Range("B2").Select
Selection.CurrentRegion.Sort Key1:=[B1], Key2:=[F1], Header:=xlYes

Paye = 0
Ct = 0

Do Until IsEmpty(ActiveCell)

    aa = ActiveCell & ActiveCell.Offset(, 4)
    bb = ActiveCell.Offset(1, 0) & ActiveCell.Offset(1, 4)
    Status = ActiveCell.Offset(, 4)
    Paye = Paye + ActiveCell.Offset(, 3)
    Ct = Ct + 1

    If aa <> bb Then

        If Status = "en droit" Then
            ActiveCell.Offset(, 6) = Ct
            Ct = 0
            ActiveCell.Offset(, 10) = Paye
            Paye = 0
        ElseIf Status = "en tort" Then
            ActiveCell.Offset(, 7) = Ct
            Ct = 0
            ActiveCell.Offset(, 10) = Paye
            Paye = 0
        ElseIf Status = "seul" Then
            ActiveCell.Offset(, 9) = Ct
            Ct = 0
            ActiveCell.Offset(, 10) = Paye
            Paye = 0
        Else
            ActiveCell.Offset(, 8) = Ct
            Ct = 0
            ActiveCell.Offset(, 10) = Paye
            Paye = 0
        End If

    End If

    ActiveCell.Offset(1, 0).Select

Loop

Application.ScreenUpdating = True

End Sub

Si pour toi, ceci n'est qu'un grand charabia, alors inutile de passer aux explications, le plus simple serait de recopier tes données (au même format !!!) sur la page et de lancer la macro

Bonjour à toi game over,

J'ai mis en page mon fichier final (voir fichier ci-joint), mais il semblerait que j'ai merdé dans la macro, pourrais-tu jeter un oeil et me dire ce qui ne va pas?

Merci d'avance.

Jamantaz

32test.xlsm (18.97 Ko)

Bonjour,

tu as supprimé une colonne dans ton second fichier sans corriger les références colonnes qui étaient affectées.

change ton code comme suit :

    aa = ActiveCell & ActiveCell.Offset(, 3)
    bb = ActiveCell.Offset(1, 0) & ActiveCell.Offset(1, 3)
    Status = ActiveCell.Offset(, 3)
    Paye = Paye + ActiveCell.Offset(, 2) 

change aussi la dimension de ta variable Paye comme suit :

Paye As Single

Integer n'était pas approprié !

Merci beaucoup pour ton aide,

Une erreur fatale en l'occurrence, mais bon, j'ai commencé le VBA hier donc ...

J'ai une dernière question à te poser, comment puis-je faire pour appliquer la macro à un certain nombre de lignes afin de traiter mon fichier par segment plutôt que de traiter mes 575000 lignes d'une fois (ça fait planter excel).

Merci beaucoup.

Jamantaz

[EDIT]

voici le fichier modifié; Il te suffit de compléter le petit tableau en colonne N-O avec le No de ligne de départ et celui de fin

33assurance.xlsm (20.90 Ko)
Rechercher des sujets similaires à "completer simplifier tableau"