Macro pour effectuer une multiplication

Bonjour à tous,

J'ai une donnée fixe dans la cellule A5 : 10

Quand je rentre une donnée dans la cellule A6 (par exemple 15), je souhaite que le résultat de la cellule A6 soit 10*15, c'est-à-dire A5 multiplié par A6.

Comment faire ? Merci pour votre aide.

Merci

SCSK

Bonjour

Voila pour toi

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A6", "A5")) Is Nothing Then
    If Target.Value <> "" Then Range("A7") = Range("A6") * Range("A5")
    End If
End Sub

Merci Jonyboy.

Seulement que je veux que le résultat de 150 soit dans la cellule A6 en remplacement de la valeur 15 initialement rentrée dans cette même cellule.

Merci

Bonjour,

Dans la même cellule ce n'est pas faisable pour moi. Cela créer une boucle sans fin.

Par contre si ta valeur fixe est vraiment fixe on peut la forcer dans la macro et tu ne rentres que la valeur à multiplier pour avoir ton résultat en A6

La valeur fixe peut varier dans le temps, mais je suis bien curieux de voir comment faire au cas où elle demeurerait fixe.

Merci.

SCSK

La solution si elle reste fixe

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A5")) Is Nothing Then
    If Target.Value <> "" Then Range("A6") = 10 * Range("A5")
    End If
End Sub

Bonjour à tous,

une proposition :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A5:A6]) Is Nothing Then
        Application.EnableEvents = False
            [A6] = [A5] * [A6]
        Application.EnableEvents = True
    End If
End Sub

eric

Merci Eric,

Ca correspond exactement à ce que je cherchais.

Ultime préoccupation : la valeur dans A5 ne variant pas, comment incrémenter l'opération dans A7, A8, A9 etc... ?

Cordialement,

SCSK

Donc on ne se préoccupe plus de A5.
Pas sûr d'avoir compris. Saisir dans la plage supervisée :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A6:A50]) Is Nothing Then
        Application.EnableEvents = False
            Target = [A5] * Target
        Application.EnableEvents = True
    End If
End Sub

à toi d'adapter à la plage voulue. Ici A6:A50

Ou bien tu veux toujours saisir en A6 et mettre le résultat dans la 1ère cellule vide ?
Essaie d'être clair et complet dans tes demandes, on se lasse vite à devoir deviner...
eric

Merci Eric,

C'est parfait pour moi.

Je te remercie aussi eriiic

Tu m'as permis de comprendre un peux mieux le worksheet_change

Rechercher des sujets similaires à "macro effectuer multiplication"