Bonjour,

En fait je voudrais remplacer des formules excel par des macros afin de sécuriser le fonctionnement de mon fichier.

Voila, disons que j'ai deux colonnes.
- celle de gauche (B3:B20) contient des références
- celle de droite (C3:C20), un texte qui se met à jours suite à l'entrée de la référence correspondante dans la cellule de gauche (même ligne évidement)

Au début je voulais vous demander comment faire, mais en programmant une petit exemple j'ai finalement trouvé la solution.

J'ai cependant un petit probléme...

après exécution, ma macro reboucle et plante.
j'ai mise des étapes d'arrêt, tout fonctionne sans problème au moins jusque la ligne 13 puisque le résultat final est bon.
Par contre la petite flèche jaune revient ensuite sur la ligne 8 et là :

"Erreur d'exécution '62147417848 (80010108)'
La méthode 'Find' de l'objet ' Range' a échoué
Si vous pouviez me guider ça ne serait pas de refus

idem, pensez vous que la méthode soit la bonne, pour ma part j'ai l'impression de ne pas pouvoir faire mieux.

bien à vous

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(ActiveCell, Range("B3:B20")) Is Nothing Then
 
Ref_Active = ActiveCell.Offset(-1, 0).Value
 
    If Ref_Active <> "" Then
    Set Reference = Sheets("calc prix vente").Range("B:B").Find(Ref_Active, , xlValues, xlWhole, , , False)
 
        If Not Reference Is Nothing Then
        Designation = Reference.Offset(0, 1).Value
 
        ActiveCell.Offset(-1, 1).Value = Designation
 
        End If
    End If
End If
End Sub