Excel не отображается штрих код

 

Добрый день, уважаемые эксперты форума! Обращаюсь к вам впервые, т.к. раньше ответы удавалось найти в уже существующих темах. Но не в этот раз. Проблема в следующем:

Присылает нам поставщик накладные, предположительно, из 1С. На всех компах, кроме новых, они открываются корректно, а на новых стоит MS Office 2016 (лицензия) и вместо штрих-кода открывается набор символов. Шрифт в систему установлен. В Word 2016 все работает. А в Excel 2016 даже вручную назначить этот шрифт не дает. При этом, в MS Office 2003 (лицензия) открывается все без проблем. Переставить офис на старый не вариант, ибо все лицензия на определенное количество машин. Все настройки безопасности отключали — не помогает. Отправил друзьям — выяснилось, что проблема на всех машинах с офисом  2016. При этом, другие штрих-коды открываются без проблем. Проблема в  том, что в данном документе штрих-код в отдельном модуле, а Excel 2016  по какой-то причине не позволяет ставить в «Надписях» нестандартные  шрифты. Может кто с этим сталкивался? Файлы прилагаю: в архиве пример файла и шрифт.

Прикрепленные файлы

  • Quest.zip (6.99 КБ)

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

whitemanehorsey,
Ну первое что напрашивается, так это поставщику привет и порекомендовать накладные пересылать в PDF, или вы их далее правите?

По вопросам из тем форума, личку не читаю.

 

 БМВ,
Правим, импортируем и отправляем далее. Поставщик — очень крупная контора и не будет ничего менять. Все подстраиваются под них.

Изменено: whitemanehorsey24.07.2018 17:13:23

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

Где штрих код то должен быт, я и на 2013 его не наблюдаю.

По вопросам из тем форума, личку не читаю.

 

БМВ, в шапке. Скрин прилагаю.  

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

У меня не вызвал проблем: Excel 2016(64, En) Win10 (windows-1252)

 

sokol92, у нас разрядность офиса — 32 бита, язык — русский Win7 и Win10 x64. В остальном все так же.Вы никакие дополнительные настройки после установки офиса не производили?

 

Такое впечатление, что проблема в файле. Именно к фигуре шрифт не применяется, зато к ячейкам — без проблем. Можете просто скопировать текст из фигуры в ячейку и назначить шрифт Barcode. Все будет отображаться нормально.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Дмитрий(The_Prist) Щербаков, данные файлы выгружаются массово (несколько десятков тысяч в день). Если каждый открывать и править, то рабочего дня не хватит. А многие конечные получатели с экселем на Вы, а то и просто печатают и от руки заполняют. Потом присылают обратно в бумажном виде, а поставщик отказывается принимать из-за отсутствия штрих-кода. И тут проблема не в файле. Можете попробовать создать новый документ, в нем вставить «Надпись» и попробовать применить этот шрифт или другие нестандартные — результат тот же — не применяет, по крайней мере у меня. Мне больше интересно, почему Эксель 2003 спокойно применяет шрифт к фигуре, а 2016-й наотрез отказывается? Может эту функцию можно как-то включить?

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#10

24.07.2018 19:13:38

Цитата
whitemanehorsey написал:
Можете попробовать создать новый документ, в нем вставить «Надпись» и …

Все дело в том, что попробовал и все работает. Штрих-код именно в фигуре. Так что дело-таки в файле изначально. Что, правда, совсем не означает, что наряду с этим нет проблем в самом офисе — это может быть связано воедино. Косяк в файле, который не учтен в офисе. Отправьте в Microsoft с описанием бага, может чего исправят.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

У меня и в 2010м ШК только в ячейке можно задать.
Как вариант — макрос на событие приложения использовать, пусть показыввает этот штрихкод где-то правее, ну или пусть на это место кладёт картинку.

 

Дмитрий(The_Prist) Щербаков, хотя да, приношу свои извинения, не работает только если скопировать из исходного файла. Если набивать с нуля, то работает. Мне начинает казаться, что глюк может скрываться или в @ на конце штрих-кода, или в самом процессе выгрузки этих накладных из 1С, которая любит сыпать всякими метаданными и псевдообъектами… Может ли быть такое, что типы данных объектов «Надпись» в структуре файла в 2003-м и в 2016-м экселях разные?

Про запрос к мелкомягким уже на втором форуме советуют… Наверное все-таки придется. Хотя мне кажется, что они на 1С валить начнут…

