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

Вход

Регистрация

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

 

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

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

Excel 2010
Всех с наступившей Пасхой.. Не знаю, как написать макрос, который будет выводить значение ячейки из определенного столбца в ячейку А1 при выделении ячейки в определенном диапазоне строки. Т.е. если я выделил ячейку любую от A3 до H3, то в ячейке А1 должно появиться значение ячейки J3.
К сообщению приложен файл: __.xlsm (13.1 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеВсех с наступившей Пасхой.. Не знаю, как написать макрос, который будет выводить значение ячейки из определенного столбца в ячейку А1 при выделении ячейки в определенном диапазоне строки. Т.е. если я выделил ячейку любую от A3 до H3, то в ячейке А1 должно появиться значение ячейки J3.

Автор - ovechkin1973
Дата добавления - 16.04.2017 в 14:11
_Boroda_ Дата: Воскресенье, 16.04.2017, 14:24 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант. Возможно выделение нескольких ячеек, не все из которых могут принадлежать диапазону А3:Н18

Добавлено
Если вообще ни одна ячейка не принадлежит указанному выше диапазону, то А1 очищаетсся (файл _2)
К сообщению приложен файл: _1.xlsm (15.8 Kb) · _2.xlsm (15.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант. Возможно выделение нескольких ячеек, не все из которых могут принадлежать диапазону А3:Н18

Добавлено
Если вообще ни одна ячейка не принадлежит указанному выше диапазону, то А1 очищаетсся (файл _2)

Автор - _Boroda_
Дата добавления - 16.04.2017 в 14:24
ovechkin1973 Дата: Воскресенье, 16.04.2017, 19:12 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Хорошо, что есть профи! Огромное человеческое! приспособил второй вариант макроса к своему файлу.. обнаружил две проблемы.. одна не существенная - у меня данные с 10-ой строки начинаются, выше идет шапка таблицы. Если встать на ячейку выше 10-ой строки, то выскакивает ошибка 1004 "изменить часть объединенной ячейки не возможно".. это я переживу. А вторая проблема.. у меня на рабочем листе есть уже код, который начинается на Private Sub Worksheet_SelectionChange(ByVal Target As Range). В нем около 10 строк, а найти как под спойлер спрятать не пойму как.. И чтобы работал один макрос приходиться за комментировать другой

:(


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеХорошо, что есть профи! Огромное человеческое! приспособил второй вариант макроса к своему файлу.. обнаружил две проблемы.. одна не существенная - у меня данные с 10-ой строки начинаются, выше идет шапка таблицы. Если встать на ячейку выше 10-ой строки, то выскакивает ошибка 1004 "изменить часть объединенной ячейки не возможно".. это я переживу. А вторая проблема.. у меня на рабочем листе есть уже код, который начинается на Private Sub Worksheet_SelectionChange(ByVal Target As Range). В нем около 10 строк, а найти как под спойлер спрятать не пойму как.. И чтобы работал один макрос приходиться за комментировать другой

:(

Автор - ovechkin1973
Дата добавления - 16.04.2017 в 19:12
_Boroda_ Дата: Понедельник, 17.04.2017, 00:11 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Set d_ = Intersect(Target, Range("A3").Resize(r1_ - r_ + 1, 8))

1. Я неверно написал, вместо r_ нужно написать r0_. И, если у Вас начало со строки 10, то в макросе 3-я строка r0_= не 3, а 10. Файл перевложил.
2. Под спойлер не нужно, нужно положить код, выделить его и нажать кнопку # (которая рядом с кнопкой fx). А спойлер это только если код большой или если их много, чтобы пост не загромождать, но это не обязательно
К сообщению приложен файл: _3.xlsm (15.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Set d_ = Intersect(Target, Range("A3").Resize(r1_ - r_ + 1, 8))

1. Я неверно написал, вместо r_ нужно написать r0_. И, если у Вас начало со строки 10, то в макросе 3-я строка r0_= не 3, а 10. Файл перевложил.
2. Под спойлер не нужно, нужно положить код, выделить его и нажать кнопку # (которая рядом с кнопкой fx). А спойлер это только если код большой или если их много, чтобы пост не загромождать, но это не обязательно

Автор - _Boroda_
Дата добавления - 17.04.2017 в 00:11
ovechkin1973 Дата: Понедельник, 17.04.2017, 20:31 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
похоже я или совсем не внимателен или еще какой вирус в голове.. приложил шаблон реальной таблицы. Если выходить за диапазон выделенных синей заливкой ячеек - выпадает ошибка.. и если на зеленые ячейки вставать тот же результат, а не хотелось вообще ошибок. Нет что бы сразу нужный файл (с нужной шапкой) приложить... давыеживался.. Ну и код, который закомментирован в приложенном файле есть. Как оба маркроса заставить работать не представляю. Автор кода не я.. помогли люди.. я им нажимая на стрелочки двигаю влево или вправо содержимое ячеек по "кругу"
[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim d_ As Range
    r0_ = 10
    r1_ = Range("AU" & Rows.Count).End(xlUp).Row
    Set d_ = Intersect(Target, Range("A10").Resize(r1_ - r0_ + 1, 45))
    If Not d_ Is Nothing Then
        Range("R1") = Cells(d_(1).Row, "AU").Value
    Else
        Range("R1").ClearContents
    End If
End Sub

'ÇÀÏÎËÍÅÍÈÅ ÌÀÑÑÈÂÀ ÄÀÍÍÛÌÈ ÏÅÐÅÎÄÈ×ÍÎÑÒÈ
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'    On Error Resume Next
'   Application.ScreenUpdating = False
  '  SELEST = Target.Text
'   If Target.Column > 22 And Target.Column < 39 And Target.Row > 10 Then
  '      r = Target.Row
   '     SpinButton1.Visible = False
    '    SpinButton1.Top = Target.Top
     '   SpinButton1.Left = Ëèñò2.Columns(22).Left
  '      SpinButton1.Height = Target.Height
   '     SpinButton1.Width = Ëèñò2.Columns(22).Width
    '    SpinButton1.Visible = True
     '   Call CHANGE_MASSIV(Target)
      ' End If
'End Sub
[/vba]


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщениепохоже я или совсем не внимателен или еще какой вирус в голове.. приложил шаблон реальной таблицы. Если выходить за диапазон выделенных синей заливкой ячеек - выпадает ошибка.. и если на зеленые ячейки вставать тот же результат, а не хотелось вообще ошибок. Нет что бы сразу нужный файл (с нужной шапкой) приложить... давыеживался.. Ну и код, который закомментирован в приложенном файле есть. Как оба маркроса заставить работать не представляю. Автор кода не я.. помогли люди.. я им нажимая на стрелочки двигаю влево или вправо содержимое ячеек по "кругу"
[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim d_ As Range
    r0_ = 10
    r1_ = Range("AU" & Rows.Count).End(xlUp).Row
    Set d_ = Intersect(Target, Range("A10").Resize(r1_ - r0_ + 1, 45))
    If Not d_ Is Nothing Then
        Range("R1") = Cells(d_(1).Row, "AU").Value
    Else
        Range("R1").ClearContents
    End If
End Sub

'ÇÀÏÎËÍÅÍÈÅ ÌÀÑÑÈÂÀ ÄÀÍÍÛÌÈ ÏÅÐÅÎÄÈ×ÍÎÑÒÈ
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'    On Error Resume Next
'   Application.ScreenUpdating = False
  '  SELEST = Target.Text
'   If Target.Column > 22 And Target.Column < 39 And Target.Row > 10 Then
  '      r = Target.Row
   '     SpinButton1.Visible = False
    '    SpinButton1.Top = Target.Top
     '   SpinButton1.Left = Ëèñò2.Columns(22).Left
  '      SpinButton1.Height = Target.Height
   '     SpinButton1.Width = Ëèñò2.Columns(22).Width
    '    SpinButton1.Visible = True
     '   Call CHANGE_MASSIV(Target)
      ' End If
'End Sub
[/vba]

Автор - ovechkin1973
Дата добавления - 17.04.2017 в 20:31
_Boroda_ Дата: Вторник, 18.04.2017, 09:10 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
приложил шаблон реальной таблицы

Нехорошо обманывать


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
приложил шаблон реальной таблицы

Нехорошо обманывать

Автор - _Boroda_
Дата добавления - 18.04.2017 в 09:10
ovechkin1973 Дата: Вторник, 18.04.2017, 16:16 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Не обманывал я, не ожидал, что от конфигурации ячеек, что выше 10-строки будет зависеть что то.. то что неуч - согласен, но не обманывал..


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

Автор - ovechkin1973
Дата добавления - 18.04.2017 в 16:16
_Boroda_ Дата: Вторник, 18.04.2017, 16:21 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А файл-то где? Показывайте


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА файл-то где? Показывайте

Автор - _Boroda_
Дата добавления - 18.04.2017 в 16:21
ovechkin1973 Дата: Вторник, 18.04.2017, 16:52 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
......... многоточие, это мат в отношении себя.. как до домашнего компа доберусь- скину.. не правильно я понял Ваш ответ, про "не хорошо обманывать"


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

Автор - ovechkin1973
Дата добавления - 18.04.2017 в 16:52
ovechkin1973 Дата: Вторник, 18.04.2017, 18:49 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
наконец то "не обманываю"
К сообщению приложен файл: 9051786.xlsm (29.4 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщениенаконец то "не обманываю"

Автор - ovechkin1973
Дата добавления - 18.04.2017 в 18:49
_Boroda_ Дата: Вторник, 18.04.2017, 19:26 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Перепишите 3-ю снизу строку вот так
[vba]
Код
Range("R1:T3").ClearContents
[/vba]
По поводу закомментированного куска - объясните лучше словами что он должен делать и по каким условиям.
И что за макрос или функция CHANGE_MASSIV? У Вас в файле нет такого


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПерепишите 3-ю снизу строку вот так
[vba]
Код
Range("R1:T3").ClearContents
[/vba]
По поводу закомментированного куска - объясните лучше словами что он должен делать и по каким условиям.
И что за макрос или функция CHANGE_MASSIV? У Вас в файле нет такого

Автор - _Boroda_
Дата добавления - 18.04.2017 в 19:26
ovechkin1973 Дата: Вторник, 18.04.2017, 20:15 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Спасибо, доработка 3 строки снизу помогло.
по поводу макроса или функции не скажу.. в экселе практически нуль.. с макросах тем более.. могу только их сохранить на лист или книгу и к кнопке привязать. В том файле, что для примера выложил ничего нет.. в "родном" файле их много и писал их не я.. Возможно я не весь код выложил..моих знаний понять что и где не хватает. Копирую кода побольше, может вам станет тогда понятнее.. Надеюсь, за то, что правила немного нарушил мне на орехи от вас не достанется.. не по теме однако пишу. В конце концов вы модератор и можете все, что нельзя удалить. Обидно только, что код который вы мне написали и код, который был на моем листе начинаются с Private Sub Worksheet_SelectionChange(ByVal Target As Range) и одновременно не работают

[vba]
Код
Перемещение периодичности
Private Sub SpinButton1_Change()
    Dim STATUS As Boolean: STATUS = False
    On Error Resume Next
    If PASS = "12345" Then STATUS = True
    PASS = "12345"
    Application.ScreenUpdating = False
    If SpinButton1.Value = 2 Or SpinButton1.Value + 16 = 999 Then
        Call MsgBox("Ïðåäåë ìàññèâà äîñòãíóò", vbCritical, "Õâàòèò èãðàòüñÿ")
        SpinButton1.Value = 500
        Exit Sub
    End If
    Ëèñò2.Cells(r, 23).Value = array_round(SpinButton1.Value - 15)
    Ëèñò2.Cells(r, 24).Value = array_round(SpinButton1.Value - 14)
    Ëèñò2.Cells(r, 25).Value = array_round(SpinButton1.Value - 13)
    Ëèñò2.Cells(r, 26).Value = array_round(SpinButton1.Value - 12)
    Ëèñò2.Cells(r, 27).Value = array_round(SpinButton1.Value - 11)
    Ëèñò2.Cells(r, 28).Value = array_round(SpinButton1.Value - 10)
    Ëèñò2.Cells(r, 29).Value = array_round(SpinButton1.Value - 9)
    Ëèñò2.Cells(r, 30).Value = array_round(SpinButton1.Value - 8)
    Ëèñò2.Cells(r, 31).Value = array_round(SpinButton1.Value - 7)
    Ëèñò2.Cells(r, 32).Value = array_round(SpinButton1.Value - 6)
    Ëèñò2.Cells(r, 33).Value = array_round(SpinButton1.Value - 5)
    Ëèñò2.Cells(r, 34).Value = array_round(SpinButton1.Value - 4)
    Ëèñò2.Cells(r, 35).Value = array_round(SpinButton1.Value - 3)
    Ëèñò2.Cells(r, 36).Value = array_round(SpinButton1.Value - 2)
    Ëèñò2.Cells(r, 37).Value = array_round(SpinButton1.Value - 1)
    Ëèñò2.Cells(r, 38).Value = array_round(SpinButton1.Value)
    If STATUS = False Then PASS = Empty
End Sub

Заполнение массива данными переодичности
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'   On Error Resume Next
  '  Application.ScreenUpdating = False
   ' SELEST = Target.Text
   ' If Target.Column > 22 And Target.Column < 39 And Target.Row > 10 Then
    '    r = Target.Row
     '   SpinButton1.Visible = False
      '  SpinButton1.Top = Target.Top
       ' SpinButton1.Left = Ëèñò2.Columns(22).Left
       ' SpinButton1.Height = Target.Height
      '  SpinButton1.Width = Ëèñò2.Columns(22).Width
      '  SpinButton1.Visible = True
      '  Call CHANGE_MASSIV(Target)
      ' End If
'End Sub
[/vba]


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеСпасибо, доработка 3 строки снизу помогло.
по поводу макроса или функции не скажу.. в экселе практически нуль.. с макросах тем более.. могу только их сохранить на лист или книгу и к кнопке привязать. В том файле, что для примера выложил ничего нет.. в "родном" файле их много и писал их не я.. Возможно я не весь код выложил..моих знаний понять что и где не хватает. Копирую кода побольше, может вам станет тогда понятнее.. Надеюсь, за то, что правила немного нарушил мне на орехи от вас не достанется.. не по теме однако пишу. В конце концов вы модератор и можете все, что нельзя удалить. Обидно только, что код который вы мне написали и код, который был на моем листе начинаются с Private Sub Worksheet_SelectionChange(ByVal Target As Range) и одновременно не работают

[vba]
Код
Перемещение периодичности
Private Sub SpinButton1_Change()
    Dim STATUS As Boolean: STATUS = False
    On Error Resume Next
    If PASS = "12345" Then STATUS = True
    PASS = "12345"
    Application.ScreenUpdating = False
    If SpinButton1.Value = 2 Or SpinButton1.Value + 16 = 999 Then
        Call MsgBox("Ïðåäåë ìàññèâà äîñòãíóò", vbCritical, "Õâàòèò èãðàòüñÿ")
        SpinButton1.Value = 500
        Exit Sub
    End If
    Ëèñò2.Cells(r, 23).Value = array_round(SpinButton1.Value - 15)
    Ëèñò2.Cells(r, 24).Value = array_round(SpinButton1.Value - 14)
    Ëèñò2.Cells(r, 25).Value = array_round(SpinButton1.Value - 13)
    Ëèñò2.Cells(r, 26).Value = array_round(SpinButton1.Value - 12)
    Ëèñò2.Cells(r, 27).Value = array_round(SpinButton1.Value - 11)
    Ëèñò2.Cells(r, 28).Value = array_round(SpinButton1.Value - 10)
    Ëèñò2.Cells(r, 29).Value = array_round(SpinButton1.Value - 9)
    Ëèñò2.Cells(r, 30).Value = array_round(SpinButton1.Value - 8)
    Ëèñò2.Cells(r, 31).Value = array_round(SpinButton1.Value - 7)
    Ëèñò2.Cells(r, 32).Value = array_round(SpinButton1.Value - 6)
    Ëèñò2.Cells(r, 33).Value = array_round(SpinButton1.Value - 5)
    Ëèñò2.Cells(r, 34).Value = array_round(SpinButton1.Value - 4)
    Ëèñò2.Cells(r, 35).Value = array_round(SpinButton1.Value - 3)
    Ëèñò2.Cells(r, 36).Value = array_round(SpinButton1.Value - 2)
    Ëèñò2.Cells(r, 37).Value = array_round(SpinButton1.Value - 1)
    Ëèñò2.Cells(r, 38).Value = array_round(SpinButton1.Value)
    If STATUS = False Then PASS = Empty
End Sub

Заполнение массива данными переодичности
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'   On Error Resume Next
  '  Application.ScreenUpdating = False
   ' SELEST = Target.Text
   ' If Target.Column > 22 And Target.Column < 39 And Target.Row > 10 Then
    '    r = Target.Row
     '   SpinButton1.Visible = False
      '  SpinButton1.Top = Target.Top
       ' SpinButton1.Left = Ëèñò2.Columns(22).Left
       ' SpinButton1.Height = Target.Height
      '  SpinButton1.Width = Ëèñò2.Columns(22).Width
      '  SpinButton1.Visible = True
      '  Call CHANGE_MASSIV(Target)
      ' End If
'End Sub
[/vba]

Автор - ovechkin1973
Дата добавления - 18.04.2017 в 20:15
_Boroda_ Дата: Вторник, 18.04.2017, 20:43 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Не, ищите что-то с текстом CHANGE_MASSIV
Или
Sub CHANGE_MASSIV
Или
Function CHANGE_MASSIV


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе, ищите что-то с текстом CHANGE_MASSIV
Или
Sub CHANGE_MASSIV
Или
Function CHANGE_MASSIV

Автор - _Boroda_
Дата добавления - 18.04.2017 в 20:43
ovechkin1973 Дата: Вторник, 18.04.2017, 20:44 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
мерси.. спрошу у автора кода, когда он свободнее станет. Еще раз благодарю


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщениемерси.. спрошу у автора кода, когда он свободнее станет. Еще раз благодарю

Автор - ovechkin1973
Дата добавления - 18.04.2017 в 20:44
ovechkin1973 Дата: Четверг, 27.04.2017, 19:53 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Попросил автора кода добавить мой код. Выглядит так. Все работает
[vba]
Код
'ЗАПОЛНЕНИЕ МАССИВА ДАННЫМИ ПЕРИОДИЧНОСТИ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
    On Error Resume Next
    SELEST = Target.Text
    If Target.Column > 22 And Target.Column < 39 And Target.Row > 9 Then
        r = Target.Row
        'ТУТ ВЫРАВНИВАЕМ КОНТРОЛ ПО ВЫБРАННОЙ СТРОКЕ В УКАЗАННОМ ДИАПАЗОНЕ
        SpinButton1.Visible = False
        SpinButton1.Top = Target.Top
        SpinButton1.Left = Лист2.Columns(22).Left
        SpinButton1.Height = Target.Height
        SpinButton1.Width = Лист2.Columns(22).Width
        SpinButton1.Visible = True
        'ЗАПОЛНЕНИЕ МАССИВА ДАННЫМИ ПЕРЕОДИЧНОСТИ
        Call CHANGE_MASSIV(Target)
    End If
    'ВАШ МАКРОС======================================================================
    Dim d_ As Range
    r0_ = 1
    r1_ = Range("AU" & Rows.Count).End(xlUp).Row
    Set d_ = Intersect(Target, Range("A10").Resize(r1_ - r_ + 1, 45))
    If Not d_ Is Nothing Then
        Range("R1") = Cells(d_(1).Row, "AU").Value
    Else
        Range("R1:T3").ClearContents
       
    End If
    '=====================================================================================
End Sub
[/vba]


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеПопросил автора кода добавить мой код. Выглядит так. Все работает
[vba]
Код
'ЗАПОЛНЕНИЕ МАССИВА ДАННЫМИ ПЕРИОДИЧНОСТИ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
    On Error Resume Next
    SELEST = Target.Text
    If Target.Column > 22 And Target.Column < 39 And Target.Row > 9 Then
        r = Target.Row
        'ТУТ ВЫРАВНИВАЕМ КОНТРОЛ ПО ВЫБРАННОЙ СТРОКЕ В УКАЗАННОМ ДИАПАЗОНЕ
        SpinButton1.Visible = False
        SpinButton1.Top = Target.Top
        SpinButton1.Left = Лист2.Columns(22).Left
        SpinButton1.Height = Target.Height
        SpinButton1.Width = Лист2.Columns(22).Width
        SpinButton1.Visible = True
        'ЗАПОЛНЕНИЕ МАССИВА ДАННЫМИ ПЕРЕОДИЧНОСТИ
        Call CHANGE_MASSIV(Target)
    End If
    'ВАШ МАКРОС======================================================================
    Dim d_ As Range
    r0_ = 1
    r1_ = Range("AU" & Rows.Count).End(xlUp).Row
    Set d_ = Intersect(Target, Range("A10").Resize(r1_ - r_ + 1, 45))
    If Not d_ Is Nothing Then
        Range("R1") = Cells(d_(1).Row, "AU").Value
    Else
        Range("R1:T3").ClearContents
       
    End If
    '=====================================================================================
End Sub
[/vba]

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

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