Добрый вечер! Благодаря знаниям и умениям знатоков удалось добавлять строки макросом в таблицы, расположенные на одном листе, не смещая при этом исходные таблицы: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=111903&a..., за что еще раз всем огромное спасибо. Теперь появилась необходимость удалять строки в каждой таблице. Не имеет значения есть в них данные или нет. Важно, чтобы нельзя было удалить строку, если она последняя в данной таблице. Помогите, пожалуйста.
Добрый всем вечер! Есть три таблицы на одном листе. В каждую есть необходимость добавлять строки. Записал макрорекодером. Если идти снизу вверх (от Таблицы 3 к Таблице 1), то никаких проблем - строки копируются и добавляются. Но если, например, добавить несколько строк в Таблицу 1, то при выполнении макроса к таблице 2, строки добавляются уже со смещением (не в Таблице 2, а выше). Понимаю, почему это происходит, но не знаю, как это обойти.
Доброго дня! С Днем знаний! Поделитесь, пожалуйста, познаниями и опытом )
Подтягиваю данные с одного листа на другой с помощью СУММЕСЛИ. Таблица очень большая: 60 тысяч + строк на 60 столбцов. СУММЕСЛИ использую внутри макроса, написанного макрорекодером. Запускаю макрос --- время на выполнение уходит от 20 минут до ... Попробовал в макрос добавить процедуру выключения/включения обновлений экрана и пересчетов в начале и в конце макроса. Значительно быстрее, но все равно долго. Подскажите, как можно оптимизировать процесс?
Доброго всем дня/ночи)) Возможно ли совместить Inputbox и выпадающий список? Например: в диалоговом окне запрашиваем у пользователя "Введите город", пользователь может выбрать только предложенные варианты (по аналогии с выпадающим списком).
Добрый день! Есть макрос, который создает новые листы в книге и присваивает им имена по некоторому правилу. В другом листе (назовем его "Реестр") в столбце, например B, присвоенные имена добавляются по мере добавления новых листов. Другими словами: есть листы ВВА, СВА, АВС и т.д. На отдельном листе "Реестр" в столбце В в ячейках прописаны эти же самые ВВА, СВА, АВС и т.д. Возможно ли в листе реестр в столбце В сделать ВВА, СВА, АВС и т.д гиперссылками на соответствующие листы? Прописывать руками не шибко рационально, т.к. новые листы с новыми именами постоянно создаются пользователем. возможно, несколько кривовато объяснил, поэтому файл, на всякий случай, прилагаю
Добрый день! Почитал форум, нашел несколько вариантов решения сбора данных всех листов открытой книги на новый лист. Подскажите, возможно ли собрать данные со всех листов кроме листа "Заказ" частично на новый лист по наименованию столбцов: Наименование, цена, поставщик, заказ? Столбцы на разных листах могут находится в разных местах: например в листе 1 наименование находится в столбце А, на листе 2 - в столбце В и т.д. Пример прилагается.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then
Application.EnableEvents = False
Dim Sht As Worksheet
Dim iLastRow As Long
Dim Naimenovanie As Range
Dim FoundNaimenovanie As Range
Dim TSena As Range
For Each Sht In Worksheets
If Sht.Name <> "заказ" Then
With Sht
Set Naimenovanie = .Rows("1:2").Find("Наименование", , xlValues, xlWhole, 2)
Set FoundNaimenovanie = .Columns(Naimenovanie.Column).Find(Target, , xlValues, xlWhole)
If Not FoundNaimenovanie Is Nothing Then
Set TSena = .Rows("1:2").Find("Цена", , xlValues, xlWhole)
If Not TSena Is Nothing Then
Target.Offset(, 4) = .Cells(FoundNaimenovanie.Row, TSena.Column)
Target.Offset(, 1) = Sht.Name
End If
End If
End With
End If
Next
End If
Application.EnableEvents = True
End Sub
Макрос ищет по всем листам книги введенное в листе "Заказ" Наименование и возвращает соответствующую ему цены и имя этого листа. Изначально все работало нормально. Начал "причесывать" исходный файл и выяснилось: 1. При удалении строк в лист "Заказ", макрос ругается: Run-time error '91 Object variable or With block variable not set в строке
Код
Set FoundNaimenovanie = .Columns(Naimenovanie.Column).Find(Target, , xlValues, xlWhole)
после этого макрос не работает
2. После удаления и/или добавления новых листов макрос выдает такую же ошибку. 3. При вводе пустого значения макрос дает имя одного из листов (понимаю, что он ищет соответствие и находит , но хотелось бы этого избежать. При очистке Delитом такая же история. 4. При копировании формата введенного для поиска значения на другие значения изменяется и "наименование" и "цена". привязанные к ним.
Скажу честно, мои познания в макросах близки к нулевым, поэтому не судите строго, если изложил коряво.
Добрый день! Задача следующая: есть много прайс-листов различных поставщиков, каждый на отдельном листе. Нас интересуют столбцы "Наименование" и "Цена". В каждом прайсе эти столбцы занимают разное положение (т. е. у Поставщика 1 "Наименование" находится в столбце B, а "Цена" в столбце С, у Поставщика 2 - "Наименование" находится в столбце А, а "Цена" в столбце G и т.д.) Более того при обновлении данных (копировании нового прайса) на этих листах положения "Наименования" и "Цены" могут изменится (т. е. у Поставщика 1 "Наименование" будет в столбце C, а "Цена" в столбце D и т.д.) Возможно ли в данном случае использовать функцию СУММЕСЛИ? Нужно на отдельном листе в соответствие каждому наименованию (все наименования уникальные) вывести цену. Другими словами сформировать сводный прайс-лист.
есть таблица: товар А - Арт.1,Арт.2,Арт.3,Арт.4,Арт.5 товар В - Арт.1,Арт.3,Арт.2,Арт.5,Арт.4 товар С - Арт.1,Арт.4,Арт.3,Арт.2,Арт.5 и т.д.
Т.е. в состав каждого товара входит определенный состав артикулов. Можно ли сделать обратное сопоставление Артикул - Товар? Нужно понять, в состав каких товаров входит каждый артикул.
Начинал делать через связку формул ИНДЕКС - ПОИСКПОЗ, но беда в том, что она находит и подставляет только первое найденное значение. В нашем примере для Арт.1 это будет только товар А Можно ли это сделать формулами или здесь без макросов не обойтись? )))))
В прикрепленном файле пример: в Листе 3 сопоставление Товар - Артикул, в Листе 1 нужно сделать обратное сопоставление.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{~}", "StartEnter"
End Sub
получаю новый макрос:
Код
Sub МакросМС1()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{~}", "StartEnter"
End Sub
Range("H2").Select
Selection.ClearContents
Range("A2").Select
Selection.ClearContents
With Selection.Interior
и так далее
Нажимаю Enter, никаких чудес не происходит. В чем ошибка?