Porter des fonctions natives de 365 pour les versions anterieur plus pauvre

Bonjour à tous

je suis sur un tres gros projet a la fois de portage fonctions vba perso /xll et dll et la fois de creation de nouvelle fonctions

ma question est simple

quelle fonction native de 365 absente dans les versions antérieures de 2024 à 2013 souhaiteriez vous avoir parfaitement intégrée dans votre environnement Excel

Bonjour,

J'ai office 365 donc j'ai un peu de mal à me projeter mais...
Je dirais que les fonctions qui m'ont fait quitter Excel 2019 ce sont principalement :

  • Fractionner.texte
  • Les tableaux dynamiques
  • LAMBDA
  • LET

J'aime aussi beaucoup les nouvelles fonctions REGEX.EXTRAIRE, REGEX.REMPLACER ou les GROUPER.PAR, PIVOTER.PAR, TRIERPAR

Bonjour,

Je n'ai pas d'ancienne version, donc pas concerné, mais :

Le "couteau suisse" des fonctions (récentes) d'Excel est pour moi indubitablement la fonction FILTRE.

A+

re: bon ben pour filtre je crois que c'est rapé
en effet l’évaluation de Include se passe avant d'arriver a la fonction donc selon certain pattern d'include on peu récupérer le formula2 mais selon d'autre non donc pour parser le string de include dans la formule c'est pas constant

je cherche une autre stratégie pour récupérer la formule mais j'ai peu d'espoir

j'ai parlé trop vite en fait le fait que l'evaluation se fasse niveau excel la fonction reçoit directement et simplement une matrice de true/false

appliquer cette matrice au tableau source renvoi le tableau filtré

tout simplement

pour le coup celle qui devait être la plus difficile n'est en fait que la plus simple

LOL

patrick

Bonjour,

Tu arriverais à reproduire l'effet de "spill"/extension automatique ?

Pour les fonctions postérieures à XL2024, avec LAMBDA + LET on peut les reproduire soi-même assez bien avec les fonctions lambda nommées, sauf peut être les REGEX effectivement qui sont un peu une famille à part.

Bonjour

@saboh12617 je me posais la même question lorsque je proposais il y a quelques jours une fonction COULEUR_PLAGE dans la discussion https://forum.excel-pratique.com/excel/additionner-des-cellules-de-3-couleurs-differentes-202390
je ne sais pas comment elle se comporte dans les versions antérieures n'ayant pas la possibilité de la tester.

Function COULEUR_PLAGE(Plage As Range) As Variant
    Dim Couleur() As Variant
    Dim i As Long, j As Long

    Application.Volatile

    ReDim Couleur(1 To Plage.Rows.Count, 1 To Plage.Columns.Count)

    For i = 1 To Plage.Rows.Count
        For j = 1 To Plage.Columns.Count
            Couleur(i, j) = Plage.Cells(i, j).Interior.Color
        Next j
    Next i

    COULEUR_PLAGE = Couleur
End Function

Si l'un d'entre vous peut faire des tests et des copies d'écran, je suis preneur !

Faut-il la saisir en matriciel ?

Voici ce que cela donne dans Excel 365

image

Merci

Stéphane

bonjour

racourcix

cette fonction existe déjà dans le complément excel pratique

après perso cette fonction n'a de sens que si la couleur observée est issue de mfc

