Macro recherche v

Bonjour,

Dans une Feuille "SETUP" j'ai une table avec des noms et des matricules, dans une autre SAP DETAIL j'ai des noms dans les colonnes personnel.

Il faudrait qu'à chaque fois que j'ai un nom dans la colonne personnel, il soit remplacer par le numéro de matricule se trouvant dans la feuille SETUP, quand la cellule est vide rien ne doit être indiqué.

Merci de votre aide.

Bonjour veste, le forum,

Un début de réponse:

Sub matricule()

Dim i As Integer
    For i = 2 To 500   ' à adapter

    Range("D" & i).Value = Application.VLookup(Range("D" & i), Sheets("SETUP").Range("E1:F5"), 2, False)

    Next i

End Sub

Cordialement,

Code amélioré:

Sub matricule()

    Dim i As Integer
    Dim DernLigne As Long

        DernLigne = Range("D" & Rows.Count).End(xlUp).Row

            For i = 2 To DernLigne

        If IsNumeric(Range("D" & i)) = False Then 'si la valeur n'est pas un nombre, RechercheV, sinon rien

    Range("D" & i).Value = Application.VLookup(Range("D" & i), Sheets("SETUP").Range("E1:F5"), 2, False)

        End If

            Next i

    End Sub
     

Bonjour,

Merci pour tes réponses , je viens de tester mais cela ne fonctionne pas, j'ai des # N/A qui s'affiche à la place des noms.

Bonjour veste, le forum,

Essaie le fichier joint, il fonctionne chez moi (excel2010) :

Cordialement,

Bonjour,

Effectivement ca fonctionne, en manipulant mon fichier j'ai du suprimer une colonne dans la feuille SETUP ce qui explique l'erreur.

J'essaye d'amméliorer ton code afin que les colonnes F,G,H,... soit aussi prise en compte mais pour l'instant je bloque.

Re, veste,

Il y a peut-être moyen de faire plus simple.... mais je ne sais pas faire mieux pour l'instant

Sub matricule() 'colonne D,F,H et J

        Dim i As Integer
        Dim DL1 As Long

            DL1 = Range("D" & Rows.Count).End(xlUp).Row
            DL2 = Range("F" & Rows.Count).End(xlUp).Row
            DL3 = Range("H" & Rows.Count).End(xlUp).Row
            DL4 = Range("J" & Rows.Count).End(xlUp).Row

                For i = 2 To DL1
            If IsNumeric(Range("D" & i)) = False Then 'si la valeur n'est pas un nombre, RechercheV, sinon rien
        Range("D" & i).Value = Application.VLookup(Range("D" & i), Sheets("SETUP").Range("E1:F5"), 2, False)
            End If
                Next i

                For i = 2 To DL2
            If IsNumeric(Range("F" & i)) = False Then 'si la valeur n'est pas un nombre, RechercheV, sinon rien
        Range("F" & i).Value = Application.VLookup(Range("F" & i), Sheets("SETUP").Range("E1:F5"), 2, False)
            End If
                Next i

                For i = 2 To DL3
            If IsNumeric(Range("H" & i)) = False Then 'si la valeur n'est pas un nombre, RechercheV, sinon rien
        Range("H" & i).Value = Application.VLookup(Range("H" & i), Sheets("SETUP").Range("E1:F5"), 2, False)
            End If
                Next i

                For i = 2 To DL4
            If IsNumeric(Range("J" & i)) = False Then 'si la valeur n'est pas un nombre, RechercheV, sinon rien
        Range("J" & i).Value = Application.VLookup(Range("J" & i), Sheets("SETUP").Range("E1:F5"), 2, False)
            End If
                Next i

        End Sub

Salutations,

Merci beaucoup,

çà à l'air de fonctionner.

Rechercher des sujets similaires à "macro recherche"