Problème de code "Application.WorksheetFunction.Match"

MelaAllIn

XLDnaute Nouveau
Bonjour,

J'ai un souci sur un bout de code que j'ai obtenu via Excel Download et que j'ai modifié pour mon besoin (je n'y connais pas grand chose en vba) :

Code:
Sub ModifierContact()
Dim ARP, NbLignes As Long
    ARP = Application.InputBox(Prompt:="Code ARP pour lequel vous souhaitez modifier le contact :", Title:="Modifier un contact", Type:=2)
    If ARP = "Faux" Then Exit Sub
    With ThisWorkbook.Worksheets("1-Datas")
        NbLignes = .Range("A65536").End(xlUp).Row
        If Application.WorksheetFunction.Match(ARP, .Range("A6:A" & NbLignes), CStr(ARP)) = 0 Then
            MsgBox Prompt:="Code ARP introuvable", Title:="Erreur", Buttons:=vbCritical
            Exit Sub
        End If
        Ligne = Application.WorksheetFunction.Match(ARP, .Range("A6:A" & NbLignes), 0) + 1
    End With
    ModifContactUSF.Show
End Sub

L'erreur se produit sur les 2 "Application.WorksheetFunction.Match"
Erreur d'execution 1004 : Impossible de lire la propriété Match de la classe WorksheetFunction.

Est-ce que quelqu'un verrait d'où peut venir le problème ???
D'avance merci à tous.

MelaAllIn
 

Bebere

XLDnaute Barbatruc
Re : Problème de code "Application.WorksheetFunction.Match"

bonjour MelaAllIn

avec ce code peut être,pas testé

Sub ModifierContact()
Dim Rng As Range
Dim ARP, NbLignes As Long

ARP = Application.InputBox(Prompt:="Code ARP pour lequel vous souhaitez modifier le contact :", Title:="Modifier un contact", Type:=2)

If ARP = "" Then Exit Sub

With ThisWorkbook.Worksheets("1-Datas")
NbLignes = .Range("A65536").End(xlUp).Row
Set Rng = .Range("A6:A" & NbLignes)
End With

ligne = Application.Match(ARP, Rng, False)

If IsError(ligne) Then
Debug.Print "Pas trouvé"
Else
' Debug.Print "Trouvé en ligne " & ligne
ModifContactUSF.Show
End If

end sub

à bientôt
 

MelaAllIn

XLDnaute Nouveau
Re : Problème de code "Application.WorksheetFunction.Match"

Merci Bebere pour ta réponse !
Ton bout de code enlève le message d'erreur, par contre, je passe à chaque fois dans la boucle If IsError(ligne)...
Donc, il ne dois pas récupérer la bonne info (de ce que je comprend au vba, du moins :confused:)
D'autres idées ?...
D'avance Merci.
MelaAllIn
 

MelaAllIn

XLDnaute Nouveau
Re : Problème de code "Application.WorksheetFunction.Match"

Petite erreur, ma variable Ligne était mal définie...
En fait, avec ton nouveau bout de code, j'ai toujours une erreur à cet endroit :
Ligne = Application.Match(ARP, Rng, 0).

Erreur d'execution 13 : Incompatibilité de type.

J'ai défini ma variable Ligne comme suit :
Public Ligne as Long

:(
 

Bebere

XLDnaute Barbatruc
Re : Problème de code "Application.WorksheetFunction.Match"

Melaallin
içi emploi de la fonction,tu as la méthode aussi (voir aide)
comme suit arp doit être du texte
ARP = InputBox(Prompt:="Code ARP pour lequel vous souhaitez modifier le contact :", Title:="Modifier un contact")
testé et ok
à bientôt
 

Statistiques des forums

Discussions
312 386
Messages
2 087 854
Membres
103 670
dernier inscrit
kick712