Salut tout le monde,
J'ai besoin d'importer mes images (qui se trouvent dans un dossier) vers une rangée du fichier excel. Pour ça, c'est bon, l'importation s'est bien passée. Je vous montre ici mon code :
Seulement voilà, j'ai ensuite besoin de convertir ces images en format BASE64. Après quelques recherches, j'ai trouvé ce code sur google recherche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Option Explicit Sub Insert() Dim strFolder As String Dim strFileName As String Dim objPic As Picture Dim rngCell As Range strFolder = "C:\Users\Lenovo\Pictures\RonHivkd" 'change the path accordingly If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\" End If Set rngCell = Range("E1") 'starting cell strFileName = Dir(strFolder & "*.jpg", vbNormal) 'filter for .png files Do While Len(strFileName) > 0 Set objPic = ActiveSheet.Pictures.Insert(strFolder & strFileName) With objPic .Left = rngCell.Left .Top = rngCell.Top .Height = rngCell.RowHeight .Placement = xlMoveAndSize End With Set rngCell = rngCell.Offset(1, 0) strFileName = Dir Loop End Sub
Sauf que, en voulant appeler la fonction, l'image ne se convertit pas. J'ai ce résultat : "#VALEUR!"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Public Function EncodeFile(strPicPath As String) As String Const adTypeBinary = 1 ' Binary file is encoded ' Variables for encoding Dim objXML Dim objDocElem ' Variable for reading binary picture Dim objStream ' Open data stream from picture Set objStream = CreateObject("ADODB.Stream") objStream.Type = adTypeBinary objStream.Open objStream.LoadFromFile (strPicPath) ' Create XML Document object and root node ' that will contain the data Set objXML = CreateObject("MSXml2.DOMDocument") Set objDocElem = objXML.createElement("Base64Data") objDocElem.DataType = "bin.base64" ' Set binary value objDocElem.nodeTypedValue = objStream.Read() ' Get base64 value EncodeFile = objDocElem.Text ' Clean all Set objXML = Nothing Set objDocElem = Nothing Set objStream = Nothing End Function
S'il vous plait, aidez moi, je bloque vraiment dessus...
Partager