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

Страницы: 1
Сумма одноименных ячеек мз одноименных листов идентичных книг в сводную книгу (несвязанные диапазоны), Собрать числовые данные из одинаковых книг в одну общую
 
Здоровья всем!
Прошу помощи в решении следующей задачи:
В филиалах (до 10 филиалов) заполняются отчетные формы (книги Excel)  и высылаются в центр. Данные в ячейках числовые, м.б. "пусто". Эти отчеты помещаются в отдельную папку, где находится файл "Общий". Необходимо в общем файле получить в каждой ячейке отчета сумму значений из филиальных отчетов.
Структура всех файлов одинаковая (количество и имена листов, наименование столбцов и строк отчетных таблиц - отличаются только числовые данные).
Нашел где-то макрос, который производит вышеуказанные действия для одного листа одного непрерывного диапазона. В моем случае в каждой книге примерно по 10 листов. На каждом листе 2-3 несмежных диапазона данных, диапазоны на разных листах разные.
В файлах примера диапазоны данных выделены цветом (для одного листа).
Я переделал макрос под свои диапазоны для одного листа: на каждый из 2-х диапазонов - свой макрос. общим макросом запускаю последовательно два своих макроса. Все работает.
Вопрос: как можно обойтись одним макросом для конкретного листа? Для других листов необходимо писать отдельные макросы? Или можно использовать универсальный макрос, который берет диапазоны для каждого листа из служебной таблицы?
Вот мои макросы:

Скрытый текст
Файлы прикладываю.
Изменено: Yuri KUB - 20.04.2020 16:48:57 (Не приложился файл)
Заполнение данными сразу нескольких бланков VBA, Есть задача заполнить несколько шаблонов (до 12-ти) одинаковыми данными
 
 Всем здоровья и благополучия!
Когда-то где-то нашел макрос , который заполняет шаблон документа данными из выбранной строки (где активная ячейка) в таблице (Лист "Реестр"). В шаблоне (Лист "Печать бланка") имеются именованные области (в примере - 10 областей), в которые циклом вставляются данные. Код работает:

Код
Option Explicit
Private Sub CommandButton1_Click()
Dim nomer_stroki As Long, massiv() As Variant, i As Integer
nomer_stroki = ActiveCell.Row
massiv = Range(Cells(nomer_stroki, 1), Cells(nomer_stroki, 10))
With sh1
    For i = 1 To 10
        .Range("yacheyka_" & i) = massiv(1, i)
    Next
End With
End Sub

Есть задача заполнить несколько шаблонов (до 12-ти) одинаковыми данными (причем не в каждом шаблоне используются все 10 полей данных). Попробовал (пока на три шаблона)организовать второй цикл (по листам) - ругается на второй Next:

Код
Option Explicit
Private Sub CommandButton1_Click()
Dim nomer_stroki As Long, massiv() As Variant, i As Integer, j As Integer
nomer_stroki = ActiveCell.Row
massiv = Range(Cells(nomer_stroki, 1), Cells(nomer_stroki, 10))

For j = 1 To 3
With Sheets("sh" & j)
    For i = 1 To 10
        .Range("yacheyka_" & i) = massiv(1, i)
    Next
'Next
End With
End Sub

Не владею VBA. Писал по логике.
Прошу исправить/подсказать/помочь.
Заранее благодарен!
Изменено: Yuri KUB - 29.09.2019 19:25:19
Преобразовать таблицу к виду "шахматка" (или наоборот?), Преобразовать таблицу для отчета
 
Здравствуйте всем!
Второй день пытаюсь решить эту задачу. Пробовал ВПР, ГПР, ИНДЕКС+ПОИСКПОЗ - что-то не идет. Пользовался поиском, не нашёл, Честно говоря, даже сформулировать вопрос не могу. Возможно термин "шахматка" использую не правильно.
В файле - как есть и как надо.
Заполнение именованных ячеек в цикле, Нужно одновременно заполнить много (16) шаблонов данными из выбранной строки таблицы
 
