VBA - Fonction avec argument de sortie tableau données perso

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 !

elgringo123456

XLDnaute Occasionnel
Supporter XLD
Bonjour,

Je me permets une fois de plus de vous solliciter sur le cas suivant.

Contexte : problème de VBA avec appel de fonction avec des valeurs en arguments de sortie de tailles variables et personnalisée.

Je m'explique :

Je fait appel à une fonction qui va renvoyer en argument de sortie un tableau de données personnalisée et variable.

Je fais appel à une donnée de type AnnonceIdSelect qui doit contenir 2 types de variables :
- Id de type Integer
- Date de type Date

La fonction IdentificationDoublonsMax a pour objet de determiner pour plusieurs mêmes annonce de selectionner le n°ID ainsi que la date la plus récente.
Pour ce faire j'utilise ce tableau dynamique pour enregistrer au fur et à mesure les annonces en doubles ayant la date la plus récente.

Le problème rencontré se situe sur la manière de faire passer le tableau dynamique et personnalisé dans le programme principal.

A l'éxécution, j'obtiens une erreur de type :
Erreur de compilation

Seuls les types définis par l'utilisateur et qui sont définis dans les modules d'objets publics peuvent être convertis depuis ou vers un variant ou passé à des fonctions de liaison tardive.

Je ne sais pas comment definir un module public. Comment puis-je faire marcher mon programme en utilisant un argument de sortie avec tableau de donnée dynamique et personnelle ?

Pour vous donner un exemple concret de mon problème, je vous joins le fichier.

Merci d'avance de vos réponses et aides.
Encore désolé de vous importuner avec ce genre de problème mais cela fait plusieurs jours que je suis dessus.
Cordialement.
😕
El Gringo 123456
 

Pièces jointes

Re : VBA - Fonction avec argument de sortie tableau données perso

Bonjour ElGringo123456 🙂,
J'ai essayé différentes solution sur ton fichier (entre autre Public Tableau() et utiliser Tableau() pour passer les valeurs, utitiser Cvar pour convertir en Variant, etc.), mais j'obtiens toujours un message d'erreur... Par contre, si j'ai bien suivi ton problème, tu souhaites éliminer les doublons d'ID en ne conservant que la date la plus récente. Vu que tu est sur 2007, il te suffit de trier par date, puis d'éliminer les doublons, soit :
Code:
    Range("A1:D8").Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2:B8"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:D8")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveSheet.Range("$A$1:$D$8").RemoveDuplicates Columns:=1, Header:=xlYes
Bonne journée 😎
 
- 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
6
Affichages
157
Retour