Не вошло название темы полностью. В общем необходимо нажатием энной кнопки добавлять строку в вводную таблицу, причем с копированием привязанного списка и формул как в предыдущих строках. Также эти строки должны появляться в другой таблице (Форма1). Ну и... некоей другой кнопкой нужно эти строки удалять (или как я в образце сделала - это было бы вообще идеально!!!!) подскажете?...
Не вошло название темы полностью. В общем необходимо нажатием энной кнопки добавлять строку в вводную таблицу, причем с копированием привязанного списка и формул как в предыдущих строках. Также эти строки должны появляться в другой таблице (Форма1). Ну и... некоей другой кнопкой нужно эти строки удалять (или как я в образце сделала - это было бы вообще идеально!!!!) подскажете?... nastenoksi
Sub Мяу3_Добавить() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row + 1 If Len(.Cells(19, "E")) Then .Rows(19).Copy .Rows(lr).Insert Shift:=xlDown Set r = Union(.Range("E" & lr), .Range("O" & lr), .Range("W" & lr)) r = "" End If End With Application.CutCopyMode = False End Sub
Sub Мяу4_Удалить() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row If lr > 19 Then .Rows(lr & ":" & 20).Delete Set r = Union(.Range("E" & 19), .Range("O" & 19), .Range("W" & 19)) r = "" End With End Sub
[/vba]
[vba]
Код
Sub Мяу3_Добавить() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row + 1 If Len(.Cells(19, "E")) Then .Rows(19).Copy .Rows(lr).Insert Shift:=xlDown Set r = Union(.Range("E" & lr), .Range("O" & lr), .Range("W" & lr)) r = "" End If End With Application.CutCopyMode = False End Sub
Sub Мяу4_Удалить() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row If lr > 19 Then .Rows(lr & ":" & 20).Delete Set r = Union(.Range("E" & 19), .Range("O" & 19), .Range("W" & 19)) r = "" End With End Sub
[/vba] Точнее, не то, чтобы совсем не бывает, но это не нажатие кнопки по умолчанию. 2. Не зачем в столбец, по которому определяется последняя строка, пихать всякий мусор. 3. В примере ассортимент начинался со строки 19, к ней макрос и привязан.
Попробуйте на предыдущем файле.
1. [vba]
Код
Sub CommandButton2_Добавить()
[/vba] не бывает. Бывает [vba]
Код
Private Sub CommandButton2_Click()
[/vba] Точнее, не то, чтобы совсем не бывает, но это не нажатие кнопки по умолчанию. 2. Не зачем в столбец, по которому определяется последняя строка, пихать всякий мусор. 3. В примере ассортимент начинался со строки 19, к ней макрос и привязан.
RAN, С добавлением строк все получилось!!!))) Только не копирует "галочки" - если они мне конечно в будущем понадобятся... С удалением - не получается никак((( Т.е. удаляется 1 верхняя строка и все... Дальше кнопка не арбайтен..
В общем, что мне бы хотелось получить с этими добавлениями/удалениями в итоге: 1. Добавить строки с копированием формул на листе "Ввод" - работает (только флажки перед асс-м не добавляет). 2. Удалением строк (желательно при тех, которые отмечены флажками, я в этот раз галки поменяла на флажки). Если сильно тяжело с флажками, то Бог с ними, пусть удаляет просто строки. но не первую. а начиная со второй... Первая она как бы всегда должна оставаться; 3. И вот тут самое главное!!! На листе "Форма1" в аналогичной таблице с ассортиментом (там стоят формулы =соответствующая строка в листе "Ввод") добавленные строки должны также отображаться, ну или автоматически удаляться, если я удаляю их в вводной таблице....
Вот... *вспоминая ту самую Машу "О-хо-хоюшки-хо-хо"*...
Ниже файл с тем, что уже получилось:
RAN, С добавлением строк все получилось!!!))) Только не копирует "галочки" - если они мне конечно в будущем понадобятся... С удалением - не получается никак((( Т.е. удаляется 1 верхняя строка и все... Дальше кнопка не арбайтен..
В общем, что мне бы хотелось получить с этими добавлениями/удалениями в итоге: 1. Добавить строки с копированием формул на листе "Ввод" - работает (только флажки перед асс-м не добавляет). 2. Удалением строк (желательно при тех, которые отмечены флажками, я в этот раз галки поменяла на флажки). Если сильно тяжело с флажками, то Бог с ними, пусть удаляет просто строки. но не первую. а начиная со второй... Первая она как бы всегда должна оставаться; 3. И вот тут самое главное!!! На листе "Форма1" в аналогичной таблице с ассортиментом (там стоят формулы =соответствующая строка в листе "Ввод") добавленные строки должны также отображаться, ну или автоматически удаляться, если я удаляю их в вводной таблице....
Вот... *вспоминая ту самую Машу "О-хо-хоюшки-хо-хо"*...
Дальше вы не думайтен. 1 верхняя строка (19) как раз и остается, просто очищаются те ячейки, в которых нет формул. Удаляются только заполненные строки. Те, что не заполнены, для макроса не существуют. [vba]
Код
Private Sub CommandButton3_Click() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row If lr > 19 Then .Rows(lr & ":" & 20).Delete Set r = Union(.Range("E" & 19), .Range("O" & 19), .Range("W" & 19)) r = "" End With End Sub
Дальше вы не думайтен. 1 верхняя строка (19) как раз и остается, просто очищаются те ячейки, в которых нет формул. Удаляются только заполненные строки. Те, что не заполнены, для макроса не существуют. [vba]
Код
Private Sub CommandButton3_Click() Dim lr&, r As Range With Sheets("Ввод") lr = .Cells(Rows.Count, "E").End(xlUp).Row If lr > 19 Then .Rows(lr & ":" & 20).Delete Set r = Union(.Range("E" & 19), .Range("O" & 19), .Range("W" & 19)) r = "" End With End Sub
[/vba] Вставка флажков - идея порочная, без меня.RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Вторник, 01.10.2013, 22:47
Согласен намучаетесь Вы с таким решением. Когда то давно подсмотрел в одной из тем (где не помню, так что надеюсь автор простит, за отсутствие ссылки на оригинал) но мне это решение кажеться намного более простым
Цитата
Вставка флажков - идея порочная, без меня.
Согласен намучаетесь Вы с таким решением. Когда то давно подсмотрел в одной из тем (где не помню, так что надеюсь автор простит, за отсутствие ссылки на оригинал) но мне это решение кажеться намного более простымPoltava
А в чем проблема я так понимаю количество строк одинаковое. Вы я думаю всеравно в цикле будите перебирать. Просто рядом с кодом удаления на вводе добавьте код удаления и на форме
А в чем проблема я так понимаю количество строк одинаковое. Вы я думаю всеравно в цикле будите перебирать. Просто рядом с кодом удаления на вводе добавьте код удаления и на формеPoltava
А в чем проблема я так понимаю количество строк одинаковое. Вы я думаю всеравно в цикле будите перебирать. Просто рядом с кодом удаления на вводе добавьте код удаления и на форме
Количество строк как раз-таки всегда разное.. от 2-х до 15...
А в чем проблема я так понимаю количество строк одинаковое. Вы я думаю всеравно в цикле будите перебирать. Просто рядом с кодом удаления на вводе добавьте код удаления и на форме
Количество строк как раз-таки всегда разное.. от 2-х до 15...nastenoksi
Sub Мяу5_форма() Dim lr&, r As Range, lscet& With Sheets("Форма1") lr = .Cells(12, "E").End(xlDown).Row If lr > 13 Then .Rows(lr - 1 & ":" & 14).Delete lscet = Sheets("Ввод").Cells(Rows.Count, "E").End(xlUp).Row - 18 .Rows(13).Copy .Rows(14 & ":" & 12 + lscet).Insert Shift:=xlDown End With Application.CutCopyMode = False End Sub
А можно, чтобы удалялись не заполненные, а пустые строки?
Можно все. НО 1. На каждый чих не наздравствуешся. 2. Больше работы руками - меньше ошибок. 3. Можно просто выделить строки и удалить штатными средствами Excel.
[vba]
Код
Sub Мяу5_форма() Dim lr&, r As Range, lscet& With Sheets("Форма1") lr = .Cells(12, "E").End(xlDown).Row If lr > 13 Then .Rows(lr - 1 & ":" & 14).Delete lscet = Sheets("Ввод").Cells(Rows.Count, "E").End(xlUp).Row - 18 .Rows(13).Copy .Rows(14 & ":" & 12 + lscet).Insert Shift:=xlDown End With Application.CutCopyMode = False End Sub
А можно, чтобы удалялись не заполненные, а пустые строки?
Можно все. НО 1. На каждый чих не наздравствуешся. 2. Больше работы руками - меньше ошибок. 3. Можно просто выделить строки и удалить штатными средствами Excel.RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Вторник, 01.10.2013, 23:48
В общем необходимо нажатием энной кнопки добавлять строку в вводную таблицу, причем с копированием привязанного списка и формул как в предыдущих строках. Также эти строки должны появляться в другой таблице (Форма1).
Смотрел я, смотрел Ваши таблицы да так и не понял, для чего все эти действия с добавлением/удалением строк, применением флажков? Или у Вас принцип такой - чем сложнее тем круче?
В общем необходимо нажатием энной кнопки добавлять строку в вводную таблицу, причем с копированием привязанного списка и формул как в предыдущих строках. Также эти строки должны появляться в другой таблице (Форма1).
Смотрел я, смотрел Ваши таблицы да так и не понял, для чего все эти действия с добавлением/удалением строк, применением флажков? Или у Вас принцип такой - чем сложнее тем круче?Wasilich
Сообщение отредактировал Wasilic - Среда, 02.10.2013, 00:05