Изменено: whitemanehorsey24.07.2018 19:29:00
(дополнил)

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#13

24.07.2018 19:33:18

Цитата
whitemanehorsey написал:
Может ли быть такое, что типы данных объектов «Надпись» в структуре файла в 2003-м и в 2016-м экселях разные?

легко. Но и неверную выгрузку тоже нельзя исключать, т.к. вновь созданные объекты поддерживают эти шрифты. Так что я бы делал ставку именно на косяк выгрузки.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Hugo, правее нельзя, у поставщика автоматизированная обработка при получении с распознаванием рукописного ввода. Поэтому штрих-код, его размеры и расположение здесь основное. А вот про картинку вопрос интересный… Вот только что считать событием и как извлечь данные из этой автофигуры?

 

Чисто теоретически, можно написать код, который будет перебирать все файлы, забирать текст из этой фигуры и в новой книге создаст фигуру таких же размеров, вставит текст, применит шрифт и заменит в исходном файле «глючную» фигуру.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Событие — открытие или активация листа с такими объектами, или с такой формой, или вообще любого после включения «крыжика» где как придумаете.
Код берёт объект, генерит по данным штрихкод, делает из этого картинку, ставит куда нужно, сохраняет файл в нужном месте в нужном виде.
Есть вариант кода, который просто рисует набор линий, тоже можно использовать как вариант решения.
А можно просто не мудрить, а обработать указанный каталог и всё.

Изменено: Hugo24.07.2018 19:46:02

 

Дмитрий(The_Prist) Щербаков, про косяк выгрузки представители поставщика отвечают, что у них все работает. А у них офис 2003 у всех. На 2003-м действительно работает без проблем. Вот потому я тему тут и создал — ищу решение проблемы, возможно, с их косяком, но как я писал выше, поставщик очень крупный и все подстраиваются как могут.

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

А может проще поставить 2003 и открывать в нём?

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#19

24.07.2018 20:00:52

Попробуйте такой код:

Код
'---------------------------------------------------------------------------------------
' Author : The_Prist(Щербаков Дмитрий)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose:
'---------------------------------------------------------------------------------------
Sub FixBarcodeText()
    Dim sFolder As String, sFiles As String
    Dim wb As Workbook, ws As Worksheet
    Dim shptmpl As Shape, shp As Shape
    'диалог запроса выбора папки с файлами
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    'отключаем обновление экрана, чтобы наши действия не мелькали
    Application.ScreenUpdating = False
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
        If sFiles <> ThisWorkbook.Name Then
            'открываем книгу
            Set wb = Application.Workbooks.Open(sFolder & sFiles)
            Set ws = wb.Sheets(1)
            Set shp = ws.Shapes(1)
            If shptmpl Is Nothing Then
                Set shptmpl = ThisWorkbook.Sheets(1).Shapes.AddLabel(1, shp.Left, shp.Top, shp.Width, shp.Height)
                shptmpl.Name = "_tmplbarcode_"
            End If
            shptmpl.TextEffect.Text = shp.TextEffect.Text
            shptmpl.TextEffect.FontName = "Barcode"
            shptmpl.TextEffect.FontSize = 16
            shptmpl.Copy
            ws.Paste
            With ws.Shapes("_tmplbarcode_")
                .Left = shp.Left
                .Top = shp.Top
            End With
            shp.Delete
            'Закрываем книгу с сохранением изменений
            wb.Close True 'если поставить False - книга будет закрыта без сохранения
        End If
        sFiles = Dir
    Loop
    If Not shptmpl Is Nothing Then
        shptmpl.Delete
    End If
    'возвращаем ранее отключенное обновление экрана
    Application.ScreenUpdating = True
End Sub

Только пробуйте на копиях файлов. Помещаете нужные для исправления файлы в одну папку. В отдельном файле помещаете данный код. Запускаете его. Выбираете папку с файлами. Он откроет каждый файл и поправит в нем фигуры. Файлы будут сохранены и именно поэтому пробовать лучше на копиях файлов, чтобы ничего не попортить.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

whitemanehorsey

Пользователь

Сообщений: 32
Регистрация: 24.07.2018

#20

24.07.2018 20:07:17

Цитата
Дмитрий(The_Prist) Щербаков написал:
Чисто теоретически, можно написать код, который будет перебирать все файлы

Файлы в динамике и приходят ежедневно в течение дня. То есть код должен будет работать постоянно на всех машинах, где есть этот глюк. Организовать это нереально, т.к. придется менять структуру работы многих и многих…

