Telefonszámunk: 1-472-0679

[Resolved] Excel VBA QR kód ékezetes betűk?

Kezdőlap Fórumok Excel programozás [Resolved] Excel VBA QR kód ékezetes betűk?

Topic Resolution: Resolved
7 bejegyzés megtekintése - 1-7 / 7
  • Szerző
    Bejegyzés
  • #8667
    Andras555
    Felhasználó

    Sziasztok!

    Szeretnék egy oszlopban lévő szövegekre egyszerre gyártani külön-külön egy egy QR-kódokat.
    Erre találtam is egy vba kódot működik is de sajnos az ékezetes betűvel nem tud mit kezdeni.
    Megcsinálja a QR kódokat de nem tudom beolvasni, ha ékezetes betűvel írok szöveget.
    Ékezetes betűk nélkül tökéletes.

    Tudnátok benne segíteni, hogy az ékezetes betűkkel is jól működjön?
    Köszönöm!

    Sub InsertQR()
    Dim xHttp: Set xHttp = CreateObject(“Microsoft.XMLHTTP”)
    Dim bStrm: Set bStrm = CreateObject(“Adodb.Stream”)
    Dim Size: Size = 250 ‘dalam Pixels
    Dim QR, Name, val
    Dim Invalid: Invalid = “\/:*?” & “””” & “<>|”
    For Each val In Selection
    Name = val.Value
    For intChar = 1 To Len(Name)
    If InStr(Invalid, LCase(Mid(Name, intChar, 1))) > 0 Then
    MsgBox “The file: ” & vbCrLf & “””” & Name & “””” & vbCrLf & vbCrLf & ” is invalid!”
    Exit Sub
    End If
    Next
    QR = “http://chart.googleapis.com/chart?chs=&#8221; & Size & “x” & Size & “&cht=qr&chl=” & Name
    xHttp.Open “GET”, QR, False
    xHttp.Send
    With bStrm
    .Type = 1 ‘//binary
    .Open
    .write xHttp.responseBody
    .savetofile ThisWorkbook.Path & Application.PathSeparator & Name & “.png”, 2 ‘//overwrite
    .Close
    End With
    Next
    End Sub

    #8668
    horvimi
    Adminisztrátor

    Szia!

    A QR kódot nem a VBA program gyártja le, hanem egy Google webszolgáltatást hív meg, annak átadja az URL-ben a paramétereket, majd visszaolvassa az eredményt.

    Tehát nincs ráhatás a QR kód generáló működésére, de lehet, hogy további paraméterekkel lehet rá hatni.

    Egy másik megoldás lehet, hogy a cellában lévő szövegeket URL enkódolni kell, mielőtt kiküldöd az API-nak.
    Erre Office 365-ben és lehet, hogy 2019-ben is van egy ENCODEURL függvény. A magyar neve most nincs meg, de valószínűleg valami hasonló…

    VBA-ban úgyis csak az angol játszik.
    ha van O365-öd, akkor próbáld meg ezt:

    Name = val.Value helyett
    Name = Application.WorkSheetFunction.EndodeURL(val.Value)

    Nézd meg mi lesz

    Imre

    #8669
    Andras555
    Felhasználó

    Kedves Imre!

    Köszönöm a választ, haza érek megnézem.

    Igen külső url-csinálja a qr kódokat elvileg alapból utf-8 ba csinálja, próbáltam pár dolgot már de sajnos nem ment.

    Itt találtam róla pár dologot:
    https://developers.google.com/chart/infographics/docs/qr_codes

    Ránéznél?
    Köszönöm.

    #8670
    horvimi
    Adminisztrátor

    Ha nincs O365, akkor saját URL enkódoló függvény kell.
    Erre itt találsz példát:

    https://stackoverflow.com/questions/218181/how-can-i-url-encode-a-string-in-excel-vba

    Imre

    #8671
    Andras555
    Felhasználó

    Köszönöm most az a jó megoldás, hogy a =URL.KÓDOL függvényt használva átkódolja majd ebből csinál qr kódot de sajna a qr kód névnek amit lement a gépre annak ezt adja meg pl.: Ez%20egy%20kombin%C3%A1lt%20szekr%C3%A9ny%2012345678
    De mind1 így is jó. 🙂

    #8672
    horvimi
    Adminisztrátor

    Ha jól gondolom, akkor a függvénnyel egy új oszlopba megcsinálod az átkódolt változatot, és azt kijelölve futtatod a makrót.
    Ahogy megy a ciklus, a name változóba teszi az éppen soron következő cellát a kijelölésben.

    Ha a lementett PNG-nek az eredeti nevet szeretnéd adni, ami ugye egy oszloppal balra, a kijelölés mellett van, akkor próbáld ezt:

    .savetofile ThisWorkbook.Path & Application.PathSeparator & val.offset(0,-1).Value & ".png", 2

    Ha meg úgy is jó, akkor hagyd úgy..

    Imre

    #8674
    Andras555
    Felhasználó

    Nagyon szépen köszönöm!
    Hálás vagyok neked!

7 bejegyzés megtekintése - 1-7 / 7
  • Be kell jelentkezni a hozzászóláshoz.