Utiliser la valeur cible sur plusieurs cellules

Bonsoir,

Tout d'abord, je tiens à préciser qu'il s'agit d'une problématique (j'ai exactement le même besoin) qui a déjà été évoquée et résolue sur ce même forum (https://forum.excel-pratique.com/excel/utiliser-la-valeur-cible-sur-plusieurs-cellules-88518) mais malheureusement je suis un novice sur VBA et je n'ai pas compris comment utiliser la solution pour résoudre mon problème.

Je vais réutiliser le contenu qui avait été utilisé pour expliquer la problèmatique:

Je dois calculer le salaire brut imposable de plusieurs salariés à partir de leurs salaires nets. Mon fichier excel est complet avec toutes les fonctions.

Le seul hic c'est que j'ai des centaines de salariés et que le fait d'utiliser la valeur cible pour chaque cas rend la tâche très manuelle avec beaucoup de risques d'erreur (car saisie des paramètres de la valeur cible ligne par ligne).

Donc ma question est la suivante: serait-il possible d'utiliser la valeur cible sur plusieurs lignes, c'est à dire je sélectionne toute la colonne de la valeur à atteindre (Salaire Net) et toute la colonne des montants cible (Salaire net que je veux avoir) et la colonne des cellules variables (Salaire de base).

valeur cible

Je vous mets ci-dessous la solution qui avait été proposée dans le temps (avec résultat positif) par Eriiic (https://forum.excel-pratique.com/membre/9744):

____________________________________________________________________________________________________________________________________________

Private Sub ValeurCible()

Dim c As Range

For Each c In [A2].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 1)

If c.Offset(, 10) <> "" Then c.Offset(, 9).GoalSeek Goal:=c.Offset(, 10), ChangingCell:=c.Offset(, 1)

Next c

End Sub

____________________________________________________________________________________________________________________________________________

Merci par avance pour votre aide précieuse

Bonjour,

Avec tous ces décalages vous avez de fortes chances de vous tromper.

En utilisant la lettre affectée directement à chaque colonne, cela vous paraîtra plus simple.

Sub Valeur_Cible()
    Dim i As Long, DerLig As Long
    Dim Atteindre As Double
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To DerLig
        Atteindre = Range("AF" & i).Value
        Range("AE" & i).GoalSeek Goal:=Atteindre, ChangingCell:=Range("I" & i)
    Next
End Sub

Cdlt

Bonjour Arturo,

Tout d'abord, je vous remercie pour votre réponse rapide.

Cela ne marche pas. Quand j'exécute la macro, le code erreur 400 apparaît.

Merci encore pour votre aide

Bonne journée

Cela ne marche pas. Quand j'exécute la macro, le code erreur 400 apparaît.

La macro doit se trouver dans un module standard et non dans le module de la feuille.
Ensuite vos données commencent à la ligne 5 et non à la ligne 2, il fallait donc modifier la ligne suivante:
For i = 2 To DerLig
remplacée par
For i = 5 To DerLig

Cdlt
Rechercher des sujets similaires à "utiliser valeur cible"