Цитата
Hugo написал:
А может проще поставить 2003 и открывать в нём?

Увы, как я писал выше, нет. На новые машины куплены лицензии на офис 2016. На офис 2003 лицензии сейчас не продают. А объяснить даунгрейд, что платили за 2016, а пользуются 2003-м сами понимаете…

Резюмирую:
Где-то в нас (я и руководство компании) трепыхалась надежда, что проблема решается проще, по принципу «Зайдите в настройки и снимите галочку…». Но, судя по всему, это не так. Любые сложные решения невыполнимы в силу специфики отрасли. Тот же скрипт я не смогу внедрить человеку, который находится удаленно и даже не знает как запустить тимвьювер. В общем, похоже придется писать в майкрософт и ждать ответа от них. Большое всем спасибо за консультации. Если найду решение — отпишу.

Цитата
Hugo написал:
Событие — открытие или активация листа с такими объектами, или с такой формой, или вообще любого после включения «крыжика» где как придумаете.Код берёт объект, генерит по данным штрихкод, делает из этого картинку, ставит куда нужно, сохраняет файл в нужном месте в нужном виде.Есть вариант кода, который просто рисует набор линий, тоже можно использовать как вариант решения.А можно просто не мудрить, а обработать указанный каталог и всё.

Если есть ссылки на примеры кода — буду благодарен. Возможно, придется пересматривать маршрутизацию накладных, если майкрософт ничего не ответит, а количество новых компов будет расти.

 

Дмитрий(The_Prist) Щербаков, огромное спасибо за код! Это решение может помочь, если придется менять маршрутизацию накладных.

А можно ли этот код использовать вне среды Excel? Например, в Outlook?

Изменено: whitemanehorsey24.07.2018 20:30:12
(дополнил)

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

whitemanehorsey, ссылок на примеры кода у меня нет, ибо такого кода пока и нет.
И вообще пока не понятно — нужно ли думать над таким решением, ибо мне пока итоговая задача не ясна. Зачем нужен этот штрихкод?

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Дмитрий(The_Prist) Щербаков, у меня не сработало. Фигура с кодом есть, а штрихов нет… Шрифт в системе есть, на ячейке могу изобразить.

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

#24

24.07.2018 20:56:51

Цитата
whitemanehorsey написал:
В остальном все так же.Вы никакие дополнительные настройки после установки офиса не производили?

Клянусь. Только поставил шрифт.

Владимир

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

Клянусь, у меня  объект не позволяет поменять шрифт на целый ряд шрифтов, даже тех, что были в системе. В том числе и все Barcode. А система то буквально свежак, переставил в эти выходные.

Изменено: БМВ24.07.2018 21:05:24

По вопросам из тем форума, личку не читаю.

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#26

24.07.2018 21:06:07

Цитата
Hugo написал:
Шрифт в системе есть, на ячейке могу изобразить

Игорь, так у тебя и до этого не работало :) Код только использует объект из новой книги — сам принцип создания ШК остался неизменным, а значит и не мог у тебя заработать. Я код делал исходя из того, что у ТС в новой книге все работает.
Чтобы заработало у тебя надо сначала в ячейку запихивать, потом менять шрифт, копировать ячейку и вставлять как картинку. Но тогда размеры самого ШК и его пропорции могут быть не такими, какими должны быть. Хотя и такой код можно без проблем изобразить в моем коде — не так много переделывать.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Да, странно… Некоторые шрифты принимает, некоторые нет… Даже тот же Wingdings работает, а Barkode нет.

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Проверил дома, работает. Excel 2007 (ru), Win7 (windows-1251)

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#29

24.07.2018 22:55:08

А может такой код в персонал?

Код
Option Explicit
Private WithEvents XLApp As Application

Private Sub Workbook_Open()
    Set XLApp = Excel.Application
End Sub

Private Sub XLApp_WorkbookOpen(ByVal Wb As Workbook)
    Dim bk$
    With Wb.Sheets(1)
        On Error Resume Next
        bk = .DrawingObjects(1).Caption
        If Right(bk, 1) = "@" Then
            .DrawingObjects(1).Delete
            With .Range("J3:M4")
                .Merge
                .HorizontalAlignment = xlRight
                .VerticalAlignment = xlCenter
                .Font.Name = "Barcode"
                .Font.Size = 16
                .Value = bk
                ' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
                ' ежели нужна картинка
                .CopyPicture Appearance:=xlScreen, Format:=xlPicture
                .Select
                Wb.Sheets(1).Paste
                .ClearContents
                ' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
            End With
        End If
    End With
