Formule matricielle via VBA

Nenesandco

XLDnaute Nouveau
Bonjour à tous,


La novice que je suis en VBA rencontre un nouveau (et énième) problème. :)

J'aimerai pouvoir saisir une formule matricielle en VBA afin que seul le résultat apparaisse dans la cellule.
Là où je coince, c'est que ma formule matricielle comporte des "SIERREUR" et des "SI" :

{=SIERREUR(INDEX(R:R;PETITE.VALEUR(SI(U:U=B7;LIGNE(R:R));(LIGNES($1:1)));"")}

Du coup, impossible de savoir comment coder cette formule en passant par If et Endif.

Auriez-vous des suggestions ?

Je joins un fichier pour être plus claire.
Dans l'encart "Fiche", je souhaite que la liste d'objet se renseigne toute seule en fonction du "N°".

Merci beaucoup à tous ceux qui voudront bien prendre le temps de me réponse,

Bonne après-midi,


Nenesandco
 

Pièces jointes

  • Test VBA.xlsx
    10.7 KB · Affichages: 27
  • Test VBA.xlsx
    10.7 KB · Affichages: 34
  • Test VBA.xlsx
    10.7 KB · Affichages: 35

Modeste

XLDnaute Barbatruc
Re : Formule matricielle via VBA

Bonjour Nenesandco,

La vraie question c'est de savoir ce que tu entends pas "J'aimerai pouvoir saisir une formule matricielle en VBA" :confused:

Je suis parti du principe que tu voulais obtenir le résultat proposé avec ton exemple un peu (trop) simplifié. Teste ce bout de code dans la fenêtre de code de la Feuil1:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$H$4" Then Exit Sub
If Target.Count > 1 Then Exit Sub
[G7:G50].ClearContents
If Target = "" Then Exit Sub
Set trouve = [C:C].Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole)

If Not trouve Is Nothing Then
    premAdresse = trouve.Address
    Do
        lig = lig + 1
        [G6].Offset(lig, 0) = trouve.Offset(0, 1)
        Set trouve = [C:C].FindNext(trouve)
    Loop While Not trouve Is Nothing And trouve.Address <> premAdresse
End If
End Sub

Tu as demandé des suggestions, ... en voilà une :) Si elle ne convient pas, explique plus en détail!
 

Nenesandco

XLDnaute Nouveau
Re : Formule matricielle via VBA

Bonjour Modeste,


Merci beaucoup pour ta réponse.

Je reviens avec un exemple plus précis en pièce jointe.
L'idée, c'est que je puisse générer une fiche qui fasse un récapitulatif : en fonction d'un numéro d'emprunt (145 ou 144 par exemple) que je saisie, apparaît la liste des objets empruntés, l'emprunteur, la date d'emprunt (qui est la même pour un numéro).

Par rapport au code que tu m'as envoyé, j'ai voulu le testé mais à chaque fois que je le lance, il me demande un nom de macro et rien n'apparait. Je ne peux donc pas déclencher la macro. Ai-je loupé un truc ?

Merci beaucoup,
 

Pièces jointes

  • Test VBA.xlsx
    11.1 KB · Affichages: 26
  • Test VBA.xlsx
    11.1 KB · Affichages: 39
  • Test VBA.xlsx
    11.1 KB · Affichages: 34

Discussions similaires

Réponses
3
Affichages
411
Compte Supprimé 979
C