Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка данных из текстового файла в таблицы Excel, написать макрос на vba 
:(
    Опции темы
SoleR
Дата 7.2.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Уважаемые господа профи, помогите с макросом, а то сам я, походу, не осилю - c VBA плохо знаком, только начинаю :(

Задачка следующая: 
из SAP R/3 выгружаются данные и метаданные какой-либо таблицы в текстовый файл, дальше посредством загрузки из созданного текстовика всего, что было выгружено, при помощи макроса сформировать такую же таблицу в Excel. 

Буду очень признателен за помощь.   
PM MAIL   Вверх
Akina
Дата 7.2.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Сервис - макрос - начать запись.
Выполнить импорт вручную.
Остановить запись и изучить полученный код.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FINANSIST
  Дата 10.2.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



 smile Такой монстрилла как SAP R/3  не выгружает данные в формате Excel???
Да ну, быть не может smile !( smile )


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
SoleR
Дата 24.2.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Цитата(FINANSIST @ 10.2.2009,  21:38)
smile Такой монстрилла как SAP R/3  не выгружает данные в формате Excel???
Да ну, быть не может

Выгружать то он выгружает, но делает это, насколько я знаю, только напрямую. В моем же задании требуется, чтобы в качестве "посредника" выступал текстовик. Вот в чем проблема...
Неужели никто ниче посоветовать не может, кроме того, что написал Akina? :(

Это сообщение отредактировал(а) SoleR - 24.2.2009, 12:12
PM MAIL   Вверх
ТоляМБА
Дата 24.2.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: нет
Всего: 252



SoleR, у тебя проблемы с загрузкой текстовика вручную в эксель или ты не знаешь как записать макрос или как привязать макрос к кнопке?
Тебе действительно совет нужен или чтобы за тебя всё сделали? Если второе то так и говори, если первое, то читай выше.
PM   Вверх
FINANSIST
Дата 24.2.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



Чтение\запись хоть из .txt  хоть из .ini через VBA - не проблема, могу скинуть код.
Вот только это будут именно данные, - без форматирования, сетки таблиц и прочего.


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
RockClimber
Дата 25.2.2009, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Цитата(SoleR @  24.2.2009,  12:10 Найти цитируемый пост)
Неужели никто ниче посоветовать не может, кроме того, что написал Akina? :(

А чего он такого написал? Начинаешь запись макроса, жмешь Данные-Импорт внешних данных-Импортировать данные, находишь текстовый файл. В диалоговом окне выбираешь нужные пункты, после завершения импорта останавливаешь запись и всего за минуту получаешь что-то типа такого:
Код

Sub Макрос2()
'
    Application.CutCopyMode = False
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\_work\18021532.txt", _
        Destination:=Range("A1"))
        .Name = "18021532"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 866
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Умелыми манипуляциями мышью и кнопкой F1 узнаёшь, что это за параметры и какие значения они могут принимать.


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
mihanik
Дата 25.2.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



SoleR, а собственные идеи показать?

Перенести тему в центр поддержки?



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
temr
Дата 2.3.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 30.3.2006

Репутация: нет
Всего: нет



если таблиц не много то просто переменуй *.txt   в *.xls 
ну а если их много и надо автоматизировать тогда поищи на форуме- было несколько тем как открывать текстовые файлы средствами ВБА
PM MAIL   Вверх
SoleR
Дата 3.3.2009, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



ТоляМБА, если бы хотел, чтоб кто-то за меня все сделал - заказал бы всю работу и не парился. Хотцца ж самому чему-нить научится smile

FINANSIST, скинь, если не трудно.

RockClimber, спасибо, но это ж только для импорта данных, а как же быть с сеткой таблицы, форматированием и т.д.? :(

mihanik да-да, если можно  smile 

temr спасибо

Это сообщение отредактировал(а) SoleR - 3.3.2009, 13:05
PM MAIL   Вверх
RockClimber
Дата 3.3.2009, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Цитата(SoleR @  3.3.2009,  13:04 Найти цитируемый пост)
RockClimber, спасибо, но это ж только для импорта данных, а как же быть с сеткой таблицы, форматированием и т.д.? :(

Точно также - режимом записи макроса ("Сервис-Макрос-Начать запись", там же "Остановить запись"). Он прост как апельсин, а возможности дает огромные. Любое действие, выполняемое с клавиатуры/мыши (кроме Undo, разве что) программируется макросом.

Добавлено через 36 секунд
Собственно, 95% того, что я знаю, я узнал именно так.


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
SoleR
Дата 3.3.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Цитата(RockClimber @ 3.3.2009,  13:54)
Точно также - режимом записи макроса ...

хм... спасибо за совет, буду пробовать 
PM MAIL   Вверх
temr
Дата 10.3.2009, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 30.3.2006

Репутация: нет
Всего: нет



Вот привемер открытия тестового файла 
Код

  
  Sub opentext()
    dim prt_string as string
    Dim path_to_file as string
    Dim  prt_num_str  as long
    Dim prt_row as long
    
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Application.ScreenUpdating = False
    Dim fs, f, ts, s


    path_to_file ="c:\test.txt"
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(path_to_file)
    
   Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
   Do While ts.AtEndOfStream <> True
    prt_string = ts.readline

   prt_num_str = prt_num_str + 1
   Loop
 
 prt_row = 1
Application.StatusBar = "IMPORTING PRT FILE.."
ReDim la(prt_num_str)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
   Do While ts.AtEndOfStream <> True
    la(prt_row) = ts.readline ' eto budet tvoi testovii file no uzhe zapisannii v massiv la()
   

   prt_row = prt_row + 1
   Loop


Application.StatusBar = ""
Application.ScreenUpdating = true

End Sub



Далее ты можешь делать с массивом la() что хочешь.
Код интересен тем что может открывать большие текстовые файлы ( самый большой открытый мною 300 мегабайт)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0890 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.