End Sub
 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

#30

24.07.2018 23:24:33

Коллеги но ведь в целом это проблема экспорта из всем и горячо любимой 1C и еще более горячо любимых и ужасно трудолюбивых  программистов на 1С

Цитата
whitemanehorsey написал:
Поставщик — очень крупная контора и не будет ничего менять.

Это не корретное утверждение, если контора крупная, то она? не часто, но думает о завтра, и если сегодня у одного клиента проблемы, завтра у 10. Заявить о том что не работает решение стабильно нужно уже сегодня.  

По вопросам из тем форума, личку не читаю.

Hello,

We are a small biomedical company that is testing new product labels & GS1 barcodes to comply with the upcoming European and American regulations for Unique Device Identifiers (UDIs).

Recently, we purchased a basic Barcode Scanner to validate our labels with «2D Matrix» GS1 barcodes.

However, we are experiencing a strange phenomenon and want to ask you if you’ve come across something like this (and if so, how you resolved it).

For more than 95% of our 2D Matrix GS1 barcodes, they scan perfectly on both MS Excel and MS Word- all data scan correctly.    However, for less than 5% of our individual products, when you scan the 2D Gs1 barcode, they will read correctly on Word, but not on Excel.

For these problematic 5%,  when the barcode is scanned in Excel, they’ll scan INCORRECTLY as scientific notation (i.e. 8.3E^32).  

We’ve tried re-formatting the cells but that didn’t help resolve the issue (text, number, etc.).

Have you have come across this type of error; and if so, how did you resolve it?

Again, all barcodes scan 100% correctly on MS Word, but 5% are problematic in MS Excel.

Thank you for your help!

-Stephen & Fanny

Вставка штрих-кода на лист excel

light26

Дата: Вторник, 10.12.2013, 20:02 |
Сообщение № 1

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Всем привет.
Столкнулся с проблемой добавления штрих-кода на лист по данным нескольких ячеек.
Во вложенном файле пример бланка оплаты за газ, где в разделе «СЧЕТ-ИЗВЕЩЕНИЕ» есть штрих-код с информацией об оплачиваемом периоде и номере лицевого счета и еще ряд цифр в начале, значение которых я пока не понял.
Если рассмотреть подробно, то источник первых двух групп цифр под штрих-кодом мне не известен, третья и четвертая — оплачиваемый период (правда не ясно как период может быть датой) из ячейки Q47 (там формула, которая возвращает значение далекое от даты, но это уже другой вопрос), пятая, шестая и седьмая — номер лицевого счета из ячейки S11. Оставшиеся три — нули.
Как на основании значений из указанных ячеек сформировать штрих-код?
В интернете нашел несколько вариантов, но либо из категории «отправьте смс на номер», либо решения не подходят мне. Справка Excel говорит, что для вставки штрих-кода средствами Excel нужна версия Professional plus, которой я не обладаю и не встречал ранее.
Буду признателен за помощь в любом виде.

К сообщению приложен файл:

9177952.xlsx
(61.0 Kb)


Я не волшебник. Я только учусь

Сообщение отредактировал light26Вторник, 10.12.2013, 22:39

 

Ответить

light26

Дата: Вторник, 10.12.2013, 20:43 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Вот один из примеров, но только на 13 цифр (может кому пригодится).
Мне нужно на 40

К сообщению приложен файл:

1288247.xls
(77.5 Kb)


Я не волшебник. Я только учусь

Сообщение отредактировал light26Вторник, 10.12.2013, 22:01

 

Ответить

Serge_007

Дата: Вторник, 10.12.2013, 22:18 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Вадим, что за название у темы?!
Поиск юзал?


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

light26

Дата: Вторник, 10.12.2013, 22:38 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013


Да. там не то, что мне нужно.

Нашел такой вариант в инете. Это то, меня устроило бы, но надо макрос изменить. Буду признателен за помощь.

К сообщению приложен файл:

Barcode.xls
(58.0 Kb)


Я не волшебник. Я только учусь

Сообщение отредактировал light26Вторник, 10.12.2013, 22:45

 

Ответить

light26

Дата: Среда, 11.12.2013, 14:24 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Применил метод научного тыка. Урезал тело макроса насколько мне позволяют знания VBA (их очень мало). Осталось заставить макрос рисовать штрих-код именно там, где мне это нужно. Сейчас он выводится только в некоторых ячейках столбца В. В остальных — набор символов.
В моем случае штрих-код должен быть возвращен в ячейку Y13
Помогите, пожалуйста


