Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных на другой лист тпри внесении изменений - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных на другой лист тпри внесении изменений (Макросы/Sub)
Копирование данных на другой лист тпри внесении изменений
Manyasha Дата: Четверг, 03.12.2015, 11:12 | Сообщение № 21
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Игорь, может как-то так?
[vba]
Код
Dim r0 As Long, r1 As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    r1 = 0
    r1 = Cells(Rows.Count, "c").End(xlUp).Row
    If r1 < r0 Then
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Delete
    ElseIf r1 > r0 Then
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Insert Shift:=xlDown
    End If
    On Error Resume Next
    If Not Intersect(Target, Range("I6:AJ1000")) Is Nothing Then
        'на листе контроль, сдвигаемся на 1 строчку вверх и на 3 столбца вправо
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1, 3).Value = Target.Value
    End If
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    r0 = 0
    r0 = Cells(Rows.Count, "c").End(xlUp).Row
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИгорь, может как-то так?
[vba]
Код
Dim r0 As Long, r1 As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    r1 = 0
    r1 = Cells(Rows.Count, "c").End(xlUp).Row
    If r1 < r0 Then
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Delete
    ElseIf r1 > r0 Then
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Insert Shift:=xlDown
    End If
    On Error Resume Next
    If Not Intersect(Target, Range("I6:AJ1000")) Is Nothing Then
        'на листе контроль, сдвигаемся на 1 строчку вверх и на 3 столбца вправо
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1, 3).Value = Target.Value
    End If
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    r0 = 0
    r0 = Cells(Rows.Count, "c").End(xlUp).Row
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 03.12.2015 в 11:12
SLAVICK Дата: Четверг, 03.12.2015, 11:47 | Сообщение № 22
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Manyasha Ваш код будет работать только с одной строкой
Можно немного изменить:
[vba]
Код
Dim r0 As Long, r1 As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    r1 = 0
    r1 = Cells(Rows.Count, "c").End(xlUp).Row
    If r1 < r0 Then
    rt = r0 - r1
        'Debug.Print Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Address
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Delete
    ElseIf r1 > r0 Then
    rt = r1 - r0
        'Debug.Print Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Address
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Insert Shift:=xlDown
    End If
    On Error Resume Next
    If Not Intersect(Target, Range("I6:AJ1000")) Is Nothing Then
        'на листе контроль, сдвигаемся на 1 строчку вверх и на 3 столбца вправо
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1, 3).Value = Target.Value
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    r0 = 0
    r0 = Cells(Rows.Count, "c").End(xlUp).Row
End Sub
[/vba]
К сообщению приложен файл: __.zip (59.2 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Четверг, 03.12.2015, 11:59
 
Ответить
СообщениеManyasha Ваш код будет работать только с одной строкой
Можно немного изменить:
[vba]
Код
Dim r0 As Long, r1 As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    r1 = 0
    r1 = Cells(Rows.Count, "c").End(xlUp).Row
    If r1 < r0 Then
    rt = r0 - r1
        'Debug.Print Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Address
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Delete
    ElseIf r1 > r0 Then
    rt = r1 - r0
        'Debug.Print Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Address
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1).Resize(rt).Insert Shift:=xlDown
    End If
    On Error Resume Next
    If Not Intersect(Target, Range("I6:AJ1000")) Is Nothing Then
        'на листе контроль, сдвигаемся на 1 строчку вверх и на 3 столбца вправо
        Sheets("контроль выполнения графика").Range(Target.Address).Offset(-1, 3).Value = Target.Value
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    r0 = 0
    r0 = Cells(Rows.Count, "c").End(xlUp).Row
End Sub
[/vba]

Автор - SLAVICK
Дата добавления - 03.12.2015 в 11:47
китин Дата: Пятница, 04.12.2015, 08:10 | Сообщение № 23
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
И снова всем Доброго!!!! Прошу извинить:вчера завал на работе, не посмотрел.Спасибо за помощь!!!А можно еще одну хотелку?Строки добавляются на листе Контроль,но хотелось бы,что бы в эти строки копировалось содержимое ячеек с Листа График(весь диапазон А6:Н1000), [p.s.]И если будет времечко, прокомментируйте строчки кода, что бы я больше не приставал :D :D
К сообщению приложен файл: __.rar (57.8 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Пятница, 04.12.2015, 08:38
 
Ответить
СообщениеИ снова всем Доброго!!!! Прошу извинить:вчера завал на работе, не посмотрел.Спасибо за помощь!!!А можно еще одну хотелку?Строки добавляются на листе Контроль,но хотелось бы,что бы в эти строки копировалось содержимое ячеек с Листа График(весь диапазон А6:Н1000), [p.s.]И если будет времечко, прокомментируйте строчки кода, что бы я больше не приставал :D :D

Автор - китин
Дата добавления - 04.12.2015 в 08:10
SLAVICK Дата: Пятница, 04.12.2015, 10:29 | Сообщение № 24
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Как то так :D :
К сообщению приложен файл: __-2-.zip (60.6 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеКак то так :D :

Автор - SLAVICK
Дата добавления - 04.12.2015 в 10:29
Manyasha Дата: Пятница, 04.12.2015, 10:57 | Сообщение № 25
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Раз уж дописала, тоже выложу))
Разница с кодом SLAVICK в том, что диапазон a6:h1000 копируется не весь, а только его пересечение с выделением (Target). Для I6:AJ1000 - аналогично поправила.
К сообщению приложен файл: 111.rar (71.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеРаз уж дописала, тоже выложу))
Разница с кодом SLAVICK в том, что диапазон a6:h1000 копируется не весь, а только его пересечение с выделением (Target). Для I6:AJ1000 - аналогично поправила.

Автор - Manyasha
Дата добавления - 04.12.2015 в 10:57
китин Дата: Пятница, 04.12.2015, 13:28 | Сообщение № 26
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Огромное вам СПАСИБО!!!! Спасли от позора мои седины!!!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеОгромное вам СПАСИБО!!!! Спасли от позора мои седины!!!

Автор - китин
Дата добавления - 04.12.2015 в 13:28
SLAVICK Дата: Пятница, 04.12.2015, 14:28 | Сообщение № 27
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
off_top
Огромное вам СПАСИБО!!!! Спасли от позора мои седины!!!

Мы старались. :) Всегда приятно помочь хорошему человеку beer


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщениеoff_top
Огромное вам СПАСИБО!!!! Спасли от позора мои седины!!!

Мы старались. :) Всегда приятно помочь хорошему человеку beer

Автор - SLAVICK
Дата добавления - 04.12.2015 в 14:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных на другой лист тпри внесении изменений (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!