Détecter une erreur lors d'une fonction recherche (ctrl+f)

Bonjour,

Ci-joints deux extraits de fichiers dont "test.xlsm" extrêmement réduit : une cinquantaine de lignes sur 2 colonnes à la place d'une centaine sur 2 colonnes.

Dans le fichier "nom_test", j'ai des références en colonne "G". Le but est de trouver cette référence dans le fichier "test" et de sortir son numéro de colonne ("A" ou "F") qui est ensuite inscrit dans un tableau.

Mon problème est le suivant : il se peut que quelques références de la colonne "G" ne se trouvent pas dans le fichier de base de "test" or comme j'utilise la fonction recherche (ctrl+f), mon programme plante s'il trouve pas le numéro alors que j'aimerai qu'il marque "0" dans mon tableau.

J'écris ensuite la colonne en H juste pour vérification.

J'ai essayé avec :

for i=0 to (fin tableau)
 if Not(IsError( Range("A:A","F:F").find(what:=range(3+i),....))then
'instruction
else table(...)=0
end if
next

mais je suppose que le code "iserror" est réservé aux erreurs de calcul et pas de fonction.

comment faire pour détecter cette erreur ?

Pour lancer le programme :

  • ouvrir seulement test.xlsm
  • cliquer sur "Trouver numéro"
  • sélectionner le fichier "nom_test.xls"

Dans les fichiers joints, toutes les références de "nom_test" sont présentes dans le ficher "test". Pour provoquer l'erreur, il faut rajouter un numéro bidon en bas de la colonne "G", par exemple : 222222.

Excel-ement votre,

Lyricand

14test.xlsm (21.95 Ko)
12nom-test.zip (7.35 Ko)

bonjour,

Essaie :

For i = 0 To FinTablo
        Set trouve = Range("A:A", "F:F").Find(what:=table(0, i), LookIn:=xlFormulas, LookAt:=xlWhole, _
            SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
 If Not trouve Is Nothing Then
      table(1, i) = trouve.Column
 Else
      table(1, i) = 0
 End If
Next

A+

J'ai essayé et ça marche nickel.

Merci beaucoup.

Rechercher des sujets similaires à "detecter erreur lors fonction recherche ctrl"