Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro qui ne fonctionne que très partiellement....

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais vos lumières concernant ce problème:
j'ai placé dans une feuille cette fonction, mais après un copier/coller ça ne colle les deux formules qu'en Y2 et Z2 (ligne 1 titre) et pas sur les autres cellules des lignes bien renseignées col K et L...Pourriez-vous me dire?...

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Me.[K:L], Target) Is Nothing Or Target.Row < 2 Then Exit Sub
Me.Cells(Target.Row, 25).FormulaR1C1 = "=SUMPRODUCT((OFFSET(PlatsQtés!R5C3:R711C3,,MATCH(RC1,PlatsQtés!R3C4:R3C12,0)-1)=RC11)*OFFSET(PlatsQtés!R5C4:R711C4,,MATCH(RC1,PlatsQtés!R3C4:R3C12,0)-1))"
'soit col y
If Intersect(Me.[K:L], Target) Is Nothing Or Target.Row < 2 Then Exit Sub
Me.Cells(Target.Row, 26).FormulaR1C1 = "=RC[-12]/RC[-14]*RC[-1]"
'soit col z
End Sub

Merci pour votre aide.
Bien amicalement,
Christian
 
Dernière édition:
Re : Macro qui ne fonctionne que très partiellement....

Bonjour Christian,

Target pouvant être une plage de plusieurs cellules il faut les traiter toutes :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect([K:L], Target) Is Nothing Or Target.Row < 2 Then Exit Sub
For Each Target In Target
'soit col y
Cells(Target.Row, 25).FormulaR1C1 = "=SUMPRODUCT((OFFSET(PlatsQtés!R5C3:R711C3,,MATCH( RC1,PlatsQtés!R3C4:R3C12,0)-1)=RC11)*OFFSET(PlatsQtés!R5C4:R711C4,,MATCH(RC1,PlatsQtés!R3C4:R3C12,0)-1))"
'soit col z
Cells(Target.Row, 26).FormulaR1C1 = "=RC[-12]/RC[-14]*RC[-1]"
Next
End Sub
Peut-être faut-il aussi tester le cas où l'on efface la cellule/plage.

A+
 
Re : Macro qui ne fonctionne que très partiellement....

Re,

Ceci est mieux :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("K2:L" & Rows.Count), Me.UsedRange)
If Target Is Nothing Then Exit Sub
For Each Target In Target
'soit col y
Cells(Target.Row, 25).FormulaR1C1 = "=SUMPRODUCT((OFFSET(PlatsQtés!R5C3:R711C3,,MATCH( RC1,PlatsQtés!R3C4:R3C12,0)-1)=RC11)*OFFSET(PlatsQtés!R5C4:R711C4,,MATCH(RC1,PlatsQtés!R3C4:R3C12,0)-1))"
'soit col z
Cells(Target.Row, 26).FormulaR1C1 = "=RC[-12]/RC[-14]*RC[-1]"
Next
End Sub
A+
 
- 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

Discussions similaires

D
Réponses
2
Affichages
1 K
Dafaka7
D
P
Réponses
7
Affichages
861
Pernin
P
Z
Réponses
3
Affichages
1 K
Z
P
Réponses
4
Affichages
1 K
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…