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

Страницы: 1
Макросом собрать определенные диапазоны из таблиц на листах в одну общую,шапки одинаковые
 
Код
Sub Макрос2()
'
' Макрос2 Макрос
'
' Сочетание клавиш: Ctrl+ц
'
    Sheets("производство").Select
    Range("B2:I2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("ВЕСЬ ПЕРСОНАЛ").Select
    Range("B2").Select
    ActiveSheet.Paste
    
    Sheets("склад").Select
    Range("B2:I2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ВЕСЬ ПЕРСОНАЛ").Select
    Selection.End(xlDown).Select
    Range("B96").Select
    ActiveSheet.Paste
    Sheets("учебный центр").Select
    Range("B2:I2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ВЕСЬ ПЕРСОНАЛ").Select
    Selection.End(xlDown).Select
    Range("B99").Select
    ActiveSheet.Paste
    Sheets("АХО").Select
    Range("B2:I2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ВЕСЬ ПЕРСОНАЛ").Select
    Selection.End(xlDown).Select
    Selection.End(xlUp).Select
    Range("B100").Select
    ActiveSheet.Paste
    Sheets("бухгалтерия").Select
    Range("B2:I2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ВЕСЬ ПЕРСОНАЛ").Select
    Selection.End(xlDown).Select
    Range("B110").Select
    ActiveSheet.Paste


End Sub

Пример во вложении.
Про PQ вкурсе , но пока что и экселя нет даже 2013-го с PQ и девочке которой будет передаю дела проще будет нажать накнопку, чем объяснять ей PQ.

Записал макрос, чтоб собрать определенные диапазоны из таблиц на листах в одну общую,шапки одинаковые.
Но он похоже "одноразовый", тк при вставке выбирается конкретная ячейка.

А как указать , чтобы выбиралась при вставке пустая ячейка , следующая после последней строки предыдущей встваки.
Изменено: OlegMTS - 30.06.2020 13:55:15
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
предположу, что это не так
Да, как-то я , наверно,в кодировании трудно улавливаю связь между тем что на экране и что к этому привело точно. Тороплюсь с выводом о том, в чем именно ошибка.А надо смотреть глубже,пошагово как код срабатывает.

Цитата
Вот такой код должен вроде делать то, что нужно
да,спасибо. этот вариант идеально собирает и прописывает названия и дату из D1

Хотя и больше 5 лет уже с Эксель, но всё равно вижу, как это решение получается какое-то волшебное)
Хоть бы чаша моего ожидания выучить в совершенстве VBA переполнилась с этой каплей!!
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Цитата
PooHkrd написал:
А принципиально макросом?
Да,очень желательно. Хотя главное конечно,сокращение времени в дальнейшем. Спасибо.
Вчера ,точнее к утру выкрутился таким образом , что поскольку названия файлов -это года ,которые есть в собираемых таблицах, использовал формулы ГОД() и потом сцепить() .

Ругать можно)) записывал как видно рекодером и то не очень корректно, успокаивал себя тем, что главное работает)
Код
Sub simpleXlsMerger2()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
 
