Страницы: 1
RSS
При нажатии на гиперссылку "Расторгнуть" строки, которые включены в эту объединенную ячейку, копировать на соседний лист
 
Здравствуйте. Нужна помощь в написании кода VBA для копирования строк входящих в расширяемый диапазон и все это по нажатию гиперссылок Сам пытался но не получилось.
В файле есть два листа "Юр" и "Раст Юр". В листе "Юр" по нажатию на гиперссылку "Добавить новый договор" добавляются 2 строки, местами с объединенными ячейками, далее при нажатии "Добавить точку поставки" добавляются еще строки, объединенные ячейки расширяются. Напротив каждого добавленного "договора" имеются 2 гиперссылки: "Удалить" - удаляет все строки входящие в этот "договор", "Расторгнуть" - должен был копировать эти строки в лист "Раст Юр" начиная с ячейки "А12"  и далее вниз по мере добавления расторгнутых договоров.
Задача: При нажатии гиперссылки "Расторнуть" в первом листе, строки подпадающие под эту ячейку (договор) должны скопироваться во второй лист. Желательно с учетом что каждый последующий договор встанет под предыдущий.

P.S. При просмотре оригинального файла с гуглдиска все быстро стало бы понятно, там много что сделано\переделано (сам в VBA не шарю), осталось добить единственно только этот момент с расторжением. Спасибо за помощь    
Файл с ГуглДиска
Изменено: Maga Klv - 13.07.2020 20:32:01
 
Цитата
Maga Klv написал:
Нужна помощь в написании кода VBA
а есть наброски уже?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
а есть наброски уже?
Нет.  
 
Maga Klv, раз нет набросков вот вам для
Цитата
Maga Klv написал:
по нажатию на гиперссылку "Добавить новый договор" добавляются 2 строки, местами с объединенными ячейками
в модуль листа
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
lr = Cells(Rows.Count, 4).End(xlUp).Row
Set cell = Range("D" & lr)
Select Case Target.Range.Address
Case cell.Address
        Rows(lr & ":" & lr + 1).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        lr = Cells(Rows.Count, 4).End(xlUp).Row
        Range("A" & lr - 2 & ":A" & lr - 1).Merge
        Range("b" & lr - 2 & ":b" & lr - 1).Merge
        Range("c" & lr - 2 & ":c" & lr - 1).Merge
        Range("d" & lr - 2 & ":d" & lr - 1).Merge
        Range("e" & lr - 2 & ":e" & lr - 1).Merge
        Range("h" & lr - 2 & ":h" & lr - 1).Merge
Case Else
       Exit Sub
End Select
End Sub
Изменено: Mershik - 13.07.2020 17:07:12
Не бойтесь совершенства. Вам его не достичь.
 
Вы меня не правильно поняли. У меня есть все рабочие кнопки, кроме этого расторгнуть.
Попробую более понятно описать задачу в первом посте. Извините что ввел в заблуждение)  
 
Maga Klv, почему не обратится к тому кто сделал этот файл? может покажете все таки желаемый результат например если нажимаем Расторгнуть" последнего договора?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
почему не обратится к тому кто сделал этот файл
Ну изначально это была форма для заполнения квартальных отчетов,  минэкономики кажется, я начал переделывать его. Знаний в VBA нету, но примерно допер до всего что надо было, кроме именно этого копирования. Как обычное копирование с листа на лист делается примеров много нашел, все более менее понятно, но конкретного (или примерно) для такого случая, решения не нашел. Просто не могу понять как захватил все нужные строки, максиму первую строку только копирует, а если написать .CurrentRegion , то он захватывает лишние соседние строки. Я уже сдался, не получается у меня)
Страницы: 1
Наверх