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.

207essai.xlsm (17.96 Ko)

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

Rechercher des sujets similaires à "vba datamatrix etiquette"