'указать путь к папке с файлами
Set dirObj = mergeObj.Getfolder("C:\Users\HP\Downloads\сборка\")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
 
'вместо "A2" указать адрес ячейки в каждом файле, с которой начинать сборку
'например, "B3:IV" объединит все данные из файлов, начиная с ячейки B3
'Если колонок больше, чем IV, поменять соответственно
'В "A65536" вместо "A" указать тот же столбец, что и в адресе первой ячейки
Range("A1:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
 
'Здесь столбец не менять
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
    Range("A1").Select
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Range("A5").Select
    Selection.End(xlToRight).Select
    Range("E5").Select
    ActiveCell.FormulaR1C1 = "=CONCATENATE(""31.12."",YEAR(RC[-1]))"
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=YEAR(RC[-2])"
    ActiveCell.SpecialCells(xlLastCell).Select
    Selection.End(xlToLeft).Select
    Range("F538").Select
    Range(Selection, Selection.End(xlUp)).Select
    Range("E5:F538").Select
    Range("F538").Activate
    Selection.FillDown
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    Range("A2:C2").Select
    Application.CutCopyMode = False
    

    Range("E4").Select
    ActiveCell.FormulaR1C1 = "Реестр договоров по состоянию на"
    Range("F4").Select
    ActiveCell.FormulaR1C1 = "Год"
    Rows("4:4").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Cells.Select
    Selection.ColumnWidth = 11.57
    Rows("3:3").Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Selection.Delete Shift:=xlUp
    Cells.Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$I$538").AutoFilter Field:=4, Criteria1:="="
    ActiveCell.SpecialCells(xlLastCell).Select
    Rows("538:538").Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Cells(1)).Select
    Rows("53:538").Select
    Range("A538").Activate
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    ActiveSheet.Range("$A$1:$I$415").AutoFilter Field:=4
    ActiveWorkbook.Save
End Sub
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Изменено: Дмитрий(The_Prist) Щербаков  - 25 Фев 2020 18:05:41
Вот , может, непрофессионально выбрал E и F для вставки как - 250.

Сейчас почти всё идеально.
Только как вернуть , чтобы из каждого файла в папке сами таблицы копировались и вставлялись??
Сейчас только из первого файла и последнего файла в папке вставляются.
Код
Sub simpleXlsMerger3()

Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Dim rr As Range, llastr&
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
   
  
Set dirObj = mergeObj.Getfolder("C:\Users\HP\Downloads\сборка\")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
   
'вместо "A2" указывается адрес ячейки в каждом файле, с которой начинать сборку
'например, "B3:IV" объединит все данные из файлов, начиная с ячейки B3
Set rr = Range("A1:IV" & Cells(Rows.Count, 1).End(xlUp).Row)
   
'Здесь столбец не менять
With ThisWorkbook.Worksheets(1)
    llastr = .Cells(.Rows.Count, 1).End(xlUp)
    rr.Copy .Range("A" & llastr + 1)
    'имя файла
    .Cells(llastr + 4, rr.Columns.Count - 250).Resize(rr.Rows.Count).Value = Left(everyObj.Name, 4)
    'значение из ячейки D1(правда, непонятно из какого листа - поэтому из 1)
    .Cells(llastr + 4, rr.Columns.Count - 251).Resize(rr.Rows.Count).Value = bookList.Sheets(1).Range("D1").Value
End With
  
bookList.Close
Next
End Sub
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Цитата
Дмитрий(The_Prist) Щербаков написал: 1. А где смотрите? Должно записываться в последние столбцы. Т.е. судя по коду имя файла должно быть в столбце AW, а данные из D1 - в AX.
upd: см.следующее сообщение

Да, Дмитрий, нашлись) даже не знаю как еще называть такие "грустные приколы"..когда сам же написал добавлять в крайний правый, хотя имел ввиду в следующий столбец после последнего вставленного, то есть в E и в F..
Почти в крайние правые и вставились, только в IW и IX. Из D1 тоже копируются (в IX)
Спасибо.

Я теперь пытаюсь сделать чтобы в E и в F вставлялись.  И чтобы имя файла копировалось не "2010.xlsx", а без .xlsx
Изменено: OlegMTS - 26.02.2020 01:57:49
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Цитата
OlegMTS написал:
А в новую таблицу не вставляются
Вижу, что
= everyObj.Name  
= bookList.Sheets(1).Range("D1").value

вот тут должно записываться в ячейки построчно, и Paste получается,конечно, не нужен, но только пустота,ничего не записывается
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Да, в примере на форуме тоже этой команды вижу нет) теперь понятно.
Только результат по этому коду тот же пока что, только собирает таблицы в одну новую. А даты и годы не проставляются построчно((

Хотя видно, что файлы как будто быстро открываются-закрываются, то есть макрос файлы перебирает в папке,чтобы дату получается взять из d1.
А в новую таблицу не вставляются
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Да, данные-то собираются в новую общую таблицу. А вот с добавлением названий файлов и даты так и не получается.
Сейчас видно, что файлы макрос перебирает, чтобы дату взять из D1 (всегда с первого листа,и единственного).
Теперь нужно добавить же Paste, чтобы вставлялись даты и название файлов (годы) соответственно по строкам?
Макросом собрать таблицы из файлов в одну и добавить названия файлов этих в столбец
 
Доброго дня, друзья. Помогите, пожалуйста, со сборкой файла.

Требуется макросом собрать таблицы из файлов в одну таблицу в одном новом файле и добавить в эту новую таблицу названия файлов, из которых собрали данные  в столбец,(например,в крайний справа), в каждую строку соответственно - чтобы понимать,какая строка из файла с каким названием.
И второе , добавить в еще один столбец (например,также в крайний справа) , в каждую строку - дату соответствующего реестр (она в каждом файле в ячейке D1)

Примеры файлов для сборки во вложении. Размеры таблиц в них всегда небольшие.

Код есть основной но дальше не получается..
Код
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
 

Set dirObj = mergeObj.Getfolder("C:\Users\HP\Downloads\сборка\")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
 
'вместо "A2" указывается адрес ячейки в каждом файле, с которой начинать сборку
'например, "B3:IV" объединит все данные из файлов, начиная с ячейки B3
Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
 
'Здесь столбец не менять
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False

everyObj.Name.Copy
Range("A65536").End(xlUp).Offset(1, -5).PasteSpecial

bookList.Close
Next
End Sub
 
Макросом скопировать Только! таблицу Из Эксель в Ворд вставив во вторую строку,не удаляя остальной текст в документе
 
Доброго времени суток.
Форумчане, помогите сделать макрос, пожалуйста.

Нужно Макросом скопировать Только! таблицу Из Эксель в Ворд вставив во вторую строку,не удаляя остальной текст в документе.
Поскольку нужно будет множить документы периодически, слияние и прочее не очень подходит (особенно , потому что таблица не переносится на следующую страницу в Ворд). Удобнее будет назначить кнопку на макрос и потом щелкать ее для создания документов.

Похожие макросы на форуме лишь похожие. Я пробовал редактировать, но возникает ошибка. Например, не нашел или не вижу в кодах команды для выбора второй строки в документе для вставки скопированной таблицы [b6:c51].

<
Код
Sub main()
    Set wa = CreateObject("Word.Application")
    wa.Visible = True: Set wd = wa.Documents.Open "C:\Users\HP\Downloads\РАСЧЕТ.docx"
    [b6:c51].Copy
    wd.Range.PasteExcelTable False, False, False
    Application.CutCopyMode = False
End Sub
>
Изменено: OlegMTS - 21.01.2020 13:10:32
Как определить цвет диаграммы?
 
Добрые люди, приветствую!
Кто может подсказать, как определить цвет диаграммы? При выборе ряда в коллекции цветов на ленте Excel используемый цвет не отображается, так как далек от стандартного.
Ситуация:
Есть график от руководства, построенный из шаблонов (Конструктор-Стили диаграмм), нужно в таком же стиле построит и другие графики.
Проблема - при добавлении еще одной диграммы другого типа, либо даже дополнительного ряда форматирование "слетает".
Копирование формата сводной таблицы или PivotCache
 
Вобщем если что  интерейсный полтергейст хорошо бы понять...
Пока решение по вопросу топика какое-никакое есть, копирую все сводные , кроме последней, потом последнюю отдельно копирую, и так тогда получается.

копирую как где-то на форумах и пишут -
спецвставка:
1) ширины столбов
2) значения и форматы
3) формулы
4) форматы (сначала всех сводных кроме последней, потом последнюю)
Копирование формата сводной таблицы или PivotCache
 
