Multiplier une cellule automatiquement

Bonjour,

voici mon problème: je souhaiterai qu'une cellule de mon tableau se multiplie automatiquement avec une autre quand je rentre un chiffre dans la première.

Je m'explique: j'ai 2 cellules, A1 et B1.

Dans A1 il y 10. quand je tapes "10" dans B1, je voudrai qu'il s'affiche "100".

J'ai essayé le collage spécial puis cocher "multiplication", mais cette technique ne s'applique qu'à des données déjà existantes.

Avez-vous une idée de ce que je pourrai faire?

Merci beaucoup...

Salut,

Tu voudrais donc qu'à chaque fois que tu inscrits un Chiffre en B1, son décuple soit écrit automatiquement ?

A te relire

Bonjour,

oui c'est ça...

Merci.

dans C1 tu tapes =A1*B1

ou mieux =SI(A1*B1=0;"";A1*B1)

J'ai placé une macro dans le fichier ci-Joint.

En fait, le chiffre inscrit en B1 est mutiplié par celui inscrit en A1, quel qu'il soit.

Cordialement.

172mappe2.zip (8.66 Ko)

C'est exactement ça! Bravo et merci!

je me permet d'abuser: comment je fais pour voir ta macro et l'appliquer à mon tableau stp?

Pour voir la macro, clic-droit sur l’onglet de la feuille et choisir l’option ‘Voir le code’ ou un texte analogue (je suis aujourd'hui sur un PC germanophone).

Pour copier la macro dans ton fichier, selon l’image ci-dessous, tu double-cliques sur le code de la feuille qui la contient (ici Tabelle1 du Fichier Mappe2.xls), tu la copies complétement sur la fenêtre de droite et tu la colles dans le code de ta feuille (par exemple chez moi je pourrais la coller sur le code de la feuille Tabelle1, 2 ou 3 du fichier Mappe3 également visible dans l’explorateur VBA).

Amicalement.

04 12

Super!

Merci encore!

Je reviens vers toi si je n'y arrive pas, mais je vais essayer de le faire, ça m'a donné envie d'apprendre le VBA!

A bientôt...

Amicalement.

Si je veux que la macro s'applique à plusieurs cellules, par exemple de B1 à J1, faut-il que j'ajoute toutes les cellules dans le code?

Tu es passablement mystérieux avec ton fichier que tu ne veux pas nous fournir.

Je ne peux donc pas savoir si tu veux multiplier plusieurs cellules par la même à chaque fois (par exemple la B1 et la J1 multipliées par la A1) ou si tu veux multiplier chaque cellule concernée par une cellule identiquement correspondant (par exemple B1 par A1 et J1 par I1).

A tout hasard essaie

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

    If Not Application.Intersect(Target, Range("B1, J1")) Is Nothing Then
        Application.EnableEvents = False
        Target = Target * Range("A1")
        Application.EnableEvents = True
    End If

End Sub

Si tu as des plages de cellules, c’est encore autre chose.

A te relire.

Bonjour,

pas de soucis, je te montre mon fichier, je savais pas que c'était possible.

Tu as répondu parfaitement à mes attentes.

Prenons l'exemple de la ligne 13:

il faut que les cellules C13 à Y13 se multiplient par la cellule B13 (ici 1.5) quand on rentre un nombre dans ces cellules.

Ainsi de suite dans sur toutes les lignes de la feuille.

Voici un bout de ta macro que j'ai modifié pour l'adapter à ma feuille. Ça fonctionne très bien.

Mais n'y a-t-il pas un moyen de simplifier le code, par exemple mettre "de C13 à Y13" au lieu d'indiquer chaque cellule?

Là ça va bien parce qu'il n'y en a pas beaucoup, mais si j'ai 1000 cellules...

Pareil pour les lignes.

 Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub

        If Not Application.Intersect(Target, Range("C13, E13, G13, I13, K13, M13, O13, Q13, S13, U13, W13, Y13")) Is Nothing Then
            Application.EnableEvents = False
            Target = Target * Range("B13")
            Application.EnableEvents = True
        End If

        If Not Application.Intersect(Target, Range("C14, E14, G14, I14, K14, M14, O14, Q14, S14, U14, W14, Y14")) Is Nothing Then
            Application.EnableEvents = False
            Target = Target * Range("B14")
            Application.EnableEvents = True
        End If

        If Not Application.Intersect(Target, Range("C15, E15, G15, I15, K15, M15, O15, Q15, S15, U15, W15, Y15")) Is Nothing Then
            Application.EnableEvents = False
            Target = Target * Range("B15")
            Application.EnableEvents = True
        End If

        If Not Application.Intersect(Target, Range("C16, E16, G16, I16, K16, M16, O16, Q16, S16, U16, W16, Y16")) Is Nothing Then
            Application.EnableEvents = False
            Target = Target * Range("B16")
            Application.EnableEvents = True
        End If

Merci encore pour ton aide.

Amicalement.

Salut,

Dans le fichier ci-joint j’ai placé une macro qui permet de traiter toutes les lignes en une seule fois (enfin, celles qui ont un chiffre dans la colonne B).

Tu as des formats de texte dans ta colonne B et ma macro n’arrive alors pas à multiplier le chiffre inscrit dans les colonnes C à Z par celui inscrit dans la colonne B (à part le chiffre de la cellule B15 ??). J’ai modifié deux cellules – marquées en moutarde – pour te montrer ce qu’il faut modifier.

Cordialement.

Rechercher des sujets similaires à "multiplier automatiquement"