Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 10:04:22

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Прочие форумы
| |-+  Заказы на написание макросов, работа для специалистов по Excel и VBA и пр.
| | |-+  Макрос. Вставка и удаление ячеек через перезапись со смещением.
Страниц: [1]   Вниз
Печать
Автор Тема: Макрос. Вставка и удаление ячеек через перезапись со смещением.  (Прочитано 5838 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kalibus
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« : 08.05.2021, 14:46:21 »

Приветствую!
Напишите пжл для чайника Смеющийся 2 макроса.
1. Вставляет ячейки в нужной строке с перезаписью массива на строку ниже
2. Удаляет ячейки в нужной строке с перезаписью массива на строку выше.
Особенностью является, что данные в ячейках - связи элемента управления формы Поле со списком. Поэтому операции смещения не подходят - только перезапись данных.
В прилагаемом файле думаю все достаточно четко описано.

Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #1 : 08.05.2021, 14:57:09 »

Давайте сделаем. См. личные сообщения
Записан
kalibus
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« Ответ #2 : 08.05.2021, 19:09:24 »

Спасибо. Но признаться не рассчитывал на такой бюджет. В общем, сам написал... там и писать то оказывается 3 строчки.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #3 : 08.05.2021, 19:13:09 »

Сами - это хорошо. Но "три строчки"?
Ограничения по максимальной и минимальной строке, корректная обработка первой и последней строки, исключение ошибок... Советую подумать и дописать еще 5-10 строк )
« Последнее редактирование: 08.05.2021, 19:39:09 от vikttur » Записан
kalibus
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« Ответ #4 : 09.05.2021, 02:02:21 »

Вы правы... так и получилось. С учетом знакомства с литературой от главы об обращении к ячейке, пол дня на сие угробил. Победил, но знания мне эти чувствую никогда больше не пригодятся В замешательстве  И да, конечно всё сделал на уровне камня и топора Строит глазки Но это первый мой опыт.
Код: (vb)

Sub VstavkaAt()
    Dim i As Range
    Set i = Range("O5")
    If i = 0 Then
        MsgBox "Введено недопустимое значение. Укажите ....", vbCritical, "Ошибка!"
    Else
    Dim l As Range
    Set l = Range("D190")
    If MsgBox("Желаете вставить пустую строку в " & l & " ? Данные сместятся на одну строку ниже.", vbQuestion + vbYesNo, "........") = vbNo Then
        Exit Sub
    End If
        Application.ScreenUpdating = False
        Range(Cells(i, 4), Cells(185, 4)).Copy Cells(i + 1, 23)
        Cells(i, 4).Value = ""
        Range(Cells(i + 1, 23), Cells(186, 23)).Copy Cells(i + 1, 4)
        Range("W7:Y186").Value = ""
        Range("D190").Value = ""
    End If
    MsgBox "Готово!", vbInformation, "Вставка пустой строки"
End Sub

Sub DeleteAt()
    Dim i As Range
    Set i = Range("P5")
    If i = 0 Then
        MsgBox "Введено недопустимое значение. Укажите № строки в интервале от ....", vbCritical, "Ошибка! ...."
    Else
    Dim l As Range
    Set l = Range("D192")
    If MsgBox("Желаете удалить данные в " & l & " строке? Данные снизу сместятся на одну строку выше.", vbQuestion + vbYesNo, ".....") = vbNo Then
        Exit Sub
    End If
        Application.ScreenUpdating = False
        Range(Cells(i + 1, 4), Cells(186, 4)).Copy Cells(i, 4)
        Cells(186, 4).Value = ""
         
        Range("D192").Value = ""
    End If
    MsgBox "Готово!", vbInformation, "Удаление строки"
End Sub

Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru