Recherche & référence Array_Pos

Magic_Doctor

XLDnaute Barbatruc
VB:
Function Array_Pos(tableau, recherche)
'**********************************************
'Connaître la position d'un item dans un Array
'**********************************************
'- tableau : une matrice
'- recherche : un item de l'Array
    
Dim i%

    Array_Pos = -1                      'par défaut, la valeur n'a pas été trouvée dans le tableau
    
    For i = LBound(tableau) To UBound(tableau)
        If tableau(i) = recherche Then  'la valeur a été trouvée
            Array_Pos = i
            Exit For
        End If
    Next
    
End Function
 

patricktoulon

XLDnaute Barbatruc
Bonjour
cette fonction existe déjà dans excel et ou vba sous le nom de equiv en excel et match en vba

VB:
Function Array_Pos(tableau, recherche)
    Dim x&
    x = Application.IfError(Application.Match(recherche, tableau, 0), -1)
    If x > 0 And LBound(tableau) = 0 Then x = x - 1 Else x = -1
    Array_Pos = x
End Function

Sub test()
    tableau = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule")
    MsgBox Array_Pos(tableau, "riri")
End Sub
;)
j'en fait une fonction VBA pour rester dans le thème mais c'est absolument inutile
msgbox Application.IfError(Application.Match("riri", tableau, 0), -1)
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Patrick,

tu as écrit :

« cette fonction existe déjà dans excel et ou vba sous le nom de equiv en excel et match en vba »

je crois que Magic_Doctor (salut) veut simplement réécrire
tout le langage VBA et toutes les fonctions Excel. 😁 😜

en toute modestie, bien sûr ! si ça l'amuse, pourquoi pas ?
(j'ai rien contre, hein ? 😄)


soan
 

Magic_Doctor

XLDnaute Barbatruc
On peut donc y arriver par d'autres moyens.
Mais vous pouvez toujours demander à David d'éliminer ce fil, si c'est pour vous une question d'honneur. 🥱
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
@Magic_Doctor
c'est pas que l'on peut y arriver par un autre moyen ni une question d'honneur
c'est que quand un outils existe pourquoi le réinventer en moins bien ?

à proposer des fonctions mal ficelées ou absolument inutile ,tu ne fait que te discréditer

tu en a fait quelques une (bien que mal conçues) très intéressantes (perfectionne les)

tu veux être pris au sérieux?
alors avant de proposer du tout venant
perfectionne ton écriture de code et regarde dans l'aide si des méthodes n'existent pas déjà

regarde si tu n'a pas négligé des coquilles ou des gestions d'erreurs dans tes fonctions

tu es un barbatruc comporte toi comme tel

A méditer
 

Magic_Doctor

XLDnaute Barbatruc
"Barbatruc" (il y eut même, un certain temps, le grade de "Mégabarbatruc"...) est le fruit d'un cumul d'apparitions sur ce forum où j'y suis depuis déjà un certain temps, sans aucune prétention et uniquement pour le fun. À la longue, tout le monde finit, tôt ou tard, par bénéficier de ce titre dont personnellement je me fous mais qui pour certains semble honorifique.
D'abord, je signale que cette fonction n'est pas de moi, je l'ai tout simplement trouvée sur le net. Ensuite, ta brillante solution plante dans mon application, comme c'est bien souvent le cas avec tes solutions péremptoires. Ce n'est pas pour autant que je te réponds sur un ton goguenard.
Vois-tu, il y a un âge où il faut savoir cesser le concours de b****.

[Modération : merci de respecter les articles 1.2 et 1.5 de la Charte XLD ]
 
Dernière modification par un modérateur:

soan

XLDnaute Barbatruc
Inactif
Bonsoir Magic_Doctor, le fil,

euh... je crois que c'est avec 2 « L » minuscules au lieu d'un seul « t » :

« Vois-tu, il y a un âge où il faut savoir cesser le concours de billes. » 😜

(à la récré, j'étais très fort au lancer de billes, et j'aimais bien les jolis calots ! 🤪)


Image.jpg


soan
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
je serais curieux de voir l'exemple qui plante dans le détail

ta brillante solution plante dans mon application, comme c'est bien souvent le cas avec tes solutions péremptoires
faudrait il encore recopier le code correctement et ou utiliser la fonction pour ce qu'elle est sensé faire et tu es bien le seul avec qui elle ne fonctionnent pas 🤣 🤣 🤣
Alors!!!! incompétence ou mauvaise foi de ta part ??;)

VB:
Function Array_Pos(tableau, recherche)
    Dim x&
    x = Application.IfError(Application.Match(recherche, tableau, 0), -1)
    If x > 0 Then x = x - IIf(LBound(tableau) = 0, 1, 0) Else x = -1
    Array_Pos = x
End Function

Sub test2() 'test avec un tableau en base 0
    tableau = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule")
    MsgBox Array_Pos(tableau, "riri")
   MsgBox Array_Pos(tableau, "taratata")
End Sub

Sub test3() 'test avec un tableau en base 1
  Dim tableau(1 To 7)
    tableau(1) = "toto"
    tableau(2) = "titi"
    tableau(3) = "riri"
    tableau(4) = "fifi"
    tableau(5) = "loulou"
    tableau(6) = "truc"
    tableau(7) = "bidule"
    MsgBox Array_Pos(tableau, "riri")
   MsgBox Array_Pos(tableau, "taratata")
End Sub
;)
 

Magic_Doctor

XLDnaute Barbatruc
Re,

N'en déplaise à ton ego surdimensionné, ça plante dans mon appli. C'est tout !
Pourquoi ? Je n'en sais rien. Donc, je reste avec la fonction que j'avais trouvée et là ça marche !
Comprends bien, on peut concevoir la vie sans forcément l'avis de pt... 😂🤣😂
 

Etoto

XLDnaute Barbatruc
Dernière modification par un modérateur:

Magic_Doctor

XLDnaute Barbatruc
"Barbatruc" (il y eut même, un certain temps, le grade de "Mégabarbatruc"...) est le fruit d'un cumul d'apparitions sur ce forum où j'y suis depuis déjà un certain temps, sans aucune prétention et uniquement pour le fun. À la longue, tout le monde finit, tôt ou tard, par bénéficier de ce titre dont personnellement je me fous mais qui pour certains semble honorifique.
D'abord, je signale que cette fonction n'est pas de moi, je l'ai tout simplement trouvée sur le net. Ensuite, ta brillante solution plante dans mon application, comme c'est bien souvent le cas avec tes solutions péremptoires. Ce n'est pas pour autant que je te réponds sur un ton goguenard.
Vois-tu, il y a un âge où il faut savoir cesser le concours de b****.

[Modération : merci de respecter les articles 1.2 et 1.5 de la Charte XLD ]
Là, je reconnais, ça va nettement mieux !
 

Discussions similaires

Réponses
2
Affichages
192
Réponses
2
Affichages
74

Statistiques des forums

Discussions
312 024
Messages
2 084 724
Membres
102 640
dernier inscrit
Alml