XL 2013 les machistes (utilisateurs de Mac OS peuvent ils tester ceci

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
@RyuAutodidacte m' a rappelé un lien vers un amis de l'autre monde concernant une classe pseudo dictionnaire pour MAC
malgré que j'apprécie beaucoup l'auteur (avec qui j'ai même collaboré sur l’accélérateur de requête entre autres ) ,je trouve que c'est un peu usine à gaz

j'ai donc fait les choses à ma façon
mais avant d'aller plus loin car des idées j'en ai plein ,si vous êtes un utilisateur sur MAC pouvez vous tester ce pseudo dictionnaire
sur Windows ça match il me faut confirmation sur MAC

Merci pour vos retours
 

Pièces jointes

  • classe dictionary pour Mac.xlsm
    18.3 KB · Affichages: 10
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Bonjour ryu
ben déjà comme ca et j'en suis presque sur (par rapport à ce que tu me dis )
tu fait les choses à l'envers
l'erreur que tu a c'est par ce que le if donne faux

on exit pas une fonction par ce qu'elle donne bon mais par ce qu'elle donne faux
mais avant on lui donne une valeur sinon elle va déclencher une erreur sur l'appelant mais tu aurra l'erreur sur la fonction en jaune dans vbe alors que la fonction a tout simplement rien renvoyé

VB:
function mafonction(a,b,c,etc...)
'blablabla
'blablabla
'blablabla
if blablabla=false then mafonction="ceci":exit function
mafonction=letrucdeblablabla
end function

donne moi le code la fonction
Re,
Dans les variables locales :
1698660178067.png

1698660214893.png

UBound(CF) = -1 renvoie Vrai
je donne la valeur False au nom de la Function => Items_Keys = False
ca plante à Exit Function
 
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Je fais ca :
VB:
Sub test()
    A = Array("toto", "titi", "U3", "riri", "fifi", "toto", "E3", "loulou", "tutu", "toto1", "toto2", "U2", "E1", "tata", "fifi", "titi", "E2", "U1")
    R = Filtr(A)
   MsgBox R
End Sub

Function Filtr(A)
     F = Filter(A, "Z")
     If UBound(F) = -1 Then Filtr = False: Exit Function
End Function

ca pose pourtant pas de pb dans un module
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
2013 mais c'est pareil pour tous
a oui la filter de vba pardon !!!!
mais attention elle renvoie aussi false quand il y a pas d'occurence !!!!!!




VB:
Const exclure As Boolean = False
Const inclure As Boolean = True

Sub test()
    A = Array("toto", "titi", "U3", "riri", "fifi", "zaza", "toto", "E3", "zouzou", "loulou", "tutu", "toto1", "toto2", "U2", "E1", "tata", "fifi", "titi", "E2", "U1")
    r = Filtr(A, "z", exclure)
    MsgBox "pas les mots avec ""z""" & vbCrLf & Join(r, ",")

    r = Filtr(A, "z", inclure)
    MsgBox "que les mots avec ""z""" & vbCrLf & Join(r, ",")

    r = Filtr(A, "zy", inclure)
    If r = False Then ' ca peut être aussi : if isarray(r)
        MsgBox " par de mot avec ""zy"""
    Else
        MsgBox "que les mots avec ""z""" & vbCrLf & Join(r, ",")
    End If
End Sub

Function Filtr(A, Lettre, incexclu)
    f = filter(A, Lettre, incexclu, 1)
    If UBound(f) = -1 Then Filtr = False: Exit Function
    Filtr = f
End Function

il faudra quand même m'expliquer aussi pourquoi passer par la function passerelle "filtr"
c'est Absurde
 

Statistiques des forums

Discussions
315 120
Messages
2 116 443
Membres
112 745
dernier inscrit
mcanas