Formule matricielle en VBA

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 !

mécano41

XLDnaute Accro
Bonjour,

Dans le morceau de sous-programme suivant :

Code:
Option Explicit

Dim DébutTableau As Range
Dim PlageX As Range, PlageY As Range

Sub Préparation()
Dim Réf As String
Dim FormuleX As String

Set DébutTableau = Application.InputBox(prompt:="Cliquez sur la première valeur de la première colonne du tableau (colonne des X)", Title:="Position début tableau", Type:=8)
Set PlageX = Range(DébutTableau, DébutTableau.End(xlDown))
Set PlageY = Range(DébutTableau.Offset(0, 1), DébutTableau.Offset(0, 1).End(xlDown))
Réf = DébutTableau.Offset(0, 4).Address(True, False[COLOR="Red"],xlR1C1[/COLOR]) & ":" & DébutTableau.Offset(1, 4).Address(False, False[COLOR="Red"],xlR1C1[/COLOR])
FormuleX = "=IF(MAX(" & Réf & ")=MAX(PlageX) , """" , MIN(IF(PlageX>MAX(" & Réf & "),PlageX)))"
Range("E8").Formula[COLOR="Red"].area[/COLOR] = FormuleX

End Sub

Si je ne mets pas les parties en rouge, la formule mise en E8 est bonne, mais comme je voudrais qu'elle soit matricielle, j'ajoute les parties en rouge. J'ai alors deux problèmes :

- en ajoutant xlR1C1 la référence dans la formule n'est plus bonne (Réf = I$6:I14 au lieu de E$6:E7 en ayant cliqué sur A6)
- en ajoutant Area, une erreur 424 (objet requis) survient

Quelqu'un peut-il me dire où est mon erreur?

Merci d'avance

Cordialement
 
Dernière édition:
Re : Formule matricielle en VBA

Bonjour mécano, le forum

tout d'abord, ceci aurait du t'interpeller : "Formula.area", pas de majuscule à "area", donc VBE ne reconnait pas ton code.
Remplace par "Range("E8").FormulaArray = FormuleX"
Pour le reste, je vois pas trop, sans exemple.
 
Re : Formule matricielle en VBA

Bonjour,

Merci pour cette réponse rapide.

Même avec la majuscule, Formula.Area ne fonctionne pas. En revanche, avec FormulaArray, la formule se met bien en forme matricielle.

Pour l'erreur de référence, je joins un exemple.

Cordialement
 

Pièces jointes

Re : Formule matricielle en VBA

En fait, j'ai mis :

Réf = "R" & DébutTableau.Row & "C:R[-1]C" car la ligne n'est pas toujours la 6ème. Cela fonctionne et c'est simple !

Encore merci !

Pour l'autre point, je n'ai pas retrouvé, il faut donc que je fasse vérifier...mon cerveau 😡 !

Cordialement
 
- 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

Réponses
4
Affichages
177
Réponses
5
Affichages
237
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
2
Affichages
153
Réponses
4
Affichages
461
Retour