Somme des rechercheV sur plusieurs fichiers VBA
s
Bonjour,
Je rencontre un problème à faire fonctionner ma macro, le principe est simple, je sélectionne trois sources (une source = 1 mois), et la macro du fichier "macro conso totale des 3 mois" fait la somme des recherchesV pour chaque référence.
J'ai des difficultés à intégrer la somme dans la boucle de objfichiers.counts.
Quelqu'un peut m'aider ?
Code de macro :
Sub Utilisation_FileDialog_Ouvrir()
Dim objOuvrir As FileDialog
Dim objFichiers As FileDialogSelectedItems
Dim x As Long
Dim Wb As Workbook
'Affiche la fenêtre "Ouvrir"
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = ""
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel", "*.xlsx"
'Indique le type d'affichage dans la boîte de dialogue
.InitialView = msoFileDialogViewDetails
.Show
End With
'Définit le ou les fichiers à ouvrir
Set objFichiers = Application.FileDialog(msoFileDialogOpen).SelectedItems
'On sort si aucun fichier n'a été sélectionné
If objFichiers.Count = 0 Then Exit Sub
Application.ScreenUpdating = False
'Boucle sur le ou les fichiers Excel sélectionnés pour les ouvrir
For x = 1 To objFichiers.Count
Set Wb = Workbooks.Open(objFichiers(x))
With Range("c2:c" & Cells(Rows.Count, 1).End(xlUp).Row)
.Formula = "=VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(1)).Name & "]Feuil1'!$b:$e,4,0) + VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(2)).Name & "]Feuil1'!$b:$e,4,0) + VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(3)).Name & "]Donnees'!$b:$e,4,0) "
.Value = .Value
Wb.Close False
Next
Application.ScreenUpdating = True
End Sub
g
Bonjour
Telle qu'elle est, ta macro va bugger car il y manque un "End With"
Corrige déjà ça et reessaie.
Bye !
For x = 1 To objFichiers.Count
Set Wb = Workbooks.Open(objFichiers(x))
With Range("c2:c" & Cells(Rows.Count, 1).End(xlUp).Row)
.Formula = "=VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(1)).Name & "]Feuil1'!$b:$e,4,0) + VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(2)).Name & "]Feuil1'!$b:$e,4,0) + VLOOKUP($b2,'[" & Workbooks.Open(objFichiers(3)).Name & "]Donnees'!$b:$e,4,0) "
.Value = .Value
Wb.Close False
End With
Next
Application.ScreenUpdating = True
End Sub