Recherche v avec une boocle

Fermé
oudi - 3 sept. 2014 à 18:06
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 3 sept. 2014 à 19:05
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

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
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
3 sept. 2014 à 19:05
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