Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei VBA Script

Einklappen

Google Responsive Ad

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfe bei VBA Script

    Hallo zusammen,

    ich möchte gerne folgendes umsetzen: Bulk Erstellung von QR Codes in Excel. Funktioniert auch soweit, aber ene Funktion fehlt mir noch. Und zwar generiert es schon die QR Codes, aber ich möchte gerne den Inhalt von mehreren Spalten verarbeiten lassen. Momentan ist es immer nur die erste oder je nachdem was ich definiere. Ich habe schon mit RangeCell probiert mehrere erfassen zu lassen, aber das verträgt sich mit dem Skript alles nicht. Skript ist dieses hier:

    Code:
    Dim wsh As Worksheet
    Set wsh = Application.ActiveSheet 'QR codes are generated on the active worksheet
       
    Dim shp As Shape
    For Each shp In wsh.Shapes 'Deletes all barcode pictures which are generated previously
      If shp.Type = msoPicture And InStr(shp.Name, "BarcodePicture") > 0 Then
         shp.Delete
      End If
    Next
       
     Dim ss As StrokeScribeClass 'Invisible COM server
     Set ss = CreateObject("STROKESCRIBE.StrokeScribeClass.1")
     ss.Alphabet = QRCODE
    
     pict_path = wsh.Parent.Path + "\bar.wmf" 'A temporary file for pictures
     
     Row = 1
     Do
         Dim data As String
         data = wsh.Cells(Row, 1) 'Data for barcodes is taken from the first column
         
         If Len(data) = 0 Then Exit Do 'The code will stop execution on first empty cell occurrence
         
         ss.text = data
         rc = ss.SavePicture(pict_path, WMF, 1440, 1440) 'A 1x1 inch QR Code is stored in a temporary file. 1440 TWIPs=1in.
         If rc > 0 Then 'Reports the error if SavePicture() call was unsuccessful
            MsgBox ss.ErrorDescription
            Exit Do
         End If
          
         Set qrcode_cell = wsh.Cells(Row, 2) 'The cell where the QR Code will be placed
         
         'The rectangle which fits into the cell. QR codes are square in shape.
         qrcode_size = Application.Min(qrcode_cell.Width, qrcode_cell.Height)
         
         'Barcode picture is loaded from file and centered in the cell:
         Set shp = wsh.Shapes.AddPicture(pict_path, msoFalse, msoTrue, _ 
            qrcode_cell.Left + (qrcode_cell.Width - qrcode_size) / 2, _
            qrcode_cell.Top + (qrcode_cell.Height - qrcode_size) / 2, _
            qrcode_size, qrcode_size)
        
         'Each picture is named as BarcodePictureN, where N is 1,2,3...
         'So the pictures can be easily removed next time
         shp.Name = "BarcodePicture" & Format(Row)
          
         Row = Row + 1 'Going to the next worksheet row
    Loop
    
    Kill pict_path 'We don't need the temporary picture file any more
    
    Set ss = Nothing 'Deletes the barcode COM server
    Hat jemand eine Idee, wie man das beheben kann? Vielen Dank und beste Grüße

  • #2
    AW: Hilfe bei VBA Script

    Hallo peaer,
    das Thema geht ja weit weg vom eigentlichen Inhalt des Forums. Vielleicht schaust du mal in einem Forum für VBScript, WSH oder VB. Da kann dir besser geholfen werden.

    PS: Du solltest ss erst leeren, bevor du es löscht :-)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    Albert Einstein

    Kommentar


    • #3
      AW: Hilfe bei VBA Script

      Ja vermutlich schon. Dachte, vielleicht ist der ein oder andere Findige VBler auch in diesen Reihen zu finden

      Danke für den Tipp!

      Grüße

      Kommentar


      • #4
        AW: Hilfe bei VBA Script

        @pear

        Hi pear, ich kenne mich mit VBScript gut aus, aber mit Excel eigentlich fast garnicht. Ich versteh dein Problem, habe dafür keine Lösung, weil es zu spezifisch ist. Hier im Forum ist ja mehr an Internetseiten gedacht und vielleicht noch an VBScript für Internetseiten die IE benutzen, aber sonst wäre ein spezifisches Forum besser angebracht.


        Liebe Grüße und viel Erfolg

        Localfun
        Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
        Albert Einstein

        Kommentar


        • #5
          AW: Hilfe bei VBA Script

          Nur der Vollständigkeit halber: Ich habe es jetzt gelöst, dass mehrere Spalten erfasst werden. Funktioniert so:
          Code:
          data = wsh.Cells(Row, 1) & wsh.Cells(Row, 2)'Data for barcodes is taken from the first column
          So kann man beide verbinden und in einen QR Code bringen. Jetzt bräuchte ich nur noch der Lesbarkeit wegen einen Leerschritt zwischen beiden...Der geht aber weder mit
          Code:
          &" "&
          noch mit
          Code:
           __
          Was solls, werde schon nen Lösung dafür finden

          Gruß

          Kommentar


          • #6
            AW: Hilfe bei VBA Script

            Hi,

            hab eine Lösung:

            Benutze doch die Funktion char()

            Code:
            ... & chr(32) & ...
            Liebe Grüße

            Localfun
            Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
            Albert Einstein

            Kommentar


            • #7
              AW: Hilfe bei VBA Script

              Zitat von Localfu Beitrag anzeigen
              Hi,

              hab eine Lösung:

              Benutze doch die Funktion char()

              Code:
              ... & chr(32) & ...
              Liebe Grüße

              Localfun
              Sorry, habe ich bis gerade eben gar nicht gesehen. Probiere ich später mal aus Vielen Dank

              Kommentar


              • #8
                AW: Hilfe bei VBA Script

                Und hat es funktioniert?
                Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
                Albert Einstein

                Kommentar


                • #9
                  AW: Hilfe bei VBA Script

                  Zitat von Localfu Beitrag anzeigen
                  Und hat es funktioniert?
                  Nein, leider auch nicht. Ich habe das Gefühl, dass Strokescribe zu instabil ist, da Excel jedes Mal schlapp macht (keine Rückmeldung). Habe es jetzt über eine Google API gelöst, das ging auch. Jetzt funktioniert alles wie gewünscht. Danke für die Hilfe und das Mitdenken

                  VG

                  Kommentar

                  Lädt...
                  X