Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Копирование данных из одной книгии в другую
 
Цитата
написал:
Из соображения номер 2 скопируйте себе эту функцию в свой код. Ошибка говорит - нет такой функции в вашем коде
Всё гениальное просто. Спасибо! Извиняюсь за невнимательность, просто забыл 2ю часть кода. :oops:  
Всем Добра, миру мир! Иностранцам Писа!
Копирование данных из одной книгии в другую
 
Друзья, всем привет!
Решил воспользоваться выше написанным кодом, но... При выполнении кода вылетает ошибка (скрин во вложении), подскажите пожалуйста, в чём может быть проблема? Насколько я понял, проблема именно в выводе диалогового окна выбора файла, но это моя догадка.
MS Office 2016 Proffeccional Plus.
Код прилагаю:
Код
Sub CopyDataFromFile()
   Dim vData, sShName As String, sAddress As String, LastRow As Long, Wb As Workbook, Rng As Range, arrFiles As Variant
   Dim ActSht As Worksheet, SourceSht As Worksheet
   
   'запоминаем активный лист из файла с макросом
   Set ActSht = ActiveSheet
   'диалог выбора файла
   arrFiles = ShowFileDialog()
   'отключаем обновление экрана
   Application.ScreenUpdating = False
   'открываем файл
   Set Wb = Workbooks.Open(Filename:=arrFiles(1), UpdateLinks:=False, ReadOnly:=True)
   sShName = "TDSheet" 'имя листа из которого берём информацию
   Set SourceSht = Wb.Worksheets(sShName)
   
   With SourceSht
       LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row 'последняя заполненная строка в столбце А
   End With
   
   'столбец А - копируем/вставляем
   vData = SourceSht.Range("D7:D" & LastRow).Value 'от D7 до D... последняя заполненная строка
   ActSht.Range("D2").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные
       
   vData = SourceSht.Range("E7:E" & LastRow).Value 'от E7 до E... последняя заполненная строка
   ActSht.Range("E2").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные
       
   vData = SourceSht.Range("H7:H" & LastRow).Value 'от H7 до H... последняя заполненная строка
   ActSht.Range("F2").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные

   vData = SourceSht.Range("I7:I" & LastRow).Value 'от I7 до I... последняя заполненная строка
   ActSht.Range("G2").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные
  'закрываем файл
   Wb.Close False
   'Включаем обновление экрана
   Application.ScreenUpdating = True
   MsgBox "Данные из файла скопированы!", vbInformation, ""
End Sub
Заранее спасибо за ответы.
Изменено: dredd_ Frant - 21.09.2023 08:29:13
Всем Добра, миру мир! Иностранцам Писа!
Копирование данных из одной книгии в другую
 
Друзья, ещё раз хочу выразить свою безмерную благодарность New, за своевременную и огромную помощь в написании кода.
Код получился просто волшебным (для меня по крайней мере). Не могу им не поделиться, что-бы люди могли пользоваться.
Настолько просто и доступно, мне ещё не приходилось читать и работоть с кодом. В моём случае, копирование и вставка (из одной книги в другую) происходит в 62 столбцах, это занимает всего 35 секунд, объём данных, в каждом столбце по (129 000 с лишним) строк.
Код
Sub CopyDataFromFile()
   Dim vData, sShName As String, sAddress As String, LastRow As Long, Wb As Workbook, Rng As Range, arrFiles As Variant
   Dim ActSht As Worksheet, SourceSht As Worksheet
   
   'запоминаем активный лист из файла с макросом
   Set ActSht = ActiveSheet
   'диалог выбора файла
   arrFiles = ShowFileDialog()
   'отключаем обновление экрана
   Application.ScreenUpdating = False
   'открываем файл
   Set Wb = Workbooks.Open(Filename:=arrFiles(1), UpdateLinks:=False, ReadOnly:=True)
   sShName = "Отчет" 'имя листа из которого берём информацию
   Set SourceSht = Wb.Worksheets(sShName)
   
   With SourceSht
       LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'последняя заполненная строка в столбце А
   End With
   
   'столбец А - копируем/вставляем
   vData = SourceSht.Range("A1:A" & LastRow).Value 'от А1 до А... последняя заполненная строка
   ActSht.Range("A4").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные
       
   'столбец C - копируем/вставляем
   vData = SourceSht.Range("C1:C" & LastRow).Value 'от C1 до C... последняя заполненная строка
   ActSht.Range("C4").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные
       
   'столбец D - копируем/вставляем
   vData = SourceSht.Range("D1:D" & LastRow).Value 'от D1 до D... последняя заполненная строка
   ActSht.Range("D4").Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData 'Записываем данные

   'и далее
   
   'закрываем файл
   Wb.Close False
   'Включаем обновление экрана
   Application.ScreenUpdating = True
   MsgBox "Данные из файла скопированы!", vbInformation, ""
End Sub
Всем Добра, миру мир! Иностранцам Писа!
Копирование данных из одной книгии в другую
 
