Application de valeur d'une grille dans un tableau de calcul

Bonsoir,

En ce début d'année, je souhaite appliquer un % (cellule jaune dans le fichier ci-joint) à un montant. Ce % doit être recherché à partir de la grille au dessus, qui est un tableau à 2 entrées : la valeur de l'objectif mensuel et le taux de réalisation.

Comment pouvez vous venir à mon secours pour trouver la solution sachant que cette application sera utilisée de maniére intensive ?

Cordialement

J-Marc

73essai-jmlb.zip (4.72 Ko)

Bonsoir.

Un essai avec le fichier joint.

Lorsque tu modifie les valeurs dans la ligne 24, la cellule J24 est effacée (pour éviter les ambiguités). Tu cliques ensuite sur le bouton "VOIR PRIME) pour avoir la correspondance à ton tableau.

Vois si ça te convient.

52prime.zip (15.96 Ko)

Cela semble super... Toutefois, la macro ne passe pas à l'enregistrement !

Peux-tu me venir en aide ?

Comment faire pour dupliquer ton calcul sur plusieurs lignes ???

Merci d'avance

J-Marc

Bonsoir

Contrairement à mes habitudes, je suis plus enclin à faire des macros, dans ce cas là, je suis parti de la macro de Pass-Pass (merci) pour faire une formule

Soyez indulgent si je me suis planté

Bonne année à tous

Bonsoir,

Voici la réponse à ton problème sans macro.

Il te suffit de copier les formules sur toutes tes lignes

Il y a sans doute plus simple mais cela fonctionne

Par contre tes tranches objectif sont bizarres

que se passe-t-il entre 70000 et 71000 par exemple

en ce qui me concerne je suis allée jusque 70999 etc…

change la formule en colonne J si nécessaire

A la fin masque les colonnes J,K et L

Amicalement

Re

Cela semble super... Toutefois, la macro ne passe pas à l'enregistrement !

Désolé mais je ne vois pas ce qui bloque. Peux tu me dire ce qui ne fonctionne pas exactement ? (chez moi, je ne rencontre pas de problème)

As-tu bien activé les macros en ouvrant le fichier?

CI-joint le fichier modifié pour plusieurs lignes. Ici, on va de la ligne 24 à 42.

Le code se fait fait dès la modification d'une cellule: (on doit pouvoir faire plus court, mais je ne sais pas faire autrement.)

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Application.Intersect(Target, Range("B24:I42")) Is Nothing Then
Application.ScreenUpdating = False
 Range("J24:J42").ClearContents
 For k = 24 To 42
    Dim lg As Long 'ligne
    i = Range("F" & k).Value
    Select Case i
        Case Is < 50000
        lg = 11
        Case Is < 70000
        lg = 12
        Case Is < 90000
        lg = 13
        Case Is < 100000
        lg = 14
        Case Is < 110000
        lg = 15
        Case Is < 120000
        lg = 16
        Case Is < 130000
        lg = 17
        Case Is >= 130000
        lg = 18
    End Select
    Dim col As Integer 'colonne
    j = Range("D" & k).Value
    Select Case j
        Case Is < 0.8
        col = 2
        Case Is < 0.9
        col = 3
        Case Is < 1
        col = 4
        Case Is < 1.1
        col = 5
        Case Is < 1.2
        col = 6
        Case Is < 1.3
        col = 7
        Case Is >= 1.3
        col = 8
    End Select
     Cells(lg, col).Copy Range("J" & k)
     Next k
 End If
End Sub

Edit: Bonsoir Banzai. Bien vu la matrice. Je me disais bien qu'on pouvait le faire par formule mais n'avais pas trouvé. Ca va plus vite.

30prime.zip (14.47 Ko)

Merci pour tes précisions et j'avais les mis les mouffles pour la Macro

Cela fonctionne

Génial

Bonne soirée

J-Marc

Bonsoir Pass-Pass,

La semaine passée, tu m'as aidé sur un fichier de calcul. Je reviens vers toi étant donné que je n'arrive pas pas à automatiser ta macro sur plusieurs lignes. Je te joins le fichier en question et te précise cette fois ci, la prime à verser est calculée en fonction du % d'atteinte de l'objectif et de la valeur de l'objectif.

Le % trouvé est alors appliqué sur le montant de la contribution.

Merci d'avance si tu peux m'aider

J-Marc

Bonjour.

Je ne peux pas tester plus longtemps aujourd'hui.

rentre ce code dans le code de la feuil1 et fais des tests. Je ne suis pas sûr que ce soit cela que tu veuilles.

J'y reviendrai tard dans la soirée sans doute.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Application.Intersect(Target, Range("F15:F64,K15:K64,M15:M64")) Is Nothing Then
Application.ScreenUpdating = False
 Range("Y15:Y64").ClearContents
 For k = 15 To 64
    Dim lg As Long 'ligne
   i = Range("N" & k).Value
    Select Case i
        Case Is < 50000
        lg = 3
        Case Is < 70000
        lg = 4
        Case Is < 90000
        lg = 5
        Case Is < 100000
        lg = 6
        Case Is < 110000
        lg = 7
        Case Is < 120000
        lg = 8
        Case Is >= 120000
        lg = 9
    End Select
    Dim col As Integer 'colonne
   j = Range("K" & k).Value
    Select Case j
        Case Is < 0.8
        col = 2
        Case Is < 0.9
        col = 3
        Case Is < 1
        col = 4
        Case Is < 1.1
        col = 5
        Case Is < 1.2
        col = 6
        Case Is < 1.3
        col = 7
        Case Is >= 1.3
        col = 8
    End Select
     Range("Y" & k) = Cells(lg, col) * Cells(k, 13)
     Next k
 End If
End Sub
Rechercher des sujets similaires à "application valeur grille tableau calcul"