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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht 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:

Bewertung
-3 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


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

von Jemand (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von bom (Gast)


Bewertung
1 lesenswert
nicht lesenswert

von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.