BUG: VBA ne fonctionne plus correctement

Bonjour,

Suite à une question que j'ai posée (comment fusionner deux fonction excel), Eric m'a apporté une réponse utilisant VBA.

Je l'ai essayée, elle a fonctionné. Puis je me suis mis à coder (je n'ai jamais fait de VBA, mais je programme dans 11 autres langages).

La nouvelle fonction que j'ai développée (très simple) n'a pas fonctionné (étrange) et je me suis rendu compte que la fonction fournie par Éric ne fonctionnait plus non plus sur ma machine. J'ai re-lancé Excel, redémarré mon ordi…. rien n'y fait.

Voir le fichier ci-dessous qui doit afficher "c" au lieu de "Erreur Find". Ca marche parfaitement sur la machine d'Eric, Ca ne fonctionne pas du tout sur la mienne. Et chez vous ? Une idée ?

Function rechercheP(val_recherchee As Variant, tabl_recherche As Range, matrice_donnees As Range, col_donnees As Long) As Variant
    Dim c As Range
    Set c = tabl_recherche.Find(val_recherchee, LookIn:=xlValues, lookat:=xlWhole)
    If c Is Nothing Then
        rechercheP = "Erreur Find"
    Else
        rechercheP = matrice_donnees.Cells(c.Row - matrice_donnees.Row + 1, matrice_donnees.Column - col_donnees)
    End If
End Function

J'utilise Excel 2011 pour MAC Version 14.4.2

screenshot 2014 07 20 at 11 26 34
22test3.xlsm (39.78 Ko)

Bonjour,

Ce fichier fonctionne parfaitement chez moi.

Si ce problème persiste, tu peux tenter cette formule :

=SIERREUR(RECHERCHEV(E4;CHOISIR({1.2};C4:C9;B4:B9);2;0);"Erreur")
8test3.xlsm (15.33 Ko)

Bonjour,

J'ai téléchargé et ouvert votre fichier. À l'ouverture, la case F4 affichait "d" !!!! Mais lorsque j'ai changé la valeur de E4, le message "Erreur Find" est réapparut…

En revanche votre solution SIERREUR…. fonctionne bien.

Je souhaiterais toutefois régler le problème avec find, parce que cette macro n'est qu'un tout petit morceau du programme que je veux écrire, et je ne pourrai pas passer par des formules pour y arriver.

Bonjour,

Le fonctionnement semble correct avec la formule

=rechercheP(E4;C4:C9;B4:B9;1)

A+

8test3.xlsm (15.27 Ko)

Merci pour votre réponse.

Ma formules est

=rechercheP(E4,C4:C9,B4:B9,1)

avec des points-virgule, ça me donne une erreur.

J'ai une version excel française, installée sur un MAC QWERTY.

J'ai changé la langue du système en "Français". Lorsque j'ouvre excel, il prend bien les ";" et refuse les "," dans les formules, mais le fichier ne fonctionne toujours pas.

Y-a-t-il un moyen de déboguer ?

Je pense qu'on peut clore le sujet : c'est un bug excel, la fonction Find ne fonctionne pas et en deux ans, Microsoft n'a pas réussi à sortir un correctif…

Plus d'infos ici (en anglais) :

http://stackoverflow.com/questions/16896566/mac-excel-2011-vba-udf-not-working-set-or-find-command-seems-to-be-the-issue

Autre bug : Je ne peux pas voir le code VBA dans les fichiers que vous poster. Lorsque j'affiche le contenu du module, la fenêtre est vide...

Re,

Je confirme le bug sous Mac et Excel 2011 à jour.

Cdlt.

nb : j'ai galéré pour trouver la fonction VBA... Je ne sais même pas comment j'ai fais pour là trouver

Merci d'avoir effectué le test. J'ai perdu deux jours sur ce problème…

Rechercher des sujets similaires à "bug vba fonctionne correctement"