Я не волшебник. Я только учусь

 

Ответить

RAN

Дата: Среда, 11.12.2013, 14:53 |
Сообщение № 6

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Вадим, твой макрос работает в полном соответствии с заложенным алгоритмом. Так что от ячейки Y13 ничего не зависит. Какие исходные данные — таков и результат.


Быть или не быть, вот в чем загвоздка!

 

Ответить

light26

Дата: Среда, 11.12.2013, 15:27 |
Сообщение № 7

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Вадим, твой макрос работает в полном соответствии с заложенным алгоритмом

Андрей, ну, во-первых, макрос не мой :) . Во-вторых, работать-то он работает, но почему-то не «чертит» штрих-код в других ячейках. Вероятно ячейка со штрих-кодом имеет свое специальное форматирование. Проблему я решил народным методом научного тыка: просто скопировал ячейку со штрих-кодом и вставил в нужную мне. Теперь штрих-код рисуется и в этой ячейке, а раньше только возвращалось значение с набором символов. Остальное дело техники. Если интересно, могу показать что получилось (тут не выложишь, файл больше 100 Мб).

Так что от ячейки Y13 ничего не зависит

Мне не надо, чтоб что-то зависело от этой ячейки. В эту ячейку (в другом файле) должен вставляться штрих-код на основании значений других ячеек.


Я не волшебник. Я только учусь

Сообщение отредактировал light26Среда, 11.12.2013, 15:28

 

Ответить

RAN

Дата: Среда, 11.12.2013, 18:09 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Теперь штрих-код рисуется

Рисуется?
У меня в твоем файле вообще ни в одной ячейке ничего не рисуется.
В шрифтах стоит Barcode, но отображается как Arial.


Быть или не быть, вот в чем загвоздка!

 

Ответить

light26

Дата: Среда, 11.12.2013, 18:42 |
Сообщение № 9

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

В шрифтах стоит Barcode, но отображается как Arial

Блин, я ж забыл, надо еще шрифты установить.
Попробуй со шрифтами

К сообщению приложен файл:

Barcode.ttf
(1.7 Kb)


Я не волшебник. Я только учусь

Сообщение отредактировал light26Среда, 11.12.2013, 18:43

 

Ответить

rizaj

Дата: Среда, 04.03.2015, 19:59 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Всем привет а у меня обратная проблема как из code 39 «802200:0200:002282000:002282002:000280202:0002:000080220:0022820080220′ то что сканером прочел получить исходное значение (92)525383(37)25
в таблицу.. помогите. %)
[moder]Читаем Правила форума, создаём свою тему, прикладываем файл с примером. Эта тема закрыта[/moder]

Спасибо.

Сообщение отредактировал rizajСреда, 04.03.2015, 20:25

 

Ответить

1

2

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Jeam

Дата регистрации: 30.01.2013
Сообщений: 12

Здравствуйте форумчане!<br> <br>Помогите решить проблему.<br>Отчетность сброшена в Excel. На Excel 2003 штрих-код видно, на Excel 2010 — только цифры. Попытки заменить шрифт на EanGnivc успехов не приносят: Calibri стоит намертво и своё место уступать не хочет. От перемены мест компьютеров результат не меняется: везде на Excel 2010 штрих-кода не видно.<br> <br>Кто знает как побороть Calibri?

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

> Отчетность сброшена в Excel.<br> <br>Пошагово опишите как это делали.

Jeam

Дата регистрации: 30.01.2013
Сообщений: 12

1. Открываем файл отчета в Excel 2010<br>2. Ставим курсор во фрейм где расположен штрих-код<br>3. Выделяем цифры и восклицательные знаки во фрейме<br>4. Открываем список шрифтов на Главной панели Excel<br>5. Меняем шрифт с Calibri на EanGnivc<br>6. Шрифт не меняется и остается Calibri

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

> 1. Открываем файл отчета в Excel 2010<br> <br>Откуда этот файл взялся у вас, я вот это пытаюсь понять?

Jeam

Дата регистрации: 30.01.2013
Сообщений: 12

Бухгалтер прислала. И как я писал в первом посте в Excel 2003 он печатается нормально.

Sh_S

Дата регистрации: 02.03.2007
Сообщений: 7730

из какой программы отчет? платформа хоть какая?

Jeam

