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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для изменения значений в таблице в другой ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для изменения значений в таблице в другой ячейке (Макросы/Sub)
Макрос для изменения значений в таблице в другой ячейке
Mexo Дата: Суббота, 08.07.2017, 13:21 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте! В приложенном файле есть таблица G2:I4, требуемые значения которой показываются в ячейке B2 когда изменяется значения в шапке в таблицы. Например, если значение в ячейке G1=1, в ячейке B2 показывается значение ячейки G2, если значение в ячейке H1=2, в ячейке B2 показывается значение ячейки H3 и т.д. Помогите пожалуйста написать макрос чтоб при выделении ячейки B2, в ней можно было править значения которые находятся в таблице. Чтобы получалось так: например, в шапке таблице в ячейке I1 значение =3, G1 и H1=0, ячейка B2 показывает значение ячейки I4, при выделении ячейки B2 и вводе в нее другой цифры, эта цифра должна появляться в ячейке I4. Заранее благодарю!
К сообщению приложен файл: ____2.xlsm (16.7 Kb)


Сообщение отредактировал Mexo - Суббота, 08.07.2017, 13:26
 
Ответить
СообщениеЗдравствуйте! В приложенном файле есть таблица G2:I4, требуемые значения которой показываются в ячейке B2 когда изменяется значения в шапке в таблицы. Например, если значение в ячейке G1=1, в ячейке B2 показывается значение ячейки G2, если значение в ячейке H1=2, в ячейке B2 показывается значение ячейки H3 и т.д. Помогите пожалуйста написать макрос чтоб при выделении ячейки B2, в ней можно было править значения которые находятся в таблице. Чтобы получалось так: например, в шапке таблице в ячейке I1 значение =3, G1 и H1=0, ячейка B2 показывает значение ячейки I4, при выделении ячейки B2 и вводе в нее другой цифры, эта цифра должна появляться в ячейке I4. Заранее благодарю!

Автор - Mexo
Дата добавления - 08.07.2017 в 13:21
_Boroda_ Дата: Суббота, 08.07.2017, 13:38 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim j As Long, d_ As Range, d0_ As Range, n_
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = False
    Set d0_ = Range("G1:I1")
    With Target
        If Not Application.Intersect(d0_, .Cells) Is Nothing Then
            If .Value > 0 Then
                n_ = .Value
                Range("G1:I1") = 0
                .Value = n_
                Range("B2").Value = .Offset(.Value, 0).Value
            End If
        ElseIf .Address(0, 0) = "B2" Then
            For Each d_ In d0_
                If d_ <> 0 Then
                    d_.Offset(d_.Value) = .Value
                End If
            Next d_
        End If
    End With
    Application.EnableEvents = True
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: _2_1.xlsm (17.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim j As Long, d_ As Range, d0_ As Range, n_
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = False
    Set d0_ = Range("G1:I1")
    With Target
        If Not Application.Intersect(d0_, .Cells) Is Nothing Then
            If .Value > 0 Then
                n_ = .Value
                Range("G1:I1") = 0
                .Value = n_
                Range("B2").Value = .Offset(.Value, 0).Value
            End If
        ElseIf .Address(0, 0) = "B2" Then
            For Each d_ In d0_
                If d_ <> 0 Then
                    d_.Offset(d_.Value) = .Value
                End If
            Next d_
        End If
    End With
    Application.EnableEvents = True
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.07.2017 в 13:38
Mexo Дата: Воскресенье, 09.07.2017, 00:54 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Спасибо! Завтра гляну.
 
Ответить
СообщениеСпасибо! Завтра гляну.

Автор - Mexo
Дата добавления - 09.07.2017 в 00:54
KuklP Дата: Воскресенье, 09.07.2017, 05:22 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКросс:
http://www.planetaexcel.ru/forum....acheyke

Автор - KuklP
Дата добавления - 09.07.2017 в 05:22
Mexo Дата: Воскресенье, 09.07.2017, 12:47 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Спасибо! То что нужно.
 
Ответить
СообщениеСпасибо! То что нужно.

Автор - Mexo
Дата добавления - 09.07.2017 в 12:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для изменения значений в таблице в другой ячейке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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