Recherche v avec une boocle

Bonjour,
j'ai deux fichiers excel 2013& 2014 avec les meme pages (60 feuilles) , je veux récupérer certaine infos du classeur 2013 .
le code beug car il aime pas le sheet(i) dans la fonction VLOOKUP, y a il un moyen de faire tourner une recherche v avec une boucle

For i = 1 To 60
If Workbooks("file2013").Sheets(i).Name = Workbooks("file2014").Sheets(i).Name Then
Workbooks("file2014").Sheets(i).Activate
'nom = Workbooks("file2014").Sheets(i).Name
LigDepTableau = 1
LigFinTableau = Cells(LigDepTableau, 1).End(xlDown).Row
Range("T8").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-17],'[file2013]'Sheets(i)!C3:C11,9,0)"

Range("T8").Select
Selection.AutoFill Destination:=Range("T8:T30")
Range("T8:T30").Select

End If
Next i

2 réponses

  1. c'est bon j'ai trouvé :p
    "=VLOOKUP(RC[-17],'[Hit_Solina_SLIP_2012_13_recode.xls]" & Sheets(i).Name & "'!C3:C11,9,0)"
    il faut sortir Sheets(i).Name de la chaine...
    0
    1. Bonjour,

      Avec le code suivant, on balaye chaque feuille du classeur file2014 et on vérifie si une feuille du classeur file2013 a le même nom.
      Si c'est le cas, on inscrit la formule en T8 dans la feuille concernée du classeur file2014 puis on effectue la copie incrémentée.

      Sub Test()
      Dim WbS As Workbook, WbC As Workbook
      Dim WsC As Worksheet
      Set WbS = Workbooks("file2013.xlsm")
      Set WbC = Workbooks("file2014.xlsm")
      For Each WsC In WbC.Worksheets
      If FeuilleExiste(WbS, WsC.Name) Then
      WsC.Range("T8").FormulaR1C1 = "=VLOOKUP(RC[-17],[" & WbS.Name & "]" & WsC.Name & "!C3:C11,9,FALSE)"
      WsC.Range("T8").AutoFill Destination:=WsC.Range("T8:T30")
      End If
      Next WsC
      End Sub
      Function FeuilleExiste(WbS As Workbook, NomFeuille As String) As Boolean
      Dim Ws As Worksheet
      FeuilleExiste = False
      For Each Ws In WbS.Worksheets
      If Ws.Name = NomFeuille Then
      FeuilleExiste = True
      Exit Function
      End If
      Next
      End Function

      A+
      0