Дата регистрации: 30.01.2013
Сообщений: 12

Thorvardr

Дата регистрации: 25.02.2005
Сообщений: 3082

Пусть она его вышлет не в формате MS Excel, а в формате 1С, то есть, в виде файла с расширением mxl. А вы себе поставьте вот эту штуку и не мучайтесь.<br>http://v8.1c.ru/metod/fileworkshop.htm

Jeam

Дата регистрации: 30.01.2013
Сообщений: 12

Так же можно поставить Office 2003 на виртуалку. Наверняка есть ещё несколько способов обойти проблему.<br>Но я хочу понять почему не отображаются штрих-коды в 2010?

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Они отображаются. Ваш бухгалтер сохранила файл на в формате xlsx просто похоже (возможно 7.7 даже и не может в этом формате сохранять).

Excel – удивительное приложение, умеющее не только электронные таблицы, но и выполнять значительно большее количество действий. Например, генерировать штрих-коды. Для этого нужно воспользоваться специальным файлом, с помощью которого можно создать достаточное количество штрих кодов, и распечатать их.

Содержание

  1. Генератор штрих-кодов
  2. Системы штрих-кодирования товаров, цифры штрих-кода
  3. Скачать генератор штрих-кодов
  4. Установка в Windows шрифта EAN13.ttf
  5. Windows XP, более ранние версии ОС
  6. Windows 7, Windows Vista
  7. Запуск генератора штрих-кодов и его использование
  8. Как самостоятельно сделать генератор штрих-кодов в Excel
  9. Процесс создания штрих-кода в Excel пошагово

Генератор штрих-кодов

Генератор штрих-кодов – маленький исполняемый модуль Excel, который позволяет создавать штрих-коды, основываясь на данных, указанных в таблице. Достаточно его скачать, установить специальный шрифт, и после этого можно приступать к работе. Но для начала нужно в целом понять, что такое штрих-коды и как они работают с научной точки зрения, так сказать.

Системы штрих-кодирования товаров, цифры штрих-кода

Для обычного человека нет принципиальной разницы между разными системами штрихкодирования товаров. Тем не менее, стандартной является та, которая имеет код EAN13. Первые три буквы в начале означают European Article Number, что переводится, как «Европейский Код Товара». Впрочем, эта система используется не только европейскими странами, но и везде. Структура штрих-кода этого типа следующая. В его состав входит тринадцать цифр, которые разделяются на несколько блоков:

  1. Первые три из них указывают на страну производителя. Так, по коду 460-469 мы понимаем, что продукция была изготовлена в России.
  2. Далее идут четыре цифры, которые указывают на производителя этой продукции.
  3. Пять цифр, которые следуют за ними, обозначают код товара по той системе классификации, которая была разработана в организации, которая предлагает этот товар.
  4. Последнее число рассчитывается по определенному механизму и необходима в качестве контрольной.

Создание штрих-кода в Excel

Таким образом, алгоритм штрих-кода очень четкий и нельзя его придумывать самостоятельно. Если попытаться воспользоваться сканером штрих-кодов, он выдаст ошибку, потому что алгоритм разработан исходя из имеющегося стандарта.

Некоторые штрих-коды не классифицируются описанным выше образом. Например, продукция может быть фасованной, и тогда штрих-код начинается с цифры 2. Также достаточно популярным форматом штрих-кодов, который используется для других целей, является QR-код. С его помощью можно зашифровать любую информацию.

Скачать генератор штрих-кодов

Итак, для генерации штрих-кодов в Excel необходимо скачать специальный файл (он полностью бесплатный) и открыть его. В скачанном архиве будет три файла:

  1. Инструкция. Здесь находится инструкция по использованию генератора штрих-кодов. Можно ее не открывать, если внимательно прочитать эту статью.
  2. ean13.ttf. Это шрифт, который нужно установить перед тем, как создать штрих-код.
  3. Генератор штрих кодов.xls – документ, позволяющий генерировать штрих-код.

После скачивания архива, его необходимо распаковать, а потом инсталлироввать шрифт, требуемый для выполнения поставленной нами задачи. Сам генератор штрихкодов находится по этой ссылке. https://www.tirika.ru/files/generator-shtrih-kodov.zip

Установка в Windows шрифта EAN13.ttf

Последовательность действий, необходимая для установки шрифта, несколько отличается. В последних версиях Windows отсутствует специальная кнопка для добавления шрифта, поэтому это нужно сделать другим методом.

Windows XP, более ранние версии ОС

