Bonjour à tous,
Etant quelque peu novice à l'utilisation de VBA, je bloque sur un problème qui me paraît pourtant simple. J'ai eu beau écumer les forums en tout genre, aucune des solutions données n'a semblé marcher.
Ce que je veux faire: J'ai une liste de techniciens avec leur managers attitrés. Lorsque j'extrais les données de mes techniciens sur Excel, je souhaite que le nom de leurs managers s'affichent en face de leur n° perso d'entreprise. Il n'y a qu'un manager par technicien. Sur le tableau excel, c'est une formule VLOOKUP toute simple, mais en VBA je bloque depuis 3 jours sur une seule et même ligne.
J'ai une 1e feuille, "Extract2": les données par technicien (plusieurs lignes par technicien).
Feuille "managers": tableau avec en colonne B le nom de chaque technicien, en colonne C le nom du manager attitré.
Mon code:
Sub extract()
Dim State() As Variant
Dim derniereligne As Integer
Dim manager() As String
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Set sheet1 = ThisWorkbook.Sheets("Extract2")
Set sheet2 = ThisWorkbook.Sheets("Managers")
sheet1.Select
derniereligne = Range("A1").End(xlDown).Row
For i = 1 To derniereligne
manager(i) = Application.VLookup(sheet1.Range(Cells(i,26)), sheet2.Range("$B$4:$C$461"), 2, False)
Cells(i, 30).Value = manager(i)
Next i
End Sub
Cette solution me paraît la meilleure, mais j'ai toujours l'erreur 1004 Method_range of object Worksheet failed.
J'espère que ma question est claire
Merci
Etant quelque peu novice à l'utilisation de VBA, je bloque sur un problème qui me paraît pourtant simple. J'ai eu beau écumer les forums en tout genre, aucune des solutions données n'a semblé marcher.
Ce que je veux faire: J'ai une liste de techniciens avec leur managers attitrés. Lorsque j'extrais les données de mes techniciens sur Excel, je souhaite que le nom de leurs managers s'affichent en face de leur n° perso d'entreprise. Il n'y a qu'un manager par technicien. Sur le tableau excel, c'est une formule VLOOKUP toute simple, mais en VBA je bloque depuis 3 jours sur une seule et même ligne.
J'ai une 1e feuille, "Extract2": les données par technicien (plusieurs lignes par technicien).
Feuille "managers": tableau avec en colonne B le nom de chaque technicien, en colonne C le nom du manager attitré.
Mon code:
Sub extract()
Dim State() As Variant
Dim derniereligne As Integer
Dim manager() As String
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Set sheet1 = ThisWorkbook.Sheets("Extract2")
Set sheet2 = ThisWorkbook.Sheets("Managers")
sheet1.Select
derniereligne = Range("A1").End(xlDown).Row
For i = 1 To derniereligne
manager(i) = Application.VLookup(sheet1.Range(Cells(i,26)), sheet2.Range("$B$4:$C$461"), 2, False)
Cells(i, 30).Value = manager(i)
Next i
End Sub
Cette solution me paraît la meilleure, mais j'ai toujours l'erreur 1004 Method_range of object Worksheet failed.
J'espère que ma question est claire
Merci