New, понял, спасибо!
Буду тестировать и дописывать  :)  там ещё множество столбцов, которые нужно копировать, а переносить в другие) Придётся код увеличить на количество этих столбцов. А так, всё огонь!
Всем Добра, миру мир! Иностранцам Писа!
Копирование данных из одной книгии в другую
 
New, спасибо за шикарный код! Подскажите, как вставлять только значения? Без форматирования.
Спасибо!
Всем Добра, миру мир! Иностранцам Писа!
Копирование данных из одной книгии в другую
 
Уважаемые форумчане, Гуру VBA & Excel, доброго времени суток!
Прошу Вас помочь советом (если возможно конечно же), доработать имеющийся код:
Код
Sub copy()
    Dim sShName As String, sAddress As String, vData
    'отключаем обновление экрана
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="Выбрать нужный файл", ReadOnly:=True 'Как заменить эту строку,на то, чтобы выбирать нужный .xlsx файл для обработки?
    sAddress = "A1:A350" 'Как заменить статический диапазон выбранных ячеек в столбце А, на динамический диапазон (до последней ячейки со значением в столбце А)?
    'получаем значения
    vData = Sheets("Отчет").Range(sAddress).Value
    ActiveWorkbook.Close False
    'Записываем данные на активный лист книги, с которой запустили макрос
    If IsArray(vData) Then
        [A4].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
    Else
        [A4] = vData
    End If
    'Включаем обновление экрана
    Application.ScreenUpdating = True
End Sub

Код был ранее найден на просторах всемирной паутины и использовался, возможно автор данного кода будет читать моё сообщение на форуме (хочу выразить благодарность за этот код!)
Помогите пожалуйста доработать данный код, вопросы указал в комментариях 5й и 6й строки кода.
Нужен ли файл пример? На мой взгляд нет, но если будет необходим, обязательно сделаю.
Заранее спасибо за ваше внимание и советы.
Изменено: vikttur - 31.08.2021 23:37:09
Всем Добра, миру мир! Иностранцам Писа!
Ошибка выполнения запроса Power Qwery
 
surkenny, хороший вариант :) Обязательно порекомендую коллегам!
Всем Добра, миру мир! Иностранцам Писа!
Ошибка выполнения запроса Power Qwery
 
БМВ, Михаил, спасибо, завтра на работе попробую сделать!

Сделал, как вы указали, всё равно вылетает ошибка... Единственное изменение, при открытии файла вызывающего ошибку, не появляется окошечко с запросом на разрешение редактирования :(
Изменено: dredd_ Frant - 29.08.2021 10:09:29
Всем Добра, миру мир! Иностранцам Писа!
Ошибка выполнения запроса Power Qwery
 
Доброго времени суток!
Столкнулся с такой проблемой:
Есть 1 рабочий файл (.xlsx), с него сделан запрос через Power Qwery, в папку с файлами, в эту папку закидывают книги excel (предварительно выгруженные из какой-то учётной программы, есть подозрение, что из 1С (присылаются по почте от подрядчика)), при выполнении запроса, возникает ошибка и выполнение запроса прерывается.
Как удалось мне понять, ошибка сохраняется до того момента, пока не открыть один из файлов вызывающих ошибку и не разрешить его редактирование (через выплывающее окошечко в верхней части листа),сохранить и закрыть, ошибка пропадает (именно по этой книге) и так далее, на данном этапе файлов не много, но со временем объём будет больше, открывать каждую книгу, разрешать редактирование, сохранять и закрывать, не эффективно с точки зрения автоматизации процесса.
Может можно как-то решить этот вопрос через сам запрос в PQ или через VBA?

В интернете не нашел ответа к сожалению.

Заранее спасибо за ответ!
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
buchlotnik, спасибо конечно за предложение, но вынужден отказаться ;)
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
MCH,  :) Спасибо!
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
buchlotnik, спасибо за ваш ответ, но:
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
БМВ, понял, спасибо!
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
БМВ, в очередной раз, спасибо! :)

Возможно ли сделать диапазон не ограниченный A31?
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
Цитата
Jack Famous написал:      Почему 3, если 2?          
01.01.2021
02.01.2021
04.01.2021
по моему это 3, нет?
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
Михаил, спасибо! То, что надо)
Как вы меня поняли, сам не понимаю :D
Изменено: vikttur - 04.08.2021 23:51:07
Всем Добра, миру мир! Иностранцам Писа!
Поиск уникальных дней в диапазоне
 
Всем привет!
Друзья, подскажите пожалуйста, как написать формулу, что бы считала уникальные числа из динамического диапазона дат, пробовал через формулу: =СУММПРОИЗВ(1/СЧЁТЕСЛИ(ДИАПАЗОН:ДИАПАЗОН)), считается всё конечно, но не привязать к условию месяца. В файле примере, ячейки выделены желтым цветом, в которые должны заполняться значения формулой. Если есть у кого-то готовое решение, прошу поделиться опытом и знаниями, заранее спасибо!

P.S.: Поиск по темам результата увы не дал, кроме той формулы, что написаны выше в моём сообщении, но с ней не поработать.
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
БМВ,