Здравствуйте!
Прошу помочь в решении след. задачи:
Имеется таблица ("ОБРАБОТКА") с данными приёмов пациентов (15 полей). Необходимо заполнить этими данными (по одному пациенту) сразу 16 шаблонов - протоколы, справки и т.п. (в приложенном примере - 2 шаблона: ОСМОТР_Т и ОСМОТР_С. Я вставил временный лист "NamesTmp", на котором создал 15*16 именованных ячеек. Планировал потом "рапихать" эти ячейки по нужным местам в шаблонах.
Если решать эту задачу "в лоб", то, наверное, нужно для каждой необходимой ячейки в шаблонах прописывать что-то вроде этого:
Код
Лист1.Cells(4, 3) = shToProcess.Cells(i, 1).Cells(i, 2)

здесь Лист1 - лист шаблона, shToProcess - лист с таблицей, i - номер строки с данными.
Таких строчек получится до 240. При любом изменении структуры шаблонов эти строки должны быть скорректированы.
Я попробовал решить эту задачу циклом по именованным ячейкам:
Код
Private Sub toForms()

If i < 4 Then i = GetI
For k = 1 To 16
    Range("Pol_" & k) = shToProcess.Cells(i, 1)
    Range("FIO_" & k) = shToProcess.Cells(i, 2)
    Range("Sex_" & k) = shToProcess.Cells(i, 3)
    Range("DR_" & k) = shToProcess.Cells(i, 4)
    Range("NP_" & k) = shToProcess.Cells(i, 5)
    Range("FIOVr_" & k) = shToProcess.Cells(i, 6)
    Range("Spec_" & k) = shToProcess.Cells(i, 7)
    Range("DPr_" & k) = shToProcess.Cells(i, 8)
    Range("KodU_" & k) = shToProcess.Cells(i, 9)
    Range("KodD_" & k) = shToProcess.Cells(i, 10)
    Range("Dop_" & k) = shToProcess.Cells(i, 11)
    Range("Zakl_" & k) = shToProcess.Cells(i, 12)
    Range("Not1_" & k) = shToProcess.Cells(i, 13)
    Range("Not2_" & k) = shToProcess.Cells(i, 14)
    Range("Not3_" & k) = shToProcess.Cells(i, 15)
Next k
End Sub
Не работает - выдаёт ошибку "Application-defined or Object-defined error".
Что-то не так. Помогите, пожалуйста, разобраться.
Распределить даты по соответствующим столбцам, Массив дат распределить по столбцам соответствующих годов (в шапке)
 
Здравствуйте!
Есть задача: даты из столбца F (в файле выделено цветом) распределить по столбцам G:I с годом в шапке таблицы. Исходные данные могут содержать любые даты (год может не соответствовать году в шапке), пустые, нулевые, текстовые значения. Если год даты совпадает с годом в шапке таблицы, то эта дата копируется в соотв. столбец. Если год не соотв. году в шапке таблицы, если значение пусто, 0, текст - в столбцах по годам "".
Решил задачу формулами. Объем реальных данных 60 000+ строк. Файл прилично тяжелеет, и я предполагаю приличные тормоза при пересчете формул.
Просьба решить, если можно, эту задачу в VBA. Сам не имею таких знаний - пробовал макрорекордером записать вычисляющие формулы, но вовремя бросил это дело - "хрен редьки не слаще".
И ещё: годы в шапке таблицы могут меняться - поэтому год надо брать именно из шапки.
Обновление записей в БД, Нужно изменить 2 поля в БД
 
Здравствуйте!
В файле Excel есть лист "БАЗА" и лист "РЕЕСТР". Таблица на листе "РЕЕСТР" меняется каждый день. Необходимо обновить/заполнить поля Бланк и Печать бланка в БАЗА  информацией из аналогичных полей из РЕЕСТР (выделены оранжевым цветом). В обеих таблицах столбец B содержит уникальные номера записей в БД. Число заполненных строк в РЕЕСТР м.б. разное (в реале до 120-150), в БАЗА - до 10000-15000.
Можно было бы использовать ВПР в БАЗА с последующей заменой на значение, но это только макросом - для меня непосильно.
Рад буду любой помощи!
Выпадающий список в комбобоксе с добавлением новых элементов
 
Здравствуйте, планетяне!
Нашел где-то файл по теме "Выпадающий список с поиском" на комбобоксе. Хотел прикрутить к нему код для добавления новых элементов, взятый из Приемов (по-моему):
Код
Private Sub Worksheet_Change(ByVal Target As Range)

Dim lReply As Long

    If Target.Cells.Count > 1 Then Exit Sub
        If Target.Address = "$B$2" Then
            If IsEmpty(Target) Then Exit Sub
                If WorksheetFunction.CountIf(Range("DDL_Town"), Target) = 0 Then
                    lReply = MsgBox("Добавить введенное имя " & Target & " в выпадающий список?", vbYesNo + vbQuestion)
                        If lReply = vbYes Then
                            Range("DDL_Town").Cells(Range("DDL_Town").Rows.Count + 1, 1) = Target
                        End If
                End If
        End If
End Sub
Комбо связан с ячейкой B2. Если ввожу новый элемент прямо в эту ячейку, то все нормально - выскакивает диалог добавления в список т.д.
Если же ввожу в комбобоксе, то ничего не происходит. Видимо нужно другое событие листа. Очень прошу помочь.
В выпадающем списке добавить новые значения в верхнем регистре, Функция UPPER() в VBA
 
Здравствуйте, уважаемые планетяне.
Взял из "Приемов" Выпадающий список с добавлением новых элементов. Приспособил его к своим задачам.
Код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)Dim lReply As Long
    If Target.Cells.count > 1 Then Exit Sub
        If Not Intersect(Target, Range("CellName")) Is Nothing Then
            If IsEmpty(Target) Then Exit Sub
                If WorksheetFunction.CountIf(Sheets("Списки").Range("RangeOfProducts"), Target) = 0 Then
                    lReply = MsgBox("Добавить введенное наименование " & Target & " в выпадающий список?", vbYesNo + vbQuestion)
                        If lReply = vbYes Then
                            Worksheets("Списки").Range("RangeOfProducts").Cells(Worksheets("Списки").Range("RangeOfProducts").Rows.count + 1, 1) = Target
                        End If
                End If
        End If
