Vlookup ne fonctionne pas

Bonjour,

j'avais faits un tableau de saisie d'intervention avec les formules dans les cellules, je voudrais faire ca en vba, je me suis donc fait aidé par l'IA copilot qui m'a sorti ce code . mais j'ai un erreur 1004 sur la ligne :

nomClient = Application.WorksheetFunction.VLookup(numeroAlarme, wsClients.Range("A:E"), 2, False)

le Vlookup ne me retourne rien

La fonction est censée aller chercher dans la feuille "clients", chercher le numéro d'alarme dans la colonne A et retourner la valeur des colonne B et C, Nom clients et lieu intervention

Merci pour votre aide .

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wsClients As Worksheet
    Dim wsTableau As Worksheet
    Dim numeroAlarme As String
    Dim nomClient As String
    Dim InterLieux As String
    Dim cellule As Range

    ' Définir les feuilles
    Set wsClients = ThisWorkbook.Sheets("Clients")
    Set wsTableau = ThisWorkbook.Sheets("Tableau") ' Remplacez "Tableau" par le nom de votre feuille de saisie

    ' Vérifier si la modification concerne la colonne Numero alarme
    If Not Intersect(Target, wsTableau.Columns("C")) Is Nothing Then
        For Each cellule In Target
            If cellule.Value <> "" Then
                ' Récupérer le numéro d'alarme
                numeroAlarme = cellule.Value

                ' Rechercher les informations dans la feuille Clients
                'On Error Resume Next
                nomClient = Application.WorksheetFunction.VLookup(numeroAlarme, wsClients.Range("A:E"), 2, False)
                InterLieux = Application.WorksheetFunction.VLookup(numeroAlarme, wsClients.Range("A:E"), 3, False)
            On Error GoTo 0

                ' Afficher la valeur de nomClient
                MsgBox "Le nom du client est : " & nomClient
                MsgBox "Le lieu d'intervention est : " & InterLieux

                ' Remplir les colonnes Nom du client et Service d'intervention
                cellule.Offset(0, 4).Value = nomClient
                cellule.Offset(0, 5).Value = InterLieux

                ' Ajouter la date et l'heure actuelles
                cellule.Offset(0, -2).Value = Date
                cellule.Offset(0, -1).Value = Time
            End If
        Next cellule
    End If
End Sub
Bonjour,

Pourquoi vouloir faire ceci via VBA spécifiquement ? As-tu essayé de mettre la formule manuellement pour voir le résultat ?

Bonjour,
Une petite contribution.
Cdlt.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wsClients As Worksheet
Dim numeroAlarme, n
Dim nomClient As String, InterLieux As String
Dim cellule As Range

    On Error GoTo errHandler

    Set wsClients = ThisWorkbook.Sheets("Clients")

    If Not Intersect(Target, Me.Columns("C")) Is Nothing Then
        For Each cellule In Target
            If cellule.Value <> "" Then
                Application.EnableEvents = False
                numeroAlarme = cellule.Value
                n = Application.Match(numeroAlarme, wsClients.Range("A:A"), 0)
                If IsError(n) Then
                    MsgBox "Le numéro d'alarme est inconnu !", 64, "Information"
                    cellule.Value = vbNullString
                Else
                    nomClient = WorksheetFunction.VLookup(numeroAlarme, wsClients.Range("A:E"), 2, False)
                    InterLieux = WorksheetFunction.VLookup(numeroAlarme, wsClients.Range("A:E"), 3, False)
                    MsgBox "Le nom du client est : " & nomClient
                    MsgBox "Le lieu d'intervention est : " & InterLieux
                    cellule.Offset(0, 4).Value = nomClient
                    cellule.Offset(0, 5).Value = InterLieux
                    cellule.Offset(0, -2).Value = Date
                    cellule.Offset(0, -1).Value = Time
                End If
            End If
        Next cellule
    End If

exitHandler:
    Application.EnableEvents = True
    Exit Sub

errHandler:
    MsgBox "Erreur : " & Err.Number & Chr(10) & Err.Description
    Resume errHandler

End Sub

whoooa .. merci pour ta contribution, incroyable ca marche niquel.

Quel etait l'erreur stp histoire que je comprenne ce qui bloquait ?

Merci encore

Bonjour,
Il faut faire attention au typage des variables (dans ce cas en variant).
Cdlt.

Dim numeroAlarme, n
Rechercher des sujets similaires à "vlookup fonctionne pas"