Re : Function matricielle comment la lancer avec une macro
Bonjour,
Code:
Sub Essai2()
[B2].Resize([A2:A13].Count) = SansDoublons2([A2:A13])
End Sub
ou
Code:
Sub Essai()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In [A2:A13]
If c.Value <> "" Then mondico(c.Value) = c.Value
Next c
[B2].Resize(mondico.Count) = Application.Transpose(mondico.items)
End Sub
Re : Function matricielle comment la lancer avec une macro
Bonjour et merci à vous,
Comme vous avez pu vous en rendre compte c'est sur votre site que j'avais trouvé le code et commencé à comprendre le fonctionnement.
La version que vous avez eu la gentillesse de m'adresser est plus intéressante.
En faisant apparaître le Zéro, si j'utilise la formule matricielle = sansdoublons etc ... j'obtiens des zéros après le dernier élément jusqu'en fin de plage. Ce qui n'est pas le cas en utilisant les 2 macros jointes.
Donc encore merci d'avoir pris la peine de me répondre.
Je vais abuser, pourriez-vous m'éclairer sur l'utilisation dans sub essai2() :
Mondico est un objet dictionnaire
c une inscription qui s'enregistre si <>"" entre a2 et a13
Re : Function matricielle comment la lancer avec une macro
-mondico.items donne l'ensemble des items de mondico sous forme d'un tabeau horizontal.
-Application.Transpose(mondico.items) transforme en tableau vertical.
-[B2].Resize(mondico.Count) défini un champ vertical avec le nombre d'éléments de mondico
-SansDoublons([A2:A13])) renvoie un tableau.
-UBound(SansDoublons([A2:A13]))) donne le nombre d'éléments du tableau renvoyé par la fonction SansDoublons(). -[B2].Resize(UBound(SansDoublons([A2:A13]))) représente un champ vertical avec le nombre d'éléments renvoyés par la fonction SansDoublons().