je me vois mal mettre des couleurs a la main comme ca pour une raison ou une autre dans les cellules
et faire une fonction de comptage de couleur
sauf qu'en UDF le displayformat n'est pas dispo (blocage Microsoft)mais (c'est sans compter sur les astuces a patosh

j'ai d'ailleurs publié un article dans les ressources "leçons et tutoriels"sur ce point (en attente de modération sur XLD)

à méditer

saboh12617

oui en effet le seul inconvénient est bien le spill qui est absent en dessous 2021

et la malheureusement les formules devront être validées en matriciel

Oui c'est bien ce qu'il me semblait. j'avais essayé d'accéder aux cellules adjacentes depuis l'UDF mais c'est impossible. Il faut passer par du CSE sur les anciennes versions, ce qui casse selon moi tout l'intérêt des formules comme filtre qui s'étendent

Bon courage Patrick !

non ca casse pas forcement
pour faire la même chose que filtre il faut utiliser index/equiv /ligne ou colonne dans une formule a en perdre ses petits
la la formule est plus claire
et avec index equiv on est obligé de faire du matriciel

et tout a fait entre nous le spill perso je m'en serait passé moi

il faut suffisamment d'espace a laisser pour que les fonction renvoie les datas ca fait des tableaux un peu trop éclatés dans les feuilles

et puis avec le matriciel tu limite le nombre si tu veux avec le spill tu maitrise rien ca renvoie tout

après sincèrement je pourrais imiter le spill (moyennant quelque petites astuces),j'ai fait quelques essais
mais franchement je n'en vois pas trop l'intérêt

Hello,

Si avec ExcelDna on peut simuler le Spill automatique grâce à la fonction dnaResize, le seul problème c'est la suppression de la formule : il faut sélectionner toute la zone qui a été concernée par le Spill. Voir ici

Ami calmant, J.P

Hello,

Si avec ExcelDna on peut simuler le Spill automatique grâce à la fonction dnaResize, le seul problème c'est la suppression de la formule : il faut sélectionner toute la zone qui a été concernée par le Spill. Voir ici

Ami calmant, J.P

J'ai perdu ma licence 365 en changeant de travail, ton add-in m'intéresse. Je n'ai pas de compte excel-downloads, peux-tu me transmettre ton fichier ? Merci beaucoup.

Le code est dispo sur github ?

Bonjour jurassic pork

tu oublie de dire qu'il nous faut la classe resizer et toutes les fonctions dedans

je vois que tu l'utilise dans ton complement mais un exe d'installation est proscrit chez moi
si tu veux bien donner cette classe je l'intègre voir le XLL c'est encore mieux

Puisqu'ici on ne peut pas faire "citer" avant 500 messages , je réponds en rafale :

Pour saboh12617 : Non le code n'est pas disponible sur github et le complément n'est disponible que sur Excel-Downloads, je ne l'envoie à personne. Pourquoi ne t'inscris-tu pas chez Excel-Downloads , c'est gratuit et comme cela tu peux télécharger les ressources à disposition.

Pour PatrickT , la classe ArrayResizer est disponible chez Github dans ExcelDna/Samples

Ami calmant, J.P

Bonjour,

Tu arriverais à reproduire l'effet de "spill"/extension automatique ?

Pour les fonctions postérieures à XL2024, avec LAMBDA + LET on peut les reproduire soi-même assez bien avec les fonctions lambda nommées, sauf peut être les REGEX effectivement qui sont un peu une famille à part.

Pour les regex il existe deux librairies VBA plutôt utiles :

  • Microsoft VBScript Regular Expressions 1.0
  • Microsoft VBScript Regular Expressions 5.5

Je ne sais en revanche pas à quel point elles pourraient reproduire le comportement de ces fonctions.

Les fonction regex (test/extraire/replace) sont faites

mais ca n'a rien a voir avec le spill

j'ai fait plusieurs essais et tentative même en vba je n'arrive pas a passer par dessus

ne pouvant pas tester j'ai pris la décision que ce sera matriciel ou rien

les fonctions elles renvoie bien les tableaux quand elles le doivent

Hello,

Juste une idée à lakon....

Pour les formules dites "dynamiques", et en fonction des versions Xl, pourquoi ne pas mettre un msg complémentaire, style "Pour obtenir le résultat, veuillez étendre cette formule sur xx lignes"...

La fonction calcule en interne la zone impactée (nb lignes, nb colonnes)

Si la version Xl est >= 2021, pas de soucis

Si <2021, ce msg en réponse, histoire d'aiguiller l'utilisateur sur le nombre de lignes/colonnes nécessaires pour afficher le résultat

C'était juste en passant, avant le match

Bonne soirée (et bon courage pour ce projet)

PatrickT , je ne comprends pas trop ce que tu "Bricoles" (passer par dessus qu'est-ce que ça veut dire ? ) mais sache que la fonction SequenceJP de mon complément fonctionne aussi sous Excel2021 avec un retour de la fonction C# :

       return ArrayResizer.dnaResize(oResult);  

Dans Excel 2021 SequenceJP ne sert à rien vu que Sequence existe

Rechercher des sujets similaires à "porter fonctions natives 365 versions anterieur pauvre"