Making a catalog of pictures
Avoid Selecting of Activating Object unless absolutely necessary Excel VBA Introduction Part 5 - Selecting Cells (Range, Cells, Activecell, End, Offset). 

Writing an array of values to a worksheet is much faster than writing the values individually.

The Worksheet.Pictures method returns a collection of pictures on the worksheet.
You can get a subset of pictures by passing an Array of Indices as a parameter to the Worksheet.Pictures method:


 ActiveSheet.Pictures(Array(1,2,30))



Or an Array of names:


 ActiveSheet.Pictures(Array("Picture 1","Picture 2","Picture 3"))



You can also work on the whole collection or subset at once:


 ActiveSheet.Pictures.Delete



Formatting a range of cells is much faster than formatting each cell in a range.


Columns("H:I").ClearContents
Columns("H").NumberFormat = "@"



Short compact code is much easier to read.

Which is easier to read?




h = hDefaut
h = h - 4



Or


 h = hDefaut - 4






Largeur = Imag.Width
Hauteur = Imag.Height
Largeur = Largeur * Rapport
Hauteur = Hauteur * Rapport
Imag.Width = Largeur
Imag.Height = Hauteur



Or 


Largeur = Imag.Width * Rapport
Hauteur = Imag.Height * Rapport






With Worksheets("Pix")
   DerLig = .Range("H" &amp; Rows.Count).End(xlUp).Row
   ActiveWorkbook.Names("PicTable").Delete
   ActiveWorkbook.Names.Add Name:="PicTable", RefersTo:="=Pix!$H$2:$H$" &amp; DerLig
End With



The code above can be simplified:


With Worksheets("Pix")
   .Range("H2",.Range("H" &amp; Rows.Count).End(xlUp)).Name = "PicTable"
End With



MS Access is better suited for this type of thing.  I personally would create a webpage.  Whether I used Excel or a webpage I would create a paginator and avoid embedding the images.  

I refactored your code here: Making a catalog of pictures.xlsm.  Note: I didn't make the Rapport size adjustments but it should be easy enough for you to implement it.