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.