VBA datamatrix etiquette
Microsoft® Excel® pour Microsoft 365 MSO (Version 2205 Build 16.0.15225.20278) 64 bits
Bonjour à tous,
Je suis ingénieur dans une petite structure dans laquelle l'un de nos clients nous demande d'apposer une étiquette d'identification comportant un DATAMATRIX et d'autres informations sur nos produits.
Je souhaiterai pouvoir réaliser les étiquettes avec un publipostage sur Word.
Pour ce faire, j'aimerai bien qu'à partir d'un classeur Excel il soit possible :
- de générer les DATAMATRIX contenant les données de la colonne [CONCAT],
- de les enregistrer sous un format image dans un dossier et que celles-ci soit renommées suivant les données de la colonne [CONCAT],
- et de renseigner le chemin d'accès des DATAMATRIX dans la colonne [Lien DATAMATRIX].
Ainsi je pourrai à partir d'un publipostage de l'étiquette générer celles-ci en important l'image du DATAMATRIX en suivant le lien présent dans la colonne [Lien DATAMATRIX].
Dans ma macro il y a un lien qui permet de générer le DATAMATRIX, je l'ai testé et il est fonctionnel.
Dans celui-ci, & Code & correspond à la chaine de caractères que l'on désire transformer en DATAMATRIX.
J'ai essayé de faire quelque chose, mais ce n'est vraiment pas concluant... Voir en pièce jointe.
Merci d'avance à ceux qui pourront nous aider.
Salut DianeFAU,
voici une proposition à tester:
Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub DATAMATRIX()
Dim i, LastRow, PasteBarcode As Long
Dim ws As Worksheet
Dim BarcodeLink, BarcodePath, saveInFolder As String
Set ws = Sheets("RESTE A LIVRER")
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
saveInFolder = "C:\xxx\yyy\zzz\DATAMATRIX_Barcodes\" ' <== !!Il faut adapter le chemin de sauvegarde!!
For i = 2 To LastRow
If ws.Range("C" & i).Value <> "" Then
BarcodeLink = "https://barcode.tec-it.com/barcode.ashx?data=" & ws.Range("C" & i).Value & "%0A%0A&code=DataMatrix&multiplebarcodes=false&translate-esc=false&unit=Fit&dpi=96&imagetype=Gif&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0&dmsize=Default"
BarcodePath = saveInFolder & ws.Range("C" & i).Value & ".gif"
ws.Range("D" & i).Value = BarcodePath
PasteBarcode = URLDownloadToFile(0, BarcodeLink, BarcodePath, 0, 0)
End If
Next i
End Sub
@+++
1000 Mercis, ca fonctionne nickel !
mais avec plaisir