Problème de conversion suite à une RechercheV

Bonjour à tous et toutes,

Je me permets de créer ce sujet car j'ai un problème sur ma macro qui me permet de créer des dossiers et sous dossiers en fonction du numéro de facture. En effet au niveau de la recherchev (code présent ci-dessous), comme vous pouvez le voir sur le fichier "Création dossier forum" dans l'onglet "GLOBAL" (image ci-dessous) tout à l'air de bien marcher sauf à deux endroits où on dirait que la recherchev ne trouve pas la correspondance et affiche donc des correspondances erronées, or ces éléments se trouvent bien dans ma "Table conversion".

Function InitialiserTP()
    Dim nbLignes As Long
    Dim nomTP As String
    Dim ligneDebutTP As Long
    Dim ligneFinTP As Long
    Dim NouveauTP As String
    Dim Plage As Range
    Dim InfoComplémentaire As String

    nbLignes = ThisWorkbook.Sheets("GLOBAL").Cells(Rows.Count, 1).End(xlUp).Row
    ligneDebutTP = 2

    Set Plage = ThisWorkbook.Sheets("Table conversion").Range("A:C")

    While ligneDebutTP <= nbLignes
        nomTP = ThisWorkbook.Sheets("GLOBAL").Cells(ligneDebutTP, 2).Value
'        Debug.Print ThisWorkbook.Sheets("GLOBAL").Cells(ligneDebutTP, 2).Value
        ligneFinTP = CalculerDerniereLigneTP(nomTP, ligneDebutTP)
        On Error Resume Next
        NouveauTP = Application.WorksheetFunction.VLookup(nomTP, Plage, 2, 0)
        If Err.Number > 0 Then
            Err.Clear
            For i = ligneDebutTP To ligneFinTP
                ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Value = "NON TROUVE" 'Modification de la colonne TP pour avoir les nouveaux noms TP
                ThisWorkbook.Sheets("GLOBAL").Cells(i, 4).Value = "" 'Rajout des infos complémentaires en fonction du TP
                ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Interior.Color = RGB(255, 0, 0)
                ThisWorkbook.Sheets("GLOBAL").Cells(i, 4).Interior.Color = RGB(255, 0, 0)
            Next i
        Else
            InfoComplémentaire = Application.WorksheetFunction.VLookup(nomTP, Plage, 3, 0)
            If (NouveauTP <> "") Then
                For i = ligneDebutTP To ligneFinTP
                    ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Value = NouveauTP 'Modification de la colonne TP pour avoir les nouveaux noms TP
                    ThisWorkbook.Sheets("GLOBAL").Cells(i, 4).Value = InfoComplémentaire 'Rajout des infos complémentaires en fonction du TP
                    ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Interior.Color = RGB(212, 229, 244)
                    ThisWorkbook.Sheets("GLOBAL").Cells(i, 4).Interior.Color = RGB(212, 229, 244)
                Next i
            End If
        End If
        On Error GoTo 0

    ligneDebutTP = ligneFinTP + 1
    Wend

End Function
image

J'aurais donc besoin de votre aide car j'ai beau tourner le problème dans tous les sens je ne vois pas la solution.
Je vous joins le fichier contenant la macro (dans le module "ConversionTP") ainsi que le fichier d'import ("Extraction forum").

Merci pour votre aide futur sur ce sujet.

Bonne journée

bonjour,

ce n'est pas un problème de recherchev.

C'est cette ligne pose problème

        If (InStr(1, nomTP_v, ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Value) > 0) Then

lorsque nomTP_v contient "AIOSANTE GMC HENNER", la condition est vraie pour les lignes "GMC". et donc toutes les lignes allant de "AIOSANTE GMC HENNER" à "GMC" seront considérées comme devant faire l'objet de la même conversion.

Tu peux adapter ton code ainsi.

Function CalculerDerniereLigneTP(nomTP_v As String, debutTP_v As Long) As Long 'calcul la dernière ligne du fichier GLOBAL
    Dim i As Long
    Dim nbLignes As Long
    Dim finTP As Long

    nbLignes = ThisWorkbook.Sheets("GLOBAL").Cells(Rows.Count, 1).End(xlUp).Row
    For i = debutTP_v To nbLignes
        If nomTP_v = ThisWorkbook.Sheets("GLOBAL").Cells(i, 3).Value Then 'tant qu'on a le même nom
            finTP = i
        Else
            Exit For
        End If
    Next i
  CalculerDerniereLigneTP = finTP
End Function

Bonjour h2so4,

Je viens de faire la modification est ça marche parfaitement, je te remercie pour ton aide car je ne savais plus quoi faire pour trouver la solution.
Et il est vrai que je n'avais pas regardé sur mon calcul de dernière ligne si le problème pouvait venir de là.

En tout cas je te remercie énormément.

Bonne journée

Rechercher des sujets similaires à "probleme conversion suite recherchev"