mettre à jour une cellule

  • Initiateur de la discussion Initiateur de la discussion Johanne
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Johanne

Guest
Bonjour,

Est-ce possible de créer une macro qui s'active chaque fois qu'il y a un ajout d'une donnée et/ou une modification dans une cellule ?

Par exemple, si en A2 j'entre Maison comme catégorie, je voudrais que la formule dans la colonne C soit celle qui correspond à la catégorie Maison. J'ai une formule différente pour chaque catégorie.

J'ai pensé mettre en C2 une formule avec un si, mais comme j'ai plus de 30 catégories, je me suis dit que la formule serait trop longue et complexe à faire.
A B C
1 Catégorie # produit Nom
2 Maison 05888
3 Jardin
4 Femme

Est-ce possible de créer une macro qui copie la bonne formule dans la colonne C selon la catégorie sans être obligé d'appuyer sur un bouton ou le menu outils, macro....

Merci de votre aide.
 
Robert,

merci beaucoup pour ton aide. Ça fait ce que je veux.

J'aurais une autre question. Comment j'inscrire mes formules.

Présentement, dans ma colonne C, j'ai la formule suivante: "=RECHERCHEV($A$4;E19:F22;1;FAUX)

J'ai essayé ceci, mais ça ne fonctionne pas.

Target.Offset(0, 2).FormulaR1C1 = "=RECHERCHEV($A$4;E19:F22;1;FAUX)"

Tant qu'à y être, si c'est possible j'aimerais que $A$4 soit replacé par la cellule modifié dans la colonne A. Donc si je modifie A7, je voudrais que ce soit =RECHERCHEV($A$7;E19:F22;1;FAUX)

merci beaucoup.
 
Robert,

Oui tu as raison, ma formule était incohérente, car je n'avais pas le fichier avec moi. La vraie formule est la suivante si catégorie en A4 est Maison

=(IF(ISBLANK(A4), " ",INDEX('[Maison.xls]sheet1'!$E:$F, MATCH(A4,'[Maison.xls]sheet1'!$F:$F,), MATCH("Description",'[Maison.xls]sheet1'!$E$6:$F$6,))))


Crois-tu que ça se traduit en VBA?

merci pour ton aide.
 
Robert,

tu es génial. Ça fonctionne à merveille.

J'ai jumelé le code des trois fichiers que tu m'as envoyé et ça fonctionne.

Concernant ta remarque:
Petite remarque personnelle : vu que la formule renvoie "" (vide) en C si A est vide, je pense que placer cette formule dans toute la colonne C aurait exactement le même effet sans être obliger d'utiliser VBA.

Le chemin d'accès varie selon la catégorie, si c'est maison, il recherche dans le fichier maison, si c'est homme dans homme, etc. Je fais cette opération avec le SELECT CASE.

Merci beaucoup pour ton aide. Je l'apprécie énormément.
 
Re johanne, soalut le forum,

Si ça marche tu n'as pas besoin de Select Case, essaie comme ça :

Target.Offset(0, 2).FormulaR1C1 = _
"=IF(ISBLANK(RC[-2]),"""",INDEX([" & Target.Value & ".xls]Feuil1!C5:C6,match(RC[-2],[" & Target.Value & ".xls]Feuil1!C6),match(""Description"",[" & Target.Value & ".xls]Feuil1!R6C5:R6C6)))"

À plus,

Robert
 
Merci Robert,

J'ai déja écris le code pour toutes les 30 catégories et ça fontionne. Je vais garder en note ta dernière formule pour l'essayer éventuellement. J'ai plein de factures à entrer dans le système avant la fin du mois, alors je n'ai pas le temps de l'essayer maintenant.

Merci beaucoup pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
468
  • Question Question
Réponses
8
Affichages
288
Réponses
4
Affichages
140
Retour