Страницы: 1 2 След.
RSS
Макрос для вставки данных из файла для редактирования, Макрос для вставки данных из файла для редактирования
 
Добрый день.
Постараюсь написать понятней, чем описано в теме сообщения.

Есть файлы текстового формата (.txt, .edi), открывающиеся обычным текстовым редактором.
В них данные записаны в одну строку. Очень много символов в одну строку. Это неудобно для анализа и трудночитаемо. Но присутствуют символы ('), после которых должен быть разделитель строки.
Думаю, как можно создать универсальный файл для корректировки таких файлов.

Подскажите, можно ли создать файл MSExcel .xlsm внутрь вставить элемент формы "кнопка", например,назначить ей выполнение макроса:
1) Выбор файла и копирование его содержимого на новый лист (Лист2);
2) Добавление в содержимое Лист2 символов переноса строки после каждого указанного символа (');
3) Сохранение в файл изменённого содержимого Лист2 в указанное место на диске с указанием имени "загруженного файла"+"копия" ("отредактирован" или что-то подобное к начальному имени файла). Формат файлов может быть как текстовый (.edi, .txt) так и табличный (.xls, .csv)

Может быть несколько "кнопок" с макросами, каждая отвечающая за определённый этап: загрузка файла, изменение содержимого, сохранение.

Помогите с созданием макросов.

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

Заранее спасибо за помощь.
 
Может батник какой-нибудь лучше будет?
Или в текстовом редакторе сделать замену по всем открытым файлам... или даже не открытым (Notepad++?)
 
Кросс.
Владимир
 
Цитата
nilske написал:
Может батник какой-нибудь лучше будет?
ещё кросс, там почти батник - http://www.excelworld.ru/forum/10-53675-1
Но батник был бы оптимальнее, хотя и в тот макрос дописать цикл по файлам не сложно.
 
nilske, батник не подойдёт.
Политика организации не позволяет запускать исполняющие файлы на компе (.exe, .bat)
А вручную делать замену более трудоёмко и долго.
 
S_Kh,  так и макросы могут быть запрещены...
Попробуйте тот код
Код
Sub ChangeEDI()
    Dim strFileName As String
    Dim strFileContent As String

With CreateObject("Scripting.FileSystemObject")
    strFileName = ThisWorkbook.Path & "\PRELOAD PLAN SPIVA STAR 017ICOS_RUNVS EDI 22 .edi" ' Путь к вашему файлу
    strFileContent = .OpenTextFile(strFileName, 1).ReadAll
    strFileContent = Replace(strFileContent, "'", "'" & vbNewLine)
    .OpenTextFile(strFileName, 2).Write strFileContent
End With

End Sub
Изменено: Hugo - 29.08.2024 20:43:19
 
sokol92, добрый вечер.
Да, это моё сообщение на другои форуме.
И Вы мне очень помогли в прошлый раз с макросом. Спасибо
 
Цитата
S_Kh написал:
не позволяет запускать исполняющие файлы на компе
и что из текстовых редакторов у вас установлено?
 
Hugo, это тоже мой запрос в другом форуме. Ещё не успел прочитать ответ.
Спасибо
 
Это мой ответ там ))
 
Hugo, макросы пока не запрещены)))
Сейчас попробую Ваш. Отпишусь.
 
bigorq, из текстовых редакторов на рабочем компе: блокнот и notepad++
Дом использую xed, libreoffice writer. У меня linux mint. Notepadqq устанавливал, вылетает постоянно. С причиной ещё некогда было разбираться.
 
S_Kh, кстати там есть ещё толковый коммент от bigorq про Нотепад++:
если перейти на вкладку правее, то менять можно в файлах по маске.
Т.е. вообще скрипты/макросы не нужны, нужно только Нотепад++ поставить ))
Вот так отработало
Изменено: Hugo - 29.08.2024 22:01:53
 
Цитата
S_Kh написал:
Да, это моё сообщение на другои форуме.
Правила данного форума (пункт 4.1) рекомендуют сразу сообщать о "cross-posting", чтобы не обесценивать усилия помогающих.

