Double attribution valeur

Bonjour,

voici mon problème. J'ai deux feuilles de calcul excel.

Je dispose d'une formule f(x) sur la feuille1 qui dépend d'un paramètre X sur la feuille 1.

Sur la feuille 2, j'ai plusieurs valeurs que j'aimerais affecter l'une à la suite de l'autre à X et ainsi trouver le f(x) correspondant.

Merci !

15essai.xlsx (9.22 Ko)

Bonjour,

Impossible, je fais actuellement mon stage et il m'est impossible de partager des fichiers...

Tu en fabriques un correspondant à ta question... !

Fichier chargé !

Curieux ! Il te suffit de mettre la formule en F5 et F6 sur Feuil2 !

Merci mais c'était un exemple simplifié... ce n'est donc pas si simple.

Toutes mes formules sont sur la feuille1 et dépendent d'un paramètre X sur la feuille 1.

Les valeurs à attribuer à X se trouvant sur la feuille2 et sont X1, X2,..... . Pour ne pas alourdir le fichier, et d'autant plus que j'ai déjà les formules sur la feuille1, je ne veux pas copier les formules sur la feuille2.

Je veux une méthode (ou une macro) pour remplacer X par X1, sortant f(X1), ensuite de faire f(X2) etc.....

Re,

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Me.Range("C5:C6")) Is Nothing Then
        x = Target
        If IsNumeric(x) Then
            With Worksheets("Feuil1")
                .Range("C5") = x
                DoEvents
                x = .Range("E5")
                .Range("C5").ClearContents
            End With
            Target.Offset(, 3) = x
        End If
    End If
End Sub

A placer dans le module de Feuil2.

Lors d'un chengement de valeur en C5 ou C6, la procédure se lancera automatiquement pour faire opérer le calcul et renvoyer le résultat...

Cordialement.

21tjobbe-essai.xlsm (15.79 Ko)

Merci beaucoup !

Toutefois, je n'ai pas trop compris la méthode. J'ai moi-même chipoté ceci, et ça donne exactement ce que je veux :

Sub Essai()

ActiveWorkbook.Sheets(1).Range("C5") = ActiveWorkbook.Sheets(2).Range("C5")

ActiveWorkbook.Sheets(2).Range("F5") = ActiveWorkbook.Sheets(1).Range("E5")

ActiveWorkbook.Sheets(1).Range("C5") = ActiveWorkbook.Sheets(2).Range("C6")

ActiveWorkbook.Sheets(2).Range("F6") = ActiveWorkbook.Sheets(1).Range("E5")

End Sub

Par contre, je dois activer manuellement ce code. Il y a-t-il moyen de le faire fonctionner automatiquement lorsque je change la valeur d'une case par exemple?

15tjobbe-essai.xlsm (14.78 Ko)

Bonsoir,

J'ai fourni une solution automatique, écrite en VBA, respectant les règles d'écriture du code...

Il t'appartient de l'étudier... Cela t'évitera de produire un code non indenté, avec des répétitions qui pourraient être évitées et qui ne répond pas exactement à ce que tu cherches...

La programmation en VBA, cela s'apprend !

Cordialement.

Rechercher des sujets similaires à "double attribution valeur"