Formule avec cellule variable dans Macro EXCEL

Julien -  
michel_m Messages postés 16602 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

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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