Bonjour,
Une piste avec un Spreadsheet ici nommé "Spreadsheet1" (clic droit sur la boite à outils --> Contrôles supplémentaires..." et chercher "Microsoft Office Spreadsheet x.x" où x.x est la ou les versions disponibles. Le code ci-dessous défini la plage sur toute la feuille, borne là si tu ne veux récupérer qu'un partie et surtout, adapte à tes besoins :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim Cel As Range
Set Plage = DefPlage(ActiveSheet)
'Spreadsheet1.Range(Plage).Value = Plage.Value
For Each Cel In Plage
With Spreadsheet1.Cells(Cel.Row, Cel.Column)
With .Font
.Name = Cel.Font.Name
.Size = Cel.Font.Size
.Color = Cel.Font.Color
.Bold = Cel.Font.Bold
.Italic = Cel.Font.Italic
.Underline = Cel.Font.Underline
End With
.Value = Cel.Value
.Interior.Color = Cel.Interior.Color
End With
Next Cel
End Sub
Function DefPlage(Fe As Worksheet) As Range
With Fe
Set DefPlage = .Range(.Cells(1, 1), .Cells( _
.Cells.Find("*", .Cells(1, 1), -4123, , 1, 2).Row, _
.Cells.Find("*", .Cells(1, 1), -4123, , 2, 2).Column))
End With
End Function