Crea 128 codici a barre in Excel

3

C'è un modo per creare codici a barre (128 standard) su un Mac, preferibilmente tramite un componente aggiuntivo?

Ne ho bisogno per creare codici a barre in fogli Excel (o più a lungo se ne ha bisogno un mio amico).

Ho provato tutte le macro VBA e i font che ho trovato su Google, ma nessuno mi dà un risultato scansionabile (di solito ci sono personaggi strani come ó è mixed in). Qualcuno ha una soluzione funzionante?

    
posta Kevin Grabher 18.08.2014 - 16:07
fonte

4 risposte

0

Ho ricevuto i caratteri dall'automazione ID È interessante notare che i loro script VBA sembrano funzionare solo con il proprio carattere.

Un'altra soluzione (più economica ma più complicata, tramite AppleScript) che funziona per un mio amico è qui disponibile: Scorpion Research

Grazie a tutti per l'aiuto.

    
risposta data 26.08.2014 - 18:01
fonte
0

Potresti provare il Carattere gratuito del codice a barre scaricato da qui: link e installarlo in /Library/Fonts .

Per utilizzarlo basta scegliere il carattere ** in qualsiasi applicazione desiderata, incluso Excel.

Il codice a barre avrà bisogno di essere in una dimensione di carattere più grande rispetto al resto delle celle, ma puoi provarlo da solo - forse è "abbastanza buono" per te.

Non è la soluzione migliore, ma è gratuita. In alternativa, puoi acquistare una soluzione: una ricerca, ad es. Google ti darà alcuni colpi.

** Mostra un'icona del codice a barre e non il nome, ma si trova nella C perché il nome del carattere è code128.ttf

    
risposta data 20.08.2014 - 10:38
fonte
0

Ecco come lo faccio:

La colonna A è il testo che voglio codificare.

La colonna B è una formula per avvolgere quel testo in asterischi (che è ciò che, per me qualifica la voce come testo): =CONCATENATE("*",A2,"*")

Il testo nella colonna B è formattato con il carattere del codice a barre, con le dimensioni regolate per leggibilità, stampa e scansione.

Spero che questo aiuti in qualche modo.

APPENDICE

Ho trovato la seguente macro , creata da Eric Townsend Schmidt. Tutto il merito va a lui.

 Public Function code128$(chaine$)
  'This function is governed by the GNU Lesser General Public License (GNU LGPL)
  'V 2.0.0
  'Parameters : a string
  'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, mini%, dummy%, tableB As Boolean
  code128$ = ""
  If Len(chaine$) > 0 Then
  'Check for valid characters
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32 To 126, 203
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    'Calculation of the code string with optimized use of tables B and C
    code128$ = ""
    tableB = True
    If i% > 0 Then
      i% = 1 'i% devient l'index sur la chaine / i% become the string index
      Do While i% <= Len(chaine$)
        If tableB Then
          'See if interesting to switch to table C
          'yes for 4 digits at start or end, else if 6 digits
          mini% = IIf(i% = 1 Or i% + 3 = Len(chaine$), 4, 6)
          GoSub testnum
          If mini% < 0 Then 'Choice of table C
            If i% = 1 Then 'Starting with table C
              code128$ = Chr$(205)
            Else 'Switch to table C
              code128$ = code128$ & Chr$(199)
            End If
            tableB = False
          Else
            If i% = 1 Then code128$ = Chr$(204) 'Starting with table B
          End If
        End If
        If Not tableB Then
          'We are on table C, try to process 2 digits
          mini% = 2
          GoSub testnum
          If mini% < 0 Then 'OK for 2 digits, process it
            dummy% = Val(Mid$(chaine$, i%, 2))
            dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
            code128$ = code128$ & Chr$(dummy%)
            i% = i% + 2
          Else 'We haven't 2 digits, switch to table B
            code128$ = code128$ & Chr$(200)
            tableB = True
          End If
        End If
        If tableB Then
          'Process 1 digit with table B
          code128$ = code128$ & Mid$(chaine$, i%, 1)
          i% = i% + 1
        End If
      Loop
      'Calculation of the checksum
      For i% = 1 To Len(code128$)
        dummy% = Asc(Mid$(code128$, i%, 1))
        dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 100)
        If i% = 1 Then checksum& = dummy%
        checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
      Next
      'Calculation of the checksum ASCII code
      checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 100)
      'Add the checksum and the STOP
      code128$ = code128$ & Chr$(checksum&) & Chr$(206)
    End If
  End If
  Exit Function
testnum:
  'if the mini% characters from i% are numeric, then mini%=0
  mini% = mini% - 1
  If i% + mini% <= Len(chaine$) Then
    Do While mini% >= 0
      If Asc(Mid$(chaine$, i% + mini%, 1)) < 48 Or Asc(Mid$(chaine$, i% + mini%, 1)) > 57 Then Exit Do
      mini% = mini% - 1
    Loop
  End If
Return
End Function
    
risposta data 25.08.2014 - 23:36
fonte
0

Grazie Jer el per gli oggetti di scena.

È vero che non puoi semplicemente scaricare un font di codice a barre e convertire una colonna di dati in codici a barre analizzabili. La macro sopra elencata fa il trucco bene. Lo sto spostando su link

La macro guarda semplicemente i dati in 1 colonna e li converte in simboli, numeri e lettere che corrispondono al font trovato su dafont.com in un'altra colonna. Ho nascosto quella colonna nel file per evitare manomissioni accidentali.

La colonna finale è una copia di quella colonna nascosta con il carattere cambiato il carattere del codice a barre. Clicca e trascina e il gioco è fatto. Ho dovuto barcode 3000 articoli rapidamente senza budget. Per essere completamente onesto, ho trovato il codice originale non funzionante su un sito francese geocities-esque e non funzionava da quando lo standard per code128 è cambiato. Dopo averlo risolto, l'ho provato con il mio lettore di codici a barre per iPhone e SHAZAM! Ho pianto un po '...

    
risposta data 31.01.2015 - 12:46
fonte

Leggi altre domande sui tag