Михаил, добрый день!
Спасибо, пошёл переводить)))
Изменено: dredd812 Frant - 17.11.2019 16:23:53
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Уважаемые знатоки, снова прошу помочь с формулой... Но именно с формулой, потому как, из файла убрано много данных, которые просто утяжеляют его да и тут они не нужны, пример во вложении.
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Простите меня, Бога ради, лист1 и есть окончательный и информативный, информация должна обновляться без помощи человека, она отображается на экране, у которого нет ни клавиатуры, не мышки... на листе2, всё работает без макроса, там умная таблица с внешними данными, она обновляется 1 раз в 3 минуты, я поэтому и хочу сделать так, что бы макрос запускался на листе1, при изменениях на листе2.
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Юрий М, У меня почему то меняется размер шрифта. По поводу листа2, наверное я не правильно выражаюсь, дело в том, что, в умной таблице внешнее подключение к БД, обновление данного подключения настроено на каждые 3 минуты, если есть изменение в статусе заказа, соответственно формула и меняет этот статус на нужный мне, но если не переходить с листа на лист, макрос не увидит данное изменение и не поменяет инфо на 1м листе.
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Цитата
Юрий М написал:
Не понял смысла: ведь, чтобы посмотреть результат,
Дело в том, что, на листе2, умная таблица, подключённая к бд, статусы меняются формулой а не руками, соответственно, на лист2 заглядывать нет необходимости, атм очень много данных, которые не нужны, ну а что-бы отработал макрос, приходится щелкать листами :-)

Цитата
Юрий М написал:
А условное форматирование просто сделайте сразу на Лист1 - зачем его каждый раз копировать?.
Да, я сразу его сделал на Лист1, но макрос при обновлении данных, сбивает диапазон условного форматирования, если у меня стои условное форматирование на диапазон А1:В50, то после отработки макроса, оно остаётся только на диапазоне, где есть номер заказа и его статус, ниже всё удаляется... А потом, если заказов становится больше, то УФ уже не срабатывает, т.к. макрос там всё почистил :-)
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Юрий М, Добрый день!
Не подскажите, как дописать код, что бы не щёлкать лист туда-сюда, а что бы макрос работал при обновлении умной таблицы на 2м листе и что бы на первом листе не менялся формат ячеек и условное форматирование оставалось, переключил пару раз листы, шрифт сбрасывается, условное форматирование удаляется :-(
В остальном, код замечательно работает!
Заранее спасибо!
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Наиогромнейшее спасибо!!! Завтра буду пробовать применить на деле :-) :idea:
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Юрий М, Да, да :)
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
buchlotnik, грешен, прошу прощения... Не вводил формулу массива...Признаю. Варианты, изумительные! Надо с ними ночь переспать, а завтра, нет, во вторник на свежую голову понять и осознать. Примного благодарен!

К сожалению, столкнулся ещё с одной проблемой, в столбце со статусом, написана формула, которая собственно и выставляет статусы заказам, ваша формула принимает формулы за значения...  на рисунке 1 видно немер заказа, хотя (на рисунке 2) строка в столбце статус пустая...
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Цитата
Юрий М написал:
Если поменяется количество строк - не страшно: макрос сам найдёт последнюю строку. Если значения будут в других столбцах - поменять не сложно.
Юрий, добрый день! Вы не подскажите, потстрокам кода, какая за что отвечает, как раз так и получилось, что количество столбцов поменялось, да и отчет не с первого столбца... А как макрос на это переориентировать не пойму...

Спасибо!
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
buchlotnik, Шикарный вариант примера, скачал, да, всё работает, но я так понял, это и есть запрос через PQ?! Попробовал вставить формулу в А2, ни чего не сработало :(
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Юрий М, Юра, я подозреваю, что для вас это, как два пальца об асфальт... Но мне то как это сделать?)))) Я обычно, если имею файл с рабочим макросом, ставлю на него пароль, что бы даже самому его не знать, дабы не "поломать" к Кузькиной маме...), бывают написаны комментарии в макросе, зелеными буковками, вот там я ещё что-то могу пошурудить, но только сохранив в отдельный файл.
Изменено: dredd812 Frant - 14.09.2019 23:36:20
Всем Добра, миру мир! Иностранцам Писа!
Поиск и подстановка номера заказа по его статусу формулой
 
Framed, Уважаемый, вы уж простите меня Бога ради, но не понимаю я в VBA, можно формулку, а? Если таковой нет, то и искать не буду... Вот, то что макрос делает эту задачу, я уже знаю, Уважаемый Юрий М, мне это показал, я конечно, как "умный" залез в VBA посмотрел код, ни чего не понял, закрыл его и просто сижу умиляюсь, как это всё работает, но увы...не понимаю...(((

Мыл посуду дома...И меня осенило, я понял, что такое PQ, но ни когда им не пользовался!)))
Изменено: dredd812 - 14.09.2019 23:30:00
Всем Добра, миру мир! Иностранцам Писа!
Страницы: 1 2 3 След.
Наверх