Sub NouveauFichier()
Dim Chemin As Variant, valA1 As Variant, valB1 As Variant
Dim Tbv() As Variant
Dim count As Long, i As Long, fichier As Variant
Dim nomFichiers As String
Chemin = Application.GetOpenFilename( _
FileFilter:="Fichiers Excel (*.xlsm; *.xlsb; *.xls; *.xlsx), *.xlsm; *.xlsb; *.xls; *.xlsx", _
MultiSelect:=True)
If TypeName(Chemin) = "Boolean" Then
MsgBox "Aucun fichier sélectionné.", vbExclamation
Exit Sub
End If
count = 0
nomFichiers = ""
For Each fichier In Chemin
On Error Resume Next
valA1 = GetObject(fichier).Worksheets(1).Range("A1").Value
valB1 = GetObject(fichier).Worksheets(1).Range("B1").Value
On Error GoTo 0
If Not IsEmpty(valA1) Then
count = count + 1
ReDim Preserve Tbv(1 To 2, 1 To count)
Tbv(1, count) = valA1
Tbv(2, count) = valB1
nomFichiers = nomFichiers & Split(Dir(fichier), ".")(0) & "-"
End If
Next fichier
If Right(nomFichiers, 1) = "-" Then
nomFichiers = Left(nomFichiers, Len(nomFichiers) - 1) ' Supprimer le dernier tiret
End If
Sheets("resultat").Cells.Clear
For i = 1 To count
Sheets("resultat").Cells(i, 1).Value = Tbv(1, i)
Sheets("resultat").Cells(i, 2).Value = Tbv(2, i)
Next i
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & nomFichiers & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.DisplayAlerts = True
MsgBox "Les valeurs ont été recueillies avec succès !"
End Sub