Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Объединение нескольких таблиц в одну, без использования макросов
 
Цитата
Anton555 написал:
используйте power query
Цитата
Melkior написал:
без сторонних надстроек и вообще безо всего, кроме обычных формул
я кажется об этом обмолвился.
Объединение нескольких таблиц в одну, без использования макросов
 
Дано: несколько однотипных таблиц на разных листах рабочей книги.
Требуется: создать общую таблицу, объединяющую в себе все исходные, причем чтобы при внесении данных в любую из исходных таблиц - данные добавлялись также и в общую.
решение через макросы элементарно, но увы, в данной задаче необходимо обойтись без них, без сторонних надстроек и вообще безо всего, кроме обычных формул, при том желательно совместимых с Exel 2003 (желательно, но не обязательно).
В прикрепленном файле образец решения для случая из двух исходных таблиц, однако в реальности их число может варьироваться от 4 до 12 (пока. в будущем возможно и больше) и мне страшно даже попытаться представить как будет выглядеть в таком случае моя формула (как минимум она будет абсолютно нечитаема, непонятна и непригодна для редактирования).
Возможно кто-то из местных гуру подскажет более изящное решение?
Перенос данных из одного столбца в другой по строкам определенного цвета, Нужен совет как проще всего автоматически перенести данные
 
Я правильно понимаю, что в послежнем столбце все цифры вписаны от руки. а в первом в подкрашенных строках считается сумма по неподкрашенным и вам нужно перенести неподкрашенные цифры из последнего столбца в первый, чтобы там посчиталась сумма и можно было проверить на совпадение?
Если да. то просто пропишите в первой неподкрашенной ячейке первого столбца =G3 (ну или какая там у вас первая ячейка из которой нужно брать данные, да протяните по всем нужным вам ячейкам. Не вижу что тут может вызвать вопрос. Хотя ябы подошел к решению такой задачи, принципиально по-другому организовав саму таблицу, но это лирика.
А если я Вас понимаю не правильно, то выложите файл с примером.
Изменено: Melkior - 14 Дек 2018 11:55:52
Макрос для блокировки ячеек с формулами
 
Цитата
Melancholia написал:
Защита ячеек без макроса не подходит, так как чтобы защитить ячейку нужно поставить защиту листа, а при этом мы не можем раскрывать скрытые столбцы, а у меня там есть текст, который периодически нужно будет открывать
что-то я не понимаю, зачем все это городить? не проще на открытые файла поставить макрос в 1 строчку
Код
Private Sub Workbook_Open()
   Sheets("имя страницы").Protect AllowFormattingColumns:=True, userinterfaceonly:=True
end sub

ну и соответственно защитить все ячейки в которых менять формулу запрещено и снять защиту со всех остальных?

AllowFormattingColumns:=True - позволяет скрывать/показывать столбцы
userinterfaceonly:=True - позволяет менять ячейки макросами, но запрещает руками
может  неверно понимаю ТЗ, но вроде удовлетворяет всем требованиям
Изменено: Melkior - 14 Дек 2018 09:19:39
Перенос данных на другой лист с изменениями
 
требуется пара уточнений:
1) заполните пожалуйста вручную второй лист для вашего примера. а то так не особо понятно
2) заполнение второго листа должно происходить при вообще любом изменении первого. как бы в реальном времени? или по ручной команде (например нажатию кнопки) должны добавлять все обновленные значения?
VBA Выборочное копирование по названию страницы
 
Код
Sub Макрос1()

Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets("1").Range("A" & Rows.Count).End(xlUp).Row
    On Error Resume Next
    Sheets(Sheets("1").Range("A" & i).Value).Select
    If Err And Sheets("1").Range("A" & i) <> "" Then
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Sheets("1").Range("A" & i)
    End If
    CurRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
    ActiveSheet.Cells(CurRow, 1).Value = Sheets("1").Cells(i, 2).Value
Next i
Worksheets("1").Activate
Application.ScreenUpdatind = True
End Sub

например так пойдет?
Изменено: Melkior - 13 Дек 2018 14:46:22
Vba перенос нескольких избранных столбцов с листа на лист
 
если скинете сам файл, это заметно облегчит задачу
Перенос данных с основного на листы по дате
 
Надеюсь все правильно понял?
Перенос данных с основного на листы по дате
 
Цитата
arh555 написал:
Если заявки перенесены на соответствующие листы по дате, то удаляются с основного листа, т.е. разово,  по нажатию кнопки.
о! вот это важное замечание. с ним намного проще. сейчас сделаю
Перенос данных с основного на листы по дате
 
пара уточняющих вопросов:
1) между двумя оранжевыми полосами я так понимаю один заказ? т.е. гарантируется что во всех строчках между двумя оранжевыми будет одна дата или нет?
2) какой жизненный цикл у данной задачи? т.е. она один раз прменяется к данной таблице и на этом все? или в таблицу будут периодически добавляться новые строки? если будут, то в какой момент они должны разноситься по новым листам, сразу при появлении или по ручной команде?
Общий доступ к книге и защита листа
 
Но как мне тогда выводить в ячейку результат, если запретить её изменение?
Подтягивание данных с одного листа в другой, так чтобы по первому значению подтягивались все данные.
 
К сожалению не понял как прикрепить файл с решением.. потому напишу так.
Дату можно ставить таким макросом в коде нужного листа (не в модулях)
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Cells(Target.Row, 2) = Date & Chr(10) & "" & Chr(13) & Time
    End If
End Sub

3 и 4 столбы заполняются такой формулой
Код
=ЕСЛИ(A14="";"";ВПР(A14;Лист2!$A$2:$G$30;3;0))
=ЕСЛИ(A14="";"";ВПР(A14;Лист2!$A$2:$G$30;4;0))

соответственно (это пример для 14 строчки как в вашем файле, на остальные просто протянуть)
Общий доступ к книге и защита листа
 
Добрый день.
Подскажите как решить такую проблему:
Мне необходимо, чтобы в файле часть ячеек была недоступна для изменения пользователем, но менялась при помощи макроса. Достигаю этого при помощи кода

Private Sub Workbook_Open()
   Sheets(1).Protect Password:="*******", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFiltering:=True, UserInterfaceOnly:=True
End Sub

Работает замечательно.
Недавно возникла необходимость поместить этот файл в общую папку и сделать к нему общий доступ. И тут начались проблемы
Protect с общим доступом несовместим, но если убрать эту строчку кода, то параметр UserInterfaceOnly:=True сбрасывается после повторного открытия документа и перестают работать все макросы.

Как выйти из этого тупика?
Страницы: 1
Наверх