Fonction application.match

bonjour

j'ai un petit soucis pour mettre en place la fonction " application.match " dans mon bout de code que voici

Dim Cible As String
Dim x As Long
Cible = Sheets("Feuil1").Range("L19")

x = Application.Match(Cible, Worksheets("Feuil2").Columns("D9:D55"), 0)

If x <> 0 Then

MsgBox "valeur non trouvée"
End If  
end sub

le probleme est que cela ne marche pas , le zero veut il dire que si la cible est trouvée alors on affecte un zero ?

Merci pour vos conseils

Bonjour,

Non le 0 signifie que tu cherches une correspondance exacte.

Sinon pourquoi :

Worksheets("Feuil2").Columns("D9:D55")

?

Essais avec un simple :

Worksheets("Feuil2").Range("D9:D55")

Personnellement, j'ai testé, et le code suivant fonctionne très bien :

test = Application.Match(Range("F13"), Range("A1:D1"), 0)

Cordialement,

Merci Zirak , je vais voir tout ca !


en ayant ecrit le code comme suit :

Dim Cible As String
Dim x As Long
Cible = Sheets("Feuil1").Range("L19")

x = Application.Match(Cible, Worksheets("Feuil2").range("D9:D55"), 0)

If x = 0 Then

MsgBox "valeur non trouvée"
End If  
end sub

j'ai toujours le message "valeur non trouvée" , meme si la valeur se trouve bien dans la plage D9:D55 , pourtant je veux juste comparer la valeur de la cellule L19 de ma feuille 1 à une plage D9:D55 de ma feuille 2 , et que si la valeur est trouvé , pas de message , par contre si la valeur n'est pas trouvée , alors j'ai le message " valeur non trouvée "

et avec le code que j'ai ecris j'ai systematiquement le message " valeur non trouvee" meme si elle s'y trouve .. javoue ne pas comprendre

Vérifies si dans ta plage de recherche (ou dans ta cellule L19), si tu écris bien de la même manière la valeur que tu cherches, qu'il n'y a pas des espaces ou autres, etc. etc.

J'ai testé cette macro :

Sub test()

Dim Cible As String
Dim x As Long
Cible = Sheets("Feuil1").Range("L19")

x = Application.Match(Cible, Worksheets("Feuil2").Range("D9:D55"), 0)

If x = 0 Then

MsgBox "valeur non trouvée"
End If
End Sub

En Feuil2 sur la plage D9:D55, j'ai mis le début de l'alphabet (A, B, C,....)

En L19 de la Feuil1, j'ai mis D et j'ai lancé la macro

J'ai bien eu x = 4 et pas de message d'affiché.

Surtout que ta macro ne gère pas les erreurs en l'état, donc si la fonction match ne retrouve pas ta valeur, VBA affiche un message d'erreur d'incompatibilité de type.

Cordialement,

la taille des caractères n'est pas la meme , est ce que cela influe t il sur la bonne execution du code ?

Normalement non.

Sinon joints un bout de fichier exemple, que je vois si l'erreur ne vient pas d'autre chose.

Cordialement,

erreur, post à supprimer svp

Rechercher des sujets similaires à "fonction application match"