Bild per Link in eine Zelle anzeigen

Betrifft: Bild per Link in eine Zelle anzeigen
von: Olaf
Geschrieben am: 06.09.2020 23:45:21
Hallo zusammen,
ich hoffe Ihr könnt mir helfen,
mit der Datei kann man einen QR Code erzeugen. dieses geschieht mit Google, das QR code Bild wird im Verzeichnis abgelegt wo sich die Excel Datei befindet.
in der Spalte "C" steht der Name der Datei und in der Spalte "D" soll das Bild in die Zelle eingefügt werden
es wäre toll, wenn das mit VBA automatisch in einer Rutsche gehen würde.
https://www.herber.de/bbs/user/140077.xlsm
Gruß
Olaf

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: volti
Geschrieben am: 07.09.2020 09:09:09
Hallo Olaf,
hier mal eine erste Idee zu Deinem Vorhaben. Ich habe Deinen Code weitgehend beibehalten.....
Neu ist, dass nur Felder aus Spalte "C" berücksichtigt werden und das Pic an das Feld "D" angepasst wird. Ggf. wird es verzerrt, dann bitte einfach die Spaltenbreite reduzieren.
Tipp: Du solltest keine reservierten Namen für Variablen nehmen und eher sprechende Name verwenden.
Deshalb habe ich sName und Zelle statt Name und val eingeführt.
Schau mal, ob es so schon passt:
QR-Code.xlsm
viele Grüße
Karl-Heinz

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: volti
Geschrieben am: 07.09.2020 12:03:23
Hallo Olaf,
ich habe mir das spannende Thema mal für mich aufbereitet.
Wenn Du möchtest, kannst Du es gerne übernehmen und in Dein Tool einbauen.
Es ist jetzt nur noch eine Sub und die temporäre Zwischendatei wird gleich nach dem Einfügen wieder gelöscht.
Code:
Option Explicit
Sub InsertQR()
'Sub erstellt einen QR-Code und fügt ihn in das Blatt ein
Dim rZelle As Range, AC As Range, xHttp As Object
Dim iSize As Integer, i As Integer
Dim sPicFilename As String, sQR As String
If Not TypeName(Selection) Like "Range" Then Exit Sub 'Keine korrekte Markierung
Set xHttp = CreateObject("Microsoft.XMLHTTP")
iSize = 250 'dalam Pixels
For Each rZelle In Selection 'Alle Zellen in Selektion durchgehen
With rZelle
If .Column = 3 And .Value <> "" Then 'Nur Spalte C und vorhandenem Wert
'Datei auf Fehler untersuchen
For i = 1 To Len(.Value)
If InStr(Chr(34) & "\/:*?<>"=,;", Mid(.Value, i, 1)) > 0 Then
MsgBox "Die Datei " & vbCrLf & "'" & .Value & "'" _
& vbCrLf & vbCrLf & " enthält fehlerhafte Zeichen!"
Exit Sub
End If
Next
'Url zusammenbauen
sQR = "http://chart.googleapis.com/chart?chs=" _
& iSize & "x" & iSize & "&cht=qr&chl=" & .Value
xHttp.Open "GET", sQR, False
xHttp.Send
'Picnamen/Pfad zusammenbauen
sPicFilename = Environ("TEMP") & "\" & .Value 'Datei ins Temp-Verzeichnis
If Not sPicFilename Like "*.png" Then sPicFilename = sPicFilename & ".png"
With CreateObject("Adodb.Stream")
.Type = 1 '//binary
.Open
.write xHttp.responseBody
.savetofile sPicFilename, 2 'überschreiben
.Close
End With
'Bild wird an Zelle in Spalte D angepasst
Set AC = .Offset(0, 1)
ActiveSheet.Shapes.AddPicture(sPicFilename, False, True, _
AC.Left + 1, AC.Top + 1, _
AC.Width - 2, AC.Height - 2).Name = "QR_" & .Value
If Dir(sPicFilename) <> "" Then Kill sPicFilename 'Datei löschen
End If
End With
Next rZelle
Set xHttp = Nothing
End Sub
____________________
viele Grüße aus Freigericht
Karl-Heinz

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: Olaf
Geschrieben am: 07.09.2020 18:55:14
Hallo Karl-Heinz, danke das Du Dich meiner Sache angenommen hast.
ich habe Deine Datei aufprobiert, es wird aber kein QR Code Bild mehr erzeugt.
dem entsprecht auch kein Bild angezeigt.
Gruß Olaf

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: Olaf
Geschrieben am: 07.09.2020 19:32:59
.

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: volti
Geschrieben am: 07.09.2020 19:44:40
Hallo Olaf,
bei mir werden erfolgreich die QR-Codes erzeugt und als Bild eingefügt.
Hast Du denn auch in Spalte
"C" die Markierungen der gewünschten Felder durchgeführt?
Andere Markierungen werden ignoriert, damit das ganze ordentliche Vorgaben hat.
Ich habe jetzt noch eine Fehlermeldung eingebaut, falls nichts ins Spalte C markiert ist.
QR-Codes
viele Grüße
Karl-Heinz

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: Olaf
Geschrieben am: 07.09.2020 22:43:46
Hallo Karl-Heinz,
klappt Super, Danke.
könntest Du mir vielleicht nochmal helfen?, der Ausgabe Link nach Google müßte in UTF-8 codiert werden. das die Umlaute richtig angezeigt werden, sobald ein Umlaut übergeben wird, steht nichts im QR Code.
Gruß Olaf

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: volti
Geschrieben am: 07.09.2020 22:57:24
Hallo Olaf,
leider kenne ich mich derzeit damit nicht aus und müsste selber googlen, was da zu machen wäre.
Kann Dir da leider nicht helfen.
Wenn ich allerdings Müller eingebe, wird mir ein QR-Bild eingefügt....
viele Grüße
Karl-Heinz

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: volti
Geschrieben am: 08.09.2020 11:59:28
Hallo Olaf,
in u.a. Datei habe ich die wichtigsten Umlaute umgesetzt. Se werden jetzt in den QR-Code eingebaut und können gelesen werden.
Ob es eine elegantere Methode gibt, weiß ich leider zur Zeit auch nicht.
QR-Code
viele Grüße
Karl-Heinz

Betrifft: AW: Bild per Link in eine Zelle anzeigen
von: Olaf
Geschrieben am: 08.09.2020 15:37:26
Hallo Karl-Heinz,
klappt Super,
Danke.
Gruß Olaf
Beiträge aus dem Excel-Forum zum Thema "Bild per Link in eine Zelle anzeigen"