Formule avec cellule variable dans Macro EXCEL

Julien -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaite créer une macro qui aurait les fonctions suivantes :
- lancement automatique lorsque le texte contenu dans la cellule A2 devient "abc",
- entrer la formule "=B2*C1" dans la cellule C2 (pour que le calcul se fera automatiquement selon les valeurs des cellules B2 et C1).

Je ne souhaite pas un adressage relatif de la cellule C1 (type "=R[-1]C") car je voudrais dupliquer la même macro sur les lignes en dessous.

Je suis complètement débutant en macro et je n'arrive pas à trouver le bon code, notamment pour l'exécution automatique et l'adressage "non relatif" de C1.

Pouvez-vous m'aider svp ?

Merci d'avance,

Julien

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    macro à installer dans le module feuille de l'éditeur VBA

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligne As Integer
    If Not Intersect(Target, Range("A2:A300")) Is Nothing Then
    If Target Like "*abc*" Then
    ligne = Target.Row
    Cells(ligne, "C") = Cells(ligne, "B") * Cells(1, "C")
    End If
    End If
    End Sub

    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      macro commentée
      Option Explicit
      '-------
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim Ligne As Integer
      'vérif cellule changée dans zone d'action (ici A2:A300)
      If Not Intersect(Target, Range("A2:A300")) Is Nothing Then
      'test si cellule contient "abc" jointif dans la celle
      If Target Like "*abc*" Then
      'repèrage de la ligne de la cellule changée
      Ligne = Target.Row
      'calcul colonne B /ligne C1 fixe
      Cells(Ligne, "C") = Cells(Ligne, "B") * Cells(1, "C")
      End If
      End If
      End Sub
      0