End Sub
При помощи макрорекордера записал код функции ПРОПИСН():
Код
ActiveCell.FormulaR1C1 = "=UPPER(RC])"

Теперь я не знаю как ее прикрутить к коду.
Помогите, пожалуйста
Изменено: Yuri KUB - 22.09.2015 19:01:40
Подстановка с поиском по правому клику на ячейке (ячейках)
 
Здравствуйте, уважаемые планетяне.
Нашел в интернете файл, В нем реализован расширенный список выбора в Excel с помощью VBA. Как его можно приспособить под мою задачу: по правому клику на ячейке B3 (лист "Реестр") в нее вводится значение из списка в столбце A листа "Списки", а по правому клику на ячейке F7  (лист "Реестр") в нее вводится значение из списка в столбце D листа "Списки". В приложенном файле я только смог ограничить столбцы (по правому клику), но ограничить ячейки - не знаю, как.
Помогите, пожалуйста, поправить код.
Вставка блока строк в нужное место, dставка блока с формулами и усл. форматированием
 
Здравствуйте, уважаемые планетяне!

Прошу помощи!
Написал (макрорекордером) код для вставки строк с форматированием и формулами из листа Формулы в лист График, начиная со строки с активной ячейкой. Есть два блока в листе Формулы: 4-х строчный и 7-ми строчный. Если необходимо вставить эти строки в середину графика, то я сначала вставляю пустые строки (в кол-ве 4 или 7), а затем запускаю макрос. Что нужно изменить в макросах, что бы блоки строк вставлялись сразу со сдвигом имеющихся записей вниз?
получить Имя листа (отображаемое на ярлыке) в текстовом формате
 
Здравствуйте, уважаемые планетяне!
Появилась необходимость получить имя ярлыка листа для дальнейшего использования в формулах.
Поиском по форуму я не нашел.
Может кто-нибудь сталкивался с этим?
Большая просьба, подскажите!
Условное форматирование - ориентация текста
 
Прошу помощи!  
Поиском не нашел.  
Необходимо, чтобы в ячейке ориентация содержимого (время) была - 90 град., другое содержимое (О, В, Б, У, П и т.п.) - 0 град.    
Думал сделать это при помощи условного форматирования (условие =ЕЧИСЛО(...)), но в  задании формата отсутствует параметр "ориентация" (как и все, связанное с положением в ячейке)
Страницы: 1
Наверх