Recherche & référence Array_Pos

  • Initiateur de la discussion Initiateur de la discussion Magic_Doctor
  • Date de début Date de début

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 !

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
 
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)
 
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
 
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:
@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
 
"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:
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:
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
😉
 
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... 😂🤣😂
 
Dernière modification par un modérateur:
"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 !
 
- 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
0
Affichages
515
Réponses
5
Affichages
241
Retour