DataMatrix Barcode erstellen in Excel
Hallo,
ich brauche Hilfe bei der Erstellung von DataMatrix Codes in Excel am besten mit Bezug auf eine Zelle.
Im Moment habe ich folgendes Produkt erworben:
https://secure.avangate.com/order/product.php?PRODS=4543690&QTY=1&am ...
Leider gibt es im dazugehörigen Excel Addin keine Auswahlmöglichkeit für DataMatrix.
Gibt es alternativen? Es soll direkt in Excel erstellt werden mit dem Bezug auf eine Zelle, die die Daten enthält und diese entsprechend kodiert werden, sodass ein DataMatrix Code erstellt wird.
Kann mir jemand helfen?
ich brauche Hilfe bei der Erstellung von DataMatrix Codes in Excel am besten mit Bezug auf eine Zelle.
Im Moment habe ich folgendes Produkt erworben:
https://secure.avangate.com/order/product.php?PRODS=4543690&QTY=1&am ...
Leider gibt es im dazugehörigen Excel Addin keine Auswahlmöglichkeit für DataMatrix.
Gibt es alternativen? Es soll direkt in Excel erstellt werden mit dem Bezug auf eine Zelle, die die Daten enthält und diese entsprechend kodiert werden, sodass ein DataMatrix Code erstellt wird.
Kann mir jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1059681578
Url: https://administrator.de/forum/datamatrix-barcode-erstellen-in-excel-1059681578.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
12 Kommentare
Neuester Kommentar
Servus,
oder man behilft sich mit etwas Powershell und VBA wenn man nichts ausgeben will.
Man erstelle das Scriptfile datamatrix.ps1 und lege es in dem Beispiel in den selben Pfad wie die Excel-Mappe und füge dort folgenden Code ein.
Dann öffnet man eine Excel Mappe und fügt dort folgenden VBA-Code ein
Damit das Beispiel funktioniert sollten die Daten wie folgt auf dem aktiven Sheet hinterlegt sein
Wenn man dann das Makro startet werden die DataMatrix-Codes für alle belegten Daten-Zellen in Spalte A generiert und in Spalte B daneben abgelegt.
Mit der Library können auch anderen Barcode-Typen generiert werden wenn man in der Letzten Zeile des PS Scripts das Format anpasst. Mögliche Barcode-Formate kann man hier nachschlagen
https://zxing.github.io/zxing/apidocs/com/google/zxing/BarcodeFormat.htm ...
Das obige Beispiel kann bei Bedarf auch hier komplett als Package heruntergeladen werden excel_generate_datamatrix_codes_1059681578.zip
Grüße Uwe
oder man behilft sich mit etwas Powershell und VBA wenn man nichts ausgeben will.
Man erstelle das Scriptfile datamatrix.ps1 und lege es in dem Beispiel in den selben Pfad wie die Excel-Mappe und füge dort folgenden Code ein.
param(
[string]$data,
[string]$filepath,
[int]$width = 500,
[int]$height = 500
)
# Funktion zum Laden von Assemblies von Nuget.org
function Load-NugetAssembly {
[CmdletBinding()]
param(
[string]$url,
[string]$name,
[string]$zipinternalpath,
[switch]$downloadonly
)
# Accept all TLS protocols
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::GetNames([System.Net.SecurityProtocolType])
if($psscriptroot -ne ''){
$localpath = join-path $psscriptroot $name
}else{
$localpath = join-path $env:TEMP $name
}
$tmp = "$env:TEMP\$([IO.Path]::GetRandomFileName())"
$zip = $null
try{
if(!(Test-Path $localpath)){
Add-Type -A System.IO.Compression.FileSystem
write-host "Downloading and extracting required library '$name' ... " -F Green -NoNewline
(New-Object System.Net.WebClient).DownloadFile($url, $tmp)
$zip = [System.IO.Compression.ZipFile]::OpenRead($tmp)
$zip.Entries | ?{$_.Fullname -eq $zipinternalpath} | %{
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_,$localpath)
}
Unblock-File -Path $localpath
write-host "OK" -F Green
}
if(!$downloadonly.IsPresent){
Add-Type -Path $localpath -EA Stop
}
}catch{
throw "Error: $($_.Exception.Message)"
}finally{
if ($zip){$zip.Dispose()}
if(Test-Path $tmp){del $tmp -Force}
}
}
# Lade XZING Assembly
if (!('ZXing' -as [Type])){
Load-NugetAssembly -url 'https://www.nuget.org/api/v2/package/ZXing.Net' -name 'zxing.dll' -zipinternalpath 'lib/net40/zxing.dll' -EA Stop
}
# Funktion zum Erstellen von Barcodes
function New-Barcode([ZXing.BarcodeFormat]$format = ([ZXing.BarcodeFormat]::CODE_128),[string]$string,[int]$width,[int]$height,[int]$margin = 0,[switch]$purebarcode) {
$writer = New-Object ZXing.BarcodeWriter -Property @{
Format = $format
Options = New-Object ZXing.Common.EncodingOptions -Property @{
Height = $height
Width = $width
PureBarcode = $purebarcode.IsPresent
Margin = $margin
}
}
$writer.Write($string)
}
(New-Barcode -format DATA_MATRIX -string $data -width $width -height $height).Save($filepath,'Png')
Sub CreateDataMatrixCodes()
Dim SCRIPTPATH As String, objShell As Object, rngPic As Range, BARCODE_TMP_PATH As String, BARCODE_WIDTH As Integer, BARCODE_HEIGHT As Integer, cell as Range
' Shell Object erstellen
Set objShell = CreateObject("Wscript.Shell")
' Pfad zum Script
SCRIPTPATH = ThisWorkbook.Path & "\datamatrix.ps1"
' tempor. Pfad für Barcode Image
BARCODE_TMP_PATH = Environ("TEMP") & "\bc.png"
' Breite des Barcodes in Punkt
BARCODE_WIDTH = 100
' Höhe des Barcodes in Punkt
BARCODE_HEIGHT = 100
' auf aktuell ausgewähltem Sheet arbeiten
With ActiveSheet
' Für jede belegte Zelle im Range A2:A(n)
For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
' Wenn Wert der Zelle nicht leer ist ...
If cell.Value <> "" Then
' Nachbarzelle in der der Barcode eingefügt wird
Set rngPic = cell.Offset(0, 1)
' Let's go, Powershell Script mit Parametern aufrufen
objShell.Run "powershell -EP Bypass -File """ & SCRIPTPATH & """ -data """ & cell.Value & """ -filepath """ & BARCODE_TMP_PATH & """ -width 500 -height 500", 0, True
' Zeilenhöhe festlegen
rngPic.RowHeight = BARCODE_HEIGHT
' Barcode Bild einbetten
.Shapes.AddPicture BARCODE_TMP_PATH, msoFalse, msoTrue, rngPic.Left, rngPic.Top, BARCODE_WIDTH, BARCODE_HEIGHT
End If
Next
End With
End Sub
Wenn man dann das Makro startet werden die DataMatrix-Codes für alle belegten Daten-Zellen in Spalte A generiert und in Spalte B daneben abgelegt.
Ergebnis ist dann folgendes
Mit der Library können auch anderen Barcode-Typen generiert werden wenn man in der Letzten Zeile des PS Scripts das Format anpasst. Mögliche Barcode-Formate kann man hier nachschlagen
https://zxing.github.io/zxing/apidocs/com/google/zxing/BarcodeFormat.htm ...
Das obige Beispiel kann bei Bedarf auch hier komplett als Package heruntergeladen werden excel_generate_datamatrix_codes_1059681578.zip
Grüße Uwe
Hallo Uwe,
ich habe gerade probiert dein Powershell und VBA Script auszuführen. Ich bekomme dabei im VBA immer eine Fehlermeldung, dass cell nicht definiert wurde. Gut, dann habe ich es definiert, dann bekomme ich aber einen Laufzeitfehler '1004'. Die angegebene Datei wurde nicht gefunden. Was mache ich denn falsch?
ich habe gerade probiert dein Powershell und VBA Script auszuführen. Ich bekomme dabei im VBA immer eine Fehlermeldung, dass cell nicht definiert wurde. Gut, dann habe ich es definiert, dann bekomme ich aber einen Laufzeitfehler '1004'. Die angegebene Datei wurde nicht gefunden. Was mache ich denn falsch?
Hallo @Marco777, willkommen auf Administrator.de!
Rufe dazu das Powershell-Skript mal so in einer Powershell-Konsole auf und schau ob das Skript erfolgreich durchläuft und der Barcode als Datei abgelegt wird (Pfad zum Skript und Ausgabepfad für den Barcode natürlich anpassen)
Grüße Uwe
Zitat von @Marco777:
ich habe gerade probiert dein Powershell und VBA Script auszuführen. Ich bekomme dabei im VBA immer eine Fehlermeldung, dass cell nicht definiert wurde.
Ja das kommt wegen dem Option Explicit oben im Modul, habe im VBA vergessen die Variable zu deklarieren, werde ich nachholen.ich habe gerade probiert dein Powershell und VBA Script auszuführen. Ich bekomme dabei im VBA immer eine Fehlermeldung, dass cell nicht definiert wurde.
Gut, dann habe ich es definiert, dann bekomme ich aber einen Laufzeitfehler '1004'. Die angegebene Datei wurde nicht gefunden. Was mache ich denn falsch?
Dann läuft bei dir wohl was im Powershell-Skript schief so dass die Datei nicht erstellt wird. Als erstes stelle sicher das das Skript im selben Pfad wie die Excel-Datei liegt. Ist das der Fall dann prüfe das Powershell Skript erst mal separat, es könnte ja auch sein das Powershell auf deinem Rechner gesperrt wurde oder der Download der Library aus dem Netz bei dir verweigert wird und somit kein Barcode erstellt wird und das Bild dann natürlich fehlt.Rufe dazu das Powershell-Skript mal so in einer Powershell-Konsole auf und schau ob das Skript erfolgreich durchläuft und der Barcode als Datei abgelegt wird (Pfad zum Skript und Ausgabepfad für den Barcode natürlich anpassen)
"D:\Ordner\datamatrix.ps1" -data "Test" -filepath "D:\Ordner\test.png"
Hallo @colinardo ,
Entschuldigung für die Google-Übersetzung, ich kann auf Englisch schreiben, wenn Sie möchten.
vielen Dank für dein Makro.
Ist es möglich, ein Makro zu haben, das stattdessen in eine Matrix mit 1 und 0 konvertiert, möchte ich am Ende alle Bits online haben, um ein 3D-Modell zu aktualisieren.
Ich habe es mit dem Farblesen in Excel versucht, aber es ist nicht "sauber".
Entschuldigung für die Google-Übersetzung, ich kann auf Englisch schreiben, wenn Sie möchten.
vielen Dank für dein Makro.
Ist es möglich, ein Makro zu haben, das stattdessen in eine Matrix mit 1 und 0 konvertiert, möchte ich am Ende alle Bits online haben, um ein 3D-Modell zu aktualisieren.
Ich habe es mit dem Farblesen in Excel versucht, aber es ist nicht "sauber".
Hi @OudinNicolas, welcome to administrator.de!
Sure, you can download an example for this task
Preview:
Regards @colinardo
Sure, you can download an example for this task
datamatrix_bitmatrix_1059681578.zip
Preview:
Regards @colinardo
Hallo @colinardo,
danke, die Tabelle sieht gut aus, ich habe versucht, sie herunterzuladen, aber der Proxy-Server blockiert mich.
Ich habe die Datei von mir wiederhergestellt, aber wenn sie zur Arbeit übertragen wird, wird sie automatisch gelöscht, sie sagt mir, dass sie Malware enthält
Regards.
Nicolas.
danke, die Tabelle sieht gut aus, ich habe versucht, sie herunterzuladen, aber der Proxy-Server blockiert mich.
Ich habe die Datei von mir wiederhergestellt, aber wenn sie zur Arbeit übertragen wird, wird sie automatisch gelöscht, sie sagt mir, dass sie Malware enthält
Regards.
Nicolas.
The file is absolutely free of malware, i will guarantee that for sure! This is because the ZIP-file contains another file with *.ps1 Extension and an Excel file with Macros, this is a false positive and normal nowadays. If you send me your mail address via PN i can send you the file via mail or you use another computer or network which is under your control.
If your company does not want or allow you to use such files from external, this is not under my control, sorry.
Regards @colinardo
If your company does not want or allow you to use such files from external, this is not under my control, sorry.
Regards @colinardo
Hallo @colinardo !
yes, it's working ! No malware the rules for downloading are very sensitive at work.
This is exactly what I need.
In addition, the size of the matrix is automatically updated according to the size of the message to be encoded.
Perfect and great work !
Thank you so much, Ich danke dir sehr @colinardo
yes, it's working ! No malware the rules for downloading are very sensitive at work.
This is exactly what I need.
In addition, the size of the matrix is automatically updated according to the size of the message to be encoded.
Perfect and great work !
Thank you so much, Ich danke dir sehr @colinardo