Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 11:14   #11
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

1. Скачайте пример
2. Распакуйте в любую папку
3. Откройте только один файл с названием "Файл, куда нужно вставить данные (макрос).xls"
4. в открывшемся файле нажмите кнопку, расположенную на листе
5. в открывшейся окне мышкой укажите на файл CSV и нажмите кнопку Открыть
6. Данные из файла CSV будут скопированы на лист с кнопкой.

Вам это нужно было или что-то другое?
Вложения
Тип файла: rar Temp2.rar (9.9 Кб, 30 просмотров)
Pavel55 вне форума Ответить с цитированием
Старый 16.02.2010, 11:47   #12
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Pavel55
Макрос великолепно заработал =)

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

алгоритм моих действий сейчас: сохранить из браузера - открыть файл 1 - макрос -копировать - открыть файл 2 -вставить - сохранить- закрыть файл2- закрыть файл1
желаемый алгоритм: сохранить из браузера - открыть файл 1 - макрос - закрыть файл1
FormAlDeGid вне форума Ответить с цитированием
Старый 16.02.2010, 12:06   #13
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Макрос и раньше работал. Я лишь поместил его в отдельный файл и вывел кнопку на лист для его запуска

Вы знаете. На форумах обычно не пишут полностью готовое решение, состоящее из 10 операций, т.к. это никому не интересно.
На форумах обычно помогают человеку разобраться с какой-то одной проблемой. А дальше человек сам разбирается. Вы же, я чувствую, хотите чтобы мы за вас написали от начала и до конца. Я вам показал, как можно переносить данные из CSV файла в свою книгу. Вы же теперь хотите, чтобы я вник во все процессы вашей работы. Давайте разобьём ваше задание на этапы.
1. Вы открываете какой-то файл. Вам подсказать код открытия файла?
2. Вы форматируете файл - как я понял у вас уже есть какой-то макрос для этого
3. вам нужно скопировать данные из CSV в вашу книгу - я вам уже показал, как это делается
4. Закрываете ваш файл - вам подсказать код закрытия книги?

И так. От вас один конкретный вопрос, от нас один ответ.

P.S. А то ваш вопрос выглядит приблизительно так "я менеджерам по закупкам, напишите мне макрос, который будет сам рассчитывать прогнозы продаж, сам размещать заказы у поставщиков, сам отслеживать сроки оплаты, сам приходовать товар в базе 1С и сам рассчитывать продажные цены для отдела продаж" - так не делается!

Последний раз редактировалось Pavel55; 16.02.2010 в 12:08.
Pavel55 вне форума Ответить с цитированием
Старый 16.02.2010, 12:14   #14
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

FormAlDeGid, в чем проблема. Pavel55 вам все уже разжевал.
Я смотрел его код. Просто надо немного подумать и понять, что достаточно вставить процедуру форматирования перед копированием данных. Я каждый день делаю тоже самое, что и вы. Вот мой код. Отредактируйте как вам надо.
Код:
Sub Upgrading()
Application.ScreenUpdating = False

    Dim myName As String, thisBookName As String
    thisBookName = ThisWorkbook.Name
        With Application.FileDialog(msoFileDialogFilePicker)
            .Title = "Выберите фйал"
            .Show
                If .SelectedItems.Count = 0 Then Exit Sub
            myName = .SelectedItems(1)
        End With
    Workbooks.Open Filename:=myName

'Редактирование ресурсного файла
    Workbooks(Dir(myName)).Activate
    'здесь вставите Ваш код форматирования
    
'Копирование данных в базу
    Range(Cells(2, 1), ActiveCell.SpecialCells(xlLastCell)).Copy 'копируем начиная c A2 до последней заполненной ячейки
    
    Windows(thisBookName).Activate
    Sheets("Лист куда надо вставить новые данные").Select: Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A").Offset(1, 0).Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
                Application.CutCopyMode = False

    Application.DisplayAlerts = False
    Workbooks(Dir(myName)).Close

    Application.ScreenUpdating = True
    
MsgBox "Выполнено!"
End Sub
Да, кстати, я и файл с инетрнета качаю и распаковываю тоже макросом. Но это отдельный разговор.

Последний раз редактировалось Maxx; 16.02.2010 в 12:17.
Maxx вне форума Ответить с цитированием
Старый 16.02.2010, 12:27   #15
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Простите если сильно напрягаю.
Единственное что я спрашивал изначально как впихнуть записи в закрытую книгу.
Очень ценю Ваше внимание ко мне, а разъяснения даю чтобы Вам было более понятно в какое место я это пытаюсь впырить.
FormAlDeGid вне форума Ответить с цитированием
Старый 16.02.2010, 13:03   #16
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Ну тогда в посте №2 вам ответили на ваш вопрос, а в посте №11 дали пример-подсказку на ваш вопрос из Поста №3, как автоматизировать процесс копирования.
Maxx вне форума Ответить с цитированием
Старый 16.02.2010, 13:24   #17
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Maxx
тоесть невозможно вписать данные в закрытую книгу?

Pavel55
Ваш код прекрасно работает, и свою часть кода с форматирование я туда впырил.
FormAlDeGid вне форума Ответить с цитированием
Старый 16.02.2010, 13:28   #18
Eresiarh
Пользователь
 
Регистрация: 15.01.2010
Сообщений: 31
По умолчанию

FormAlDeGid, быстро открытая и тут же закрытая книга = закрытая книга.
Eresiarh вне форума Ответить с цитированием
Старый 16.02.2010, 14:42   #19
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

FormAlDeGid, да, в закрытую книгу (практически) нельзя записать данные. Но программным способом можно открыть, записать данные и закрыть книгу, что для человеческого глаза не будет это видно вообще. От этого и надо отталкиваться. Например, смотрите мой код, который берёт данные из CSV файла. Вы визуально вообще не видите, что этот файл открывается, с него копируются данные и он закрывается. Но на самом деле это так.

Итог: Чтобы считать данные из фала или записать данные в файл - его необходимо открыть (но этот процесс можно сделать невидимым для человека)
Pavel55 вне форума Ответить с цитированием
Старый 16.02.2010, 15:00   #20
FormAlDeGid
Пользователь
 
Аватар для FormAlDeGid
 
Регистрация: 21.10.2009
Сообщений: 58
По умолчанию

Поидее если смотреть с точки зрения изначальной задачи то в коде должно быть помимо форматирования исходника: открытие файла базы, запись в него отформатированных данных из файла-источника сохранение и закрытие? То есть особых проблем с кодом быть не должно? или я не прав?

Последний раз редактировалось FormAlDeGid; 16.02.2010 в 15:05. Причина: Дополнение текста
FormAlDeGid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных в файл Pti44ka Помощь студентам 5 10.12.2009 20:09
Создание книги и перенос данных листа в дргую несуществующюю книгу OgE®_M@G Microsoft Office Excel 23 13.11.2009 06:35
запись данных в файл Real Injenegr Помощь студентам 2 23.07.2009 03:21
Запись данных в файл на С# fractal Помощь студентам 15 17.02.2009 22:14
Выбор и перенос данных в другой лист, книгу. Avald Microsoft Office Excel 1 16.06.2008 10:44