Bien que ma recommandation soit de tirer parti de l'automatisation disponible à partir de Doality.com spécifiquement Gestionnaire d'images pour Excel
Le code vba suivant devrait répondre à vos critères. Bonne chance !
Ajoutez un contrôle de bouton à votre classeur Excel, puis double-cliquez sur le bouton pour accéder au code VBA.
Sub Button1_Click()
Dim filePathCell As Range
Dim imageLocationCell As Range
Dim filePath As String
Set filePathCell = Application.InputBox(Prompt:= _
"Please select the cell that contains the reference path to your image file", _
Title:="Specify File Path", Type:=8)
Set imageLocationCell = Application.InputBox(Prompt:= _
"Please select the cell where you would like your image to be inserted.", _
Title:="Image Cell", Type:=8)
If filePathCell Is Nothing Then
MsgBox ("Please make a selection for file path")
Exit Sub
Else
If filePathCell.Cells.Count > 1 Then
MsgBox ("Please select only a single cell that contains the file location")
Exit Sub
Else
filePath = Cells(filePathCell.Row, filePathCell.Column).Value
End If
End If
If imageLocationCell Is Nothing Then
MsgBox ("Please make a selection for image location")
Exit Sub
Else
If imageLocationCell.Cells.Count > 1 Then
MsgBox ("Please select only a single cell where you want the image to be populated")
Exit Sub
Else
InsertPic filePath, imageLocationCell
Exit Sub
End If
End If
End Sub
Créez ensuite votre méthode d'insertion comme suit :
Private Sub InsertPic(filePath As String, ByVal insertCell As Range)
Dim xlShapes As Shapes
Dim xlPic As Shape
Dim xlWorksheet As Worksheet
If IsEmpty(filePath) Or Len(Dir(filePath)) = 0 Then
MsgBox ("File Path invalid")
Exit Sub
End If
Set xlWorksheet = ActiveSheet
Set xlPic = xlWorksheet.Shapes.AddPicture(filePath, msoFalse, msoCTrue, insertCell.top, insertCell.left, insertCell.width, insertCell.height)
xlPic.LockAspectRatio = msoCTrue
End Sub
0 votes
Combien d'images faut-il dans une seule cellule ?
0 votes
J'ai besoin d'une image par cellule, et je viens d'essayer l'insertion d'image, et le collage spécial.
5 votes
Vous ne pouvez pas placer d'images "dans" une cellule, mais uniquement "au-dessus". Toutes les images "flottent" sur la feuille de travail. Vous pouvez placer une image au-dessus d'une cellule en définissant son paramètre
Top
yLeft
aux propriétés de lTop
yLeft
de la cellule. Si vous modifiez votre question en indiquant le code que vous utilisez, il sera plus facile de vous proposer une approche qui pourrait vous convenir.0 votes
En plus de ce que @TimWilliams a suggéré, vous pouvez également redimensionner la cellule pour qu'elle corresponde à l'image si nécessaire (et ne change pas trop le formatage de votre feuille).
0 votes
Merci pour votre aide. Pas étonnant que j'aie eu tant de problèmes, il n'est pas possible de faire ce que je voulais. J'ai juste fait mon rapport à la main, et à l'œil.
3 votes
Voir ce tour d'horizon pour les méthodes "over cell" et "comment".
0 votes
Microsoft, si vous m'écoutez... faites en sorte que le redimensionnement d'une ligne ou d'une colonne respecte la taille de l'image !!! Très important !
0 votes
Confronté à un problème similaire, j'ai décidé de construire le rapport dans un tableau Microsoft Word. Ici, il suffit de coller l'image dans la cellule du tableau.