пробую....но стало еще интереснее - формат сводных копируется , копирую таблцы сразу пачкой, Но! из последней сводной формат не копируется(
как такое может быть
Копирование формата сводной таблицы или PivotCache
 
Есть отчет в виде сводной. Нужно чтобы Детали (источник) получатель не мог увидеть (ни двойным щелчком по сводной, вобще никак)
Возникли вопрос - можно ли скопировать формат сводных (сразу нескольких, без макроса)?

или может проще если это возможно удалять файл PivotCache (не могу понять где его найти). Думаю, что без PivotCache данные сводной можно будет видеть,если не обновлять.
лучше конечно первый вариант. Второй может и быстрее,если он существует, но пользователь вдруг случайно нажмет Обновить и таблица без PivotCache
обрушится.
Возможна ли коректная конвертация из pdf в xls, если pdf содержит русский текст?
 
{quote}{login=СердЖиГ}{date=19.03.2010 09:32}{thema=}{post}Пробовал использовать ABBYY PDF Transformer. Конвертирует нормально в Excel, в том числе и русский{/post}{/quote}  
 
А кто может поделиться ссылкой? есь проблемы с установкой софта, Лучше на он-лайн сервис, но которому можно доверять, потому что спрашивают, чтобы прислали по электронной почте документ. Спасибо.
Копировать результаты фильтра
 
{quote}{login=гость}{date=02.11.2011 01:11}{thema=}{post}Как вариант:  
Чтобы вставить значения именно в те ячейки, из которых они скопированы (но в другой книге,), Вам надо как раз наоборот стереть все ячейки, в которых есть ненужная инф., а затем скопировать ВЕСЬ блок ячеек, а когда будете вставлять, то воспользоваться специальной вставкой ("пропускать пустые). Тогда Вы получите нужный результат{/post}{/quote}  
 
Да, я также объяснил,значения в других строках также нужны, там же другие регионы, за которые отвечают другие люди, можно как вариант удалить только значения по региону Центр,добавить временно столбец, а потом соединить значения  
Но кажется должна быть какая-то функция, либо настройки, чтобы вставлять только в те ячейки, которые отобраны фильтром
Копировать результаты фильтра
 
Всем привет. Поиском найти не смог. А вопрос то вроде обычный.....  
Как скопироват результаты фильтра, например, как на фото, на другой лист, в котором стоит такой же фильтр по региону Центр. Копируются только те ячейки - результаты фильтра, а вот вставляются эти ячейки на другой лист подряд в каждую, а не в те что оотобраны фильтром.  
В данном примере , скажем, хочется обновить столбик с ФИО в другом файле по региону центр. Есть и другие способы, но копировать было бы удобнее и быстрее, если это возможно.  
Спасибо.  
 
Страницы: 1
Наверх