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
Retour