Astuce pour automatiser un calcul

Bonjour à tous,

D'avance, merci à ceux qui consacreront un peu de leur temps pour m'aider à résoudre ce problème. Il s'agit d'un cas assez précis (je joins d'ailleurs un échantillon de ma base de données permettant de faciliter la compréhension).

Je m'explique. Je travail sur un fichier qui correspond à des flux domicile travail. Un flux représente le déplacement d'un certain nombre d'individus (une ou plusieurs personnes) d'une commune de résidence vers une commune de travail. Chacun de ces flux est ventilé par PCS (Professions et Catégories Socioprofessionnelles) de telle manière que je connais par exemple la part des cadres dans chaque flux (Cf. fichier joint, feuille "Flux communaux").

Dans le même fichier joint, j'ai créé une seconde feuille ("Part cadres communes") qui représente cette fois ci la part des cadres dans l'ensemble des actifs résidant dans une commune X. Il s'agit en réalité d'un référentiel me permettant de juger de la sous-représentation ou de la surreprésentation des cadres dans les flux entre commune de résidence et commune de travail (feuille1).

Ma volonté est de réaliser une soustraction entre la part des cadres présents dans un flux XY (avec X commune de résidence et Y commune de travail) (feuille 1) et la part de cadres dans l'ensemble des actifs de X (feuille 2).

Ma question vient ici : est-il possible de réaliser un calcul qui soit automatique et qui permette, dans la disposition actuelle de mon fichier, de changer de "soustracteur" (c'est à dire ma part des cadres dans l'ensemble des actifs de la commune) à chaque fois que ma commune de résidence change ?

Ainsi l'opération consisterait à faire cela :

4001 --> 4112 : 0 - 33.3 =-33.3

4001 --> 13202 : 0 - 33.3 = -33.3

4001 --> 13206 : 100 - 33.3 = 66.6

4004 --> 4094 : 0 - 6.3 = -6.3

4004 --> 4112 : 0 - 6.3 = -6.3

etc.

Je précise que j'ai environ 19 000 lignes dans mon fichier d'où l'intérêt de rendre la manoeuvre automatique.

En espérant qu'il existe une solution à ma demande. Merci beaucoup.

Maxime

Bonjour,

formule à appliquer à partir de la cellule F2 de la feuille Flux communaux et jusqu'à la fin du tableau (en rouge) dans fichier joint

=SIERREUR(E2-RECHERCHEV(B2;'Part cadres communes'!$B$2:$C$1048576;2;FAUX); "N'existe pas")

ou une version en VBA (en bleu)

Sub VBA_vers()

Dim derLig As Long, myRange As Range

Application.ScreenUpdating = False
With Sheets("Flux communaux")
    derLig = .Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To derLig

        Set myRange = Sheets("Part cadres communes").Columns(2).Find(.Cells(i, 2), LookIn:=xlValues, lookat:=xlWhole)

        If Not myRange Is Nothing Then
            .Cells(i, 7) = .Cells(i, 5) - myRange.Offset(, 1)
        Else
            .Cells(i, 7) = "N'existe pas"
        End If

    Next i
End With

Columns(7).NumberFormat = "#,##0.00"

Application.ScreenUpdating = True

End Sub

Bonjour Maxime21,

Bonjour Game Over (pas toujours les mêmes qui arrivent à la bourre)

Un autre exemple avec le libellé géographique et le soustracteur qui s’adaptent en fonction du numéro de la commune de résidence, et utilisant les fonctions INDEX + EQUIV.

A+

Mille mercis pour votre réactivité. C'est exactement ce que je cherchais à faire.

Rechercher des sujets similaires à "astuce automatiser calcul"