Так, если у Вас операционная система Windows XP, нужно осуществить такие действия:

  1. Нажать на кнопку «Пуск», после чего перейти в Панель Управления. В ней нужно найти кнопку «Шрифты» и нажать на нее. Создание штрих-кода в Excel
  2. Далее перед глазами откроется окно со шрифтами. В нем нужно найти кнопку «Добавить новый шрифт» и выбрать наш файл со шрифтом в папке, куда был распакован скачанный на предыдущем этапе архив.

Windows 7, Windows Vista

Если у Вас Windows Vista и старше, в диалоговом окне выбора шрифтов нет кнопки «Добавить шрифт». Поэтому его нужно скопировать в перечень шрифтов вручную. Для этого надо открыть проводник и перетащить его туда так же, как и в какую угодно другую папку.

Запуск генератора штрих-кодов и его использование

Теперь наш шрифт установлен в Windows. После этого можно приступить к генерации штрих кодов с помощью одноименного файла в распакованном архиве. На этом этапе у пользователя может возникнуть такая проблема.

Создание штрих-кода в Excel

По умолчанию для всех скачанных с интернета документов Excel автоматически выключает макросы, потому что они могут содержать вредоносный код. Дело в том, что программа Excel не только умеет создавать электронные таблицы, а поддерживает полноценное программирование. Язык, с помощью которого разрабатываются эти мини-приложения, называется VBA, что расшифровывается, как Visual Basic for Applications. Собственно, макросом называется программа, написанная на этом языке. С их помощью можно реализовать почти любую хотелку в электронных таблицах. Но некоторые пользователи разрабатывают плохие программные модули, поэтому разработчики Excel отключили их по умолчанию.

Файл, скачанный ранее, также является программой, написанной для Microsoft Excel. Здесь отсутствует вредоносный код, поэтому можно смело разрешать приложению открывать эти исполняемые модули. Если вы все же не очень доверяете макросам, скачанным с неизвестных источников, то можно просто удалить этот файл. Если их не включить, он не будет работать. Если вы доверяете файлу, то активируйте макросы, после чего нужно указать ряд несложных настроек. Создание штрих-кода в Excel

Давайте разберем эти параметры более подробно:

  1. Сколько штрихкодов создать. Здесь нужно указать число кодов, которые надо нам распечатать. Например, нам нужно 100 штук. Столько и вносим в ячейку.
  2. Номер первого штрихкода. После запуска программы рекомендуется писать цифру 1, поскольку именно с этого числа и будет осуществляться нумерация штрих-кодов. Если же ранее уже сделано 100 штук, то можно в качестве первого номера написать число 101, после чего все следующие штрих-коды будут нумероваться с этой цифры.
  3. Префикс штрихкодов. Пользователь может создавать штрих-коды, находящиеся в диапазоне между 200 и 299, которые предназначены для более произвольных маркировок товаров. Например, вы можете предусмотреть для продукции код 200, а для скидочных карт – 299. С помощью этой настройки пользователь может создавать отдельные коды для отдельных типов потребностей клиентов.

После ввода параметров генератора штрихкодов, нам необходимо нажать на кнопку «Создать штрихкоды». После этого будет создан отдельный лист, в котором будут перечислены наши штрихкоды в первой колонке. Все шрифты будут нарисованы с использованием установленного ранее шрифта.

Создание штрих-кода в Excel

Далее эта страница может быть распечатана, а потом ее можно и удалить. Если по тем или иным причинам штрих-коды оказываются ненужными, их можно убрать и ранее, поскольку всегда их можно сгенерировать заново. Зачем занимать лишнее место на диске?

По какому принципу работает этот генератор? После нажатия пользователем кнопки «Создать штрихкоды» создается новый лист, а одна из колонок заполняется сгенерированными штрих-кодами. Чтобы это сделать, сначала программа обрабатывает ту информацию, которая была указана пользователем на этапе настроек. Чтобы создать первую картинку, сначала берется префикс, который указал пользователь, после чего добавляет к нему первый номер, а потом добавляет определенное количество нулей. Сколько именно вставляется – определяется таким образом, чтобы получилась числовая последовательность в 12 символов. После этого рассчитывается последняя цифра, которые, как мы помним, генерируется по определенному алгоритму.

В результате, появляется 13-символьное число, записываемое в первую ячейку первого столбика листа, который был создан программой, после чего в ячейку B1 она добавляется, а для ячейки выставляется шрифт EAN13. После выполнения этих действий происходит создание второго штрихкода, которое выполняется по такому же алгоритму. Единственное исключение – номер увеличивается на единицу от предыдущего. Если сначала это было 1, то потом – 2, и так далее.

Алгоритм выполняется, пока не будет сгенерировано необходимое количество штрих-кодов. Затем перед пользователем появляется сгенерированный лист, и он может распечатать штрих-коды, которые получились.

Как самостоятельно сделать генератор штрих-кодов в Excel

А что если мы не хотим пользоваться чужими исполняемыми модулями, а хотим уметь делать такие коды самостоятельно? Для этого есть множество методов: создание собственной подпрограммы Excel, специализированный инструмент Active X и скачивание модулей, созданных другими пользователями.

Для начала можем установить специальный шрифт. Есть несколько шрифтов – не только тот, который мы скачивали ранее. Также по этому адресу можно найти специальную надстройку, предназначенную для достижения поставленной задачи. http://www.idautomation.com/font-encoders/word-excel-addin/.

Теперь нам нужно удостовериться, что был активирован Visual Basic. Ну и включить макрос, чтобы не изобретать велосипед, а создавать самостоятельно, но с использованием уже готовых инструментов. Для этого нужно выполнить следующую последовательность действий:

  1. Перейти по адресу http://www.idautomation.com/font-encoders/vba-macro/ и там найти исполняемый файл «VBA Macros for Excel & Access». Создание штрих-кода в Excel
  2. После этого скачиваем файл по ссылке, которая находится на этой странице.
  3. Далее будет скачан архив, который необходимо разархивировать.
  4. После этого открываем редактор Visual Basic с помощью комбинации клавиш Alt + F11. Сверху будет поле, в котором нам нужно нажать на кнопку «Файл». С помощью меню «Импортировать файл» нам нужно найти через специальное диалоговое окно файл, который мы скачали на предыдущих этапах и открыть его. Называется он IDAutomation.bas.
  5. С помощью этого модуля программа добавляет все необходимые компоненты для создания штрих-кодов.
  6. Его можно найти в папке «Модули».
  7. Далее мы переходим в обычный лист, после чего записываем код в ячейку. После этого активируем макрос через пункт «Разработчик» и запускаем его.
  8. Мы сгенерировали 8-значный штрих-код. Есть же и другой макрос,который содержит 13 знаков. Он вставляется и выполняется аналогичным образом.

Дальше нам осталось только распечатать штрих-код и проверить его. Не забудьте перед этим убедиться, что применяются подходящие шрифты.

Процесс создания штрих-кода в Excel пошагово

Есть еще один метод создания штрих-кода в Excel – создание собственного макроса. Также можно добавить элемент Active X. В Excel 2007 версии и новее это делается следующим образом:

  1. Переходим в раздел «Параметры», который находится в меню «Файл». Активируем функцию отображения вкладки «Разработчик» (нужно поставить соответствующую галочку).
  2. Если мы все сделали правильно, перед нами должна появиться вкладка «Разработчик». Там ищем кнопку «Вставить». Появится меню. В нем выбираем «Элементы управления ActiveX». После этого появится еще одно подменю, где нас интересует пункт «Другие элементы управления».
  3. Если соответствующий элемент установлен в компьютере, нам нужно найти объект StrokeScribe Object. После этого делаем левый клик по кнопке «ОК».
  4. Далее необходимо нанести объект на лист. Чтобы это сделать, нужно на нем нарисовать прямоугольник, размеры которого соответствуют размерам объекта, который должен быть на листе.
  5. После этого на странице появится штрих-код, который мы можем настроить через меню «Свойства».

Если же нужно сделать так, чтобы он изменялся в зависимости от того, какие цифры будут введены пользователем, необходимо писать код.

Таким образом, эта процедура не такая сложная, как может показаться на первый взгляд. Уже все сделано за пользователя заботливыми программистами. Можно скачать отдельный файл, макрос, который можно использовать в собственной книге или же воспользоваться элементом Active X и создавать собственный макрос. Тем не менее, последний способ является довольно продвинутым, поэтому требует специальных навыков. А чтобы их развить, нужно изучить теорию, которая будет предметом отдельной статьи.

Оцените качество статьи. Нам важно ваше мнение:

Like this post? Please share to your friends:
  • Excel не отображается текст при печати
  • Excel не прописывает весь путь
  • Excel не отображается строка с формулами
  • Excel не пропали нули
  • Excel не отображается панель с листами