Уважаемые Hugo и bigor(q) уже пишут сообщения в 2-х экз.  :)
Изменено: sokol92 - 29.08.2024 21:10:34
Владимир
 
Hugo, bigorq, не спорю, что notepad++ вещь мощная и необходимая)))
 
Hugo, не срабатывает ваш макрос )
Создал в LibreOffice файл, добавил в него макрос vba. Excell под рукой нет.
Скорректировал полный путь к исходному файлу.
Ругается (скрин во вложении), выделяет строчку  strFileContent = .OpenTextFile(strFileName, 1).ReadAll

Код
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Rem Attribute VBA_ModuleType=VBAModule

Sub ChangeEDI()
    Dim strFileName As String
    Dim strFileContent As String

With CreateObject("Scripting.FileSystemObject")
    strFileName = ThisWorkbook.Path & "/home/marina/Документы/Моё/files/PRELOAD PLAN SPIVA STAR 017ICOS_RUNVS EDI 22 .edi" ' Путь к вашему файлу
    strFileContent = .OpenTextFile(strFileName, 1).ReadAll
    strFileContent = Replace(strFileContent, "'", "'" & vbNewLine)
    .OpenTextFile(strFileName, 2).Write strFileContent
End With

End Sub
 
sokol92, сори )
Не прочитал сразу правила форума.

Hugo и bigor(q) и вправду уважаемые.
 
S_Kh, тут как бы форум по Microsoft Excel. Мы тут не про LibreOffice, Google Spreadsheets, МойОфис, Р7 и т.д.
Макросы для MS Excel не заработают в других программах
Изменено: New - 29.08.2024 21:30:35
 
New, у меня есть рабочие файлы с успешно выполняющимися макросами VBA Project (для MS EXCEL) в LibreOfficeCalc.
На MS Excel попробую на днях, отпишусь.
 
Цитата
S_Kh написал:
не срабатывает ваш макрос
- наверное и не в Винде?
Потому что CreateObject("Scripting.FileSystemObject") - это от MS
Хотя я не в курсе что там с Либре...
 
Привет!
Выше в #12 было написано, что операционка Linux Mint и LibreOffice, поэтому нужен код на сыром VBA.
Приложил вариант.
Распаковать в одну папку.
Тестировал в Windows.
 
ZVI, добрый день.
Спасибо за помощь.
Протестировал ваш файл в mint на libre.
При нажатии на read, файл находит, вставляет данные в ячейку A.
При нажатии на write, выбрасывает ошибку "load data before saving"
Завтра попробую на windows msoffice.
Отпишусь
 
Цитата
S_Kh написал:
выбрасывает ошибку "load data before saving"
Сейчас подправлю для LO
Изменено: ZVI - 30.08.2024 09:33:22
 
ZVI, данные есть. Прикрепляю скрин
 
ZVI,
и подскажите, что изменить в макросе, чтобы символ ' не удалялся/изменялся, а остался.
В конце каждой строки должен быть '
Сейчас в столбце A листа Sheet2 в конце каждой строки отсутствует данный символ.
 
Подправил код и для LibreCalc
По поводу апострофов в конце каждой строки - при сохранении (кнопка Write) они добавляются автоматически.
 
ZVI, спасибо.
Попробую потестировать ваш файл сегодня вечером на libre в mint, завтра на msoffise в винде.
Отпишусь.
Хорошего дня!
 
ZVI, добрый день.
Тестирую на MSOffice на винде. Срабатывает макрос, высвечивает сообщение New file written Ok.
Но файл остаётся без изменений, название только изменяется.
Во вложении полученный файл.
 
Цитата
S_Kh написал:
Тестирую на MSOffice на винде.
- протестируйте мой макрос. Результат смотреть в самом файле, на листе ничего не будет.
 
S_Kh, макрос от ZVI при нажатии кнопки Write создаёт новый файл с именем "(New)PRELOAD PLAN SPIVA STAR 017ICOS_RUNVS EDI 22 .edi". Он не редактирует старый файл
Изменено: New - 31.08.2024 16:34:48
Страницы: 1 2 След.
Читают тему
Наверх