Recherche v avec une boocle

oudi -  
Gyrus Messages postés 3360 Statut Membre -
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. oudi
     
    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
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    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