Всем привет ребята.
Выгружаю Excel из 1с.
Но У меня все числа стоят как строки(зеленый треугольник слева)
Что придумал Я:

```1c
    Процедура ТекстВЧисла(Файл)

    ИмяФайлаЕксель = Файл;
    //Немного по форматам
    // formats in Excel 2007-2010
    xlExcel12 = 50; // XLSB - данные в бинарном виде, хорошо для больших таблиц, макс скорость,мин объем ).
    xlOpenXMLWorkbook = 51; // XLSX - не поддерживает макросы, вообще не наш случай
    xlOpenXMLWorkbookMacroEnabled = 52; // XLSM - поддерживает макросы, данные в виде openxml
    xlExcel8 = 56; // XLS (export to Excel 97-2003) небольшие файлы

    //Получаем доступ к екселю
    Ексель = Новый COMОбъект("Excel.Application");

    //Делаем книгу
    Книга = Ексель.Workbooks.Open(ИмяФайлаЕксель);

    //Теперь рабочую область
    Лист1 = Книга.Worksheets(1);

    //Создание Кнопки
    Кнопка1=Книга.Worksheets(1).Buttons.Add(420.5, 12.5, 89.5, 17.5);
    //первые 2 цифарки (420.5, 12.5, , ) это координаты точки
    //вторые 2 цифарки размеры кнопки длина ширина (, , 89.5, 17.5)
    Кнопка1.Caption="Создать Заказ";
    Кнопка1.On Action = "CommandButton1_Click";
    //Пишем макросы в кнопки
    //Название "CommandButton1_Click" должно совпадать в процедуре ниже строка и в OnAction на кнопке
    МакросСЗ = "Private Sub CommandButton1_Click()
    |Dim rArea As Range
    | On Error Resume Next
    |ActiveWindow.RangeSelection.SpecialCells(xlCellTypeConstants).Select
    |If Err Then Exit Sub
    |With Application: .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual: End With
    |For Each rArea In Selection.Areas
    |rArea.Replace ",", "."
    |rArea.FormulaLocal = rArea.FormulaLocal
    |Next rArea
    |With Application: .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlAutomatic: End With
    |End Sub";
    VBComponents = Книга.VBProject.VBComponents;
    Кол = VBComponents.Count();
    Модуль = VBComponents.Add(1);
    Модуль.CodeModule.InsertLines(1,МакросСЗ);

    //Выключаем ругательства
    Ексель.DisplayAlerts = 0;
    //Устанавливаем открытие листа с прайсом при открытии файла клиентом
    Лист1.Activate();
    //Устанавливаем видимость закладок листов, по умолчанию они выключены
    Ексель.ActiveWindow.DisplayWorkbookTabs = 1;
    //Устанавливаем положение полосы прокрутки, по умолчанию прокрутка закрывает видимость закладок листов
    Ексель.ActiveWindow.TabRatio = 0.6;
    //Сохраняем в формат с поддержкой макросов
    Книга.SaveAS(СтрЗаменить(ИмяФайлаЕксель,".XLSX", ".xlsm"),xlOpenXMLWorkbookMacroEnabled);
    //Сохраняем в формат с поддержкой макросов только в бинарном виде - маленький размер файла.
    Книга.SaveAS(СтрЗаменить(ИмяФайлаЕксель,".XLSX", ".xlsb"),xlExcel12);
    //Закрываем книгу
    Книга.Close();
    //Выходим из ком
    Ексель.Quit();
    //Чистим xlsx, больше он не нужен
    УдалитьФайлы(ИмяФайлаЕксель);
    ФайлЕксель = СтрЗаменить(ФайлЕксель,".xlsx", ".xlsb");
    КонецПроцедуры
```

Появляется кнопка Я ее нажимаю и все ок, строки в числа переделаны. А Можно как нибудь скрыть кнопку, или вообще ее не делать. И сделать все автоматически?
---
https://tutorexcel.ru/makrosy-vba/avtozapusk-makrosa-pri-otkrytii-knigi-v-excel/
Если только попробывать при активации листа выполнять код
---
https://tutorexcel.ru/makrosy-vba/avtozapusk-makrosa-pri-otkrytii-knigi-v-excel/
Если только попробывать при активации листа выполнять код
---
спасибо за ответ но не совсем подходит.
Я как то год назад делал что то подобное, но не могу найти на работки.
Как можно активировать кнопку и скрыть им прио открытии экселя. Или сохранении не помню. Может кто делал подобное ?