Forum: PC Hard- und Software Excel: Aus Zelle QR-Code erzeugen


von Matthias S. (da_user)


Lesenswert?

Hi,

ich würde gerne innerhalb eines Exceldokuments einen QR-Code erzeugen. 
Der Inhalt des QR-Codes soll aus einer Zelle ausgelesen werden. Wird der 
Inhalt der Zelle geändert, soll sich der QR-Code auch ändern.

Was ich hierzu im Internet finde, sind entweder schweineteure Lösungen, 
oder funktionieren nur bei Word (Feld "{ DISPLAYBARCODE }").
Prinzipiell könnte ich die Tabelle natürlich zu Word rüberkopieren, aber 
wie bekomme ich dann vernünftig den Text aus dieser einen Zelle (die ich 
auch gerne verstecken würde), dann in das Feld hinein?

Zur Information:
Es geht hierbei um die Verwaltung von div. Service-W-LAN 
unterschiedlicher Geräte. Die SWPA-Passwörter sollen dazu natürlich 
regelmässig gewchselt werden, und dann ist es einfach einfacher, 
regelmässig ein neues Blatt mit den jeweils passenden QR-Codes 
rauszugeben.

VG
da_user

von oszi40 (Gast)


Angehängte Dateien:

Lesenswert?

Es muß ja nicht unbedingt QR-Code sein, wenn ein geeigneter 
TTF-Strichcode reicht, um ein paar Nummern zu zeigen?

von Joachim S. (oyo)


Lesenswert?

Eventuell käme ja folgender Ansatz in Frage:

Die Erzeugung der eigentlichen QR-Codes übernimmt ein Internet-Dienst, 
dem die zu kodierenden Daten als HTTP GET-URL-Parameter übergeben 
werden, und der eine entsprechende QR-Code-Grafik zurückliefert.

Wenn Du auf einen Button drückst, konvertiert ein kleines VBA-Script die 
zu kodierenden Daten in eine entsprechende URL, ruft das zu dieser URL 
gehörende Image ab, uns fügt es an der entsprechenden Stelle im 
Excel-Dokument ein.

von TestX (Gast)


Lesenswert?

Such nach visualbasic qrcode. da wirst du sicherlich etwas finden.
ohne vb macro wird das nichts in excel/word

von Jemand (Gast)


Lesenswert?

Joachim S. schrieb:
> Eventuell käme ja folgender Ansatz in Frage:
>
> Die Erzeugung der eigentlichen QR-Codes übernimmt ein Internet-Dienst,
> dem die zu kodierenden Daten als HTTP GET-URL-Parameter übergeben
> werden, und der eine entsprechende QR-Code-Grafik zurückliefert.
>
> Wenn Du auf einen Button drückst, konvertiert ein kleines VBA-Script die
> zu kodierenden Daten in eine entsprechende URL, ruft das zu dieser URL
> gehörende Image ab, uns fügt es an der entsprechenden Stelle im
> Excel-Dokument ein.

Und wo ist da die Blockchain?

von oszi40 (Gast)


Lesenswert?

Joachim S. schrieb:
> übernimmt ein Internet-Dienst

Mein weiß nie wie zuverlässig dieser fremde Server verfügbar sein wird! 
Besser wäre eigener Link wo ein weiterer Hinweis zu finden ist.

von helpmate (Gast)


Lesenswert?


von bom (Gast)


Lesenswert?


von Matthias S. (da_user)


Lesenswert?

Hallo,
danke für die vielen nützlichen Hinweise.
Das tschechische von Stackoverflow sieht auf den ersten Blick ganz 
vielversprechend aus, das werde ich mal antesten!

VG
da_user

von c-hater (Gast)


Lesenswert?

Matthias S. schrieb:

> Was ich hierzu im Internet finde, sind entweder schweineteure Lösungen,
> oder funktionieren nur bei Word (Feld "{ DISPLAYBARCODE }").

Dann passe sie einfach so an, dass sie in Excel entsprechend deiner 
Intention funktionieren.

Das ist doch lächerlich einfach, wenn man grundsätzlich programmieren 
kann.

Und wenn nicht: Tja, dann muß man halt einfach die Programmierer der 
"schweineteuren Lösungen" entlohnen, die das können.

Ich muß auch den Arzt bezahlen, der mir einen Bypass einsetzt. Das kann 
ich halt nicht selber. Klar: auch die Leistung diese Arztes kommt mir 
"schweineteuer" vor. Aber kann ich das wirklich einschätzen? Nö, kann 
ich nicht, weil ich halt keine Ahnung davon habe, was da alles an Kosten 
dranhängt.

Aber wenn ich leben will, bezahle ich den Mann. So einfach ist das.

von Peter M. (r2d3)


Angehängte Dateien:

Lesenswert?

Hallo Matthias S.,

Matthias S. schrieb:
> Hi,
>
> ich würde gerne innerhalb eines Exceldokuments einen QR-Code erzeugen.
> Der Inhalt des QR-Codes soll aus einer Zelle ausgelesen werden. Wird der
> Inhalt der Zelle geändert, soll sich der QR-Code auch ändern.

Anbei ein Lösungsansatz als Prototyp.

Dein QR-Feld hat etwa 25x25 Bit Informationen.
Die 625 Bit entsprechen etwa <80 Byte an Information, die aber in keinen 
Excel-Zahltyp mehr hereinpassen.

Der QR-Code muss also ein String sein, der in einer Zelle steht.

Wenn VBA verboten ist, schaltest Du die Farbe eines Punkts mit bedingter 
Formatierung an und aus.
Jede Zelle entspricht einem QR-Punkt.

Dieser Punkt muss nun lediglich die ihm zugedachte Bit-Information 
auslesen, damit die bedingte Formatierung die Zelle korrekt einfärben 
kann.
Die Sichtbarkeit der Zahlen in den Feldern ist nur für Debuggingzwecke, 
die kann man auch wegformatieren!

Die gelben Felder sind Eingabefelder, die machen aus den Bits ganze 
Byte-Werte.
Die grünen Felder sind Ergebnisfelder.
Die Ergebnisbytes werden zu einem String kombiniert.

Die einzelnen QR-Leuchten müssen einfach nur noch den String decodieren.

An der folgenden Stelle gebe ich c-hater Recht:

c-hater schrieb:
> Das ist doch lächerlich einfach, wenn man grundsätzlich programmieren
> kann.

Allerdings hätte er das ja auch mal schnell herunterschreiben können. :)

Ich habe an dieser Kopfnuss 1,5h gesessen.

Die Aufgabe ist analytisch gesehen simpel, aber der Excel-Formel-Editor 
ist nicht wirklich lesbar und es fehlen dem Excel Bitoperationen auf 
Tabellenebene.

Einen Haken gibt es noch:
Excel akzeptiert keine Wandlung eines Nullbytes in einen String.
Die Werte von 1-255 klappen.

Um das zu umgehen, könnte man die String basierend auf Bytes 
zusammenbauen, bei denen das unterste Bit immer gesetzt ist, um die Null 
zu vermeiden.
Man würde dann den QR-Code mit 7 Bits pro Byte codieren.

Gruß
Peter

: Bearbeitet durch User
von Matthias S. (da_user)


Lesenswert?

Hi,

kurze Rückmeldung. Ich habe jetzt aus diesem Beitrag

bom schrieb:
> https://stackoverflow.com/questions/16143331/gener...

das hier verwendet: 
https://github.com/JonasHeidelberg/barcode-vba-macro-only

Wenn man die angegebene Zeile um den QR-Code zu erzeugen, anpasst, 
funktioniert es auch.
Angeben ist diese als
1
=EncodeBarcode(CELL("SHEET"),CELL("ADDRESS"),A2,51,1,0,2)

Es müssen die Kommas durch Semilikons ersetzt werden und "Cell" 
eingedeutscht:
1
=EncodeBarcode(ZELLE("SHEET");ZELLE("ADDRESS");A2;51;1;0;2)

Läuft damit.
Vielen Dank an alle die helfen wollten und geholfen haben!
da_user

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.