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

Вход

Регистрация

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

 

= Мир MS Excel/Измененение кода VBA по значению выбираемой ячейки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Измененение кода VBA по значению выбираемой ячейки (Макросы/Sub)
Измененение кода VBA по значению выбираемой ячейки
Leviven Дата: Понедельник, 24.08.2020, 13:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день, уважаемые форумчане! Столкнулся со следующей проблемой. Имеется макрос choose_data, который вводит формулу в диапазон B8:B108 листа "Терапевтическое". Он работает. Возникла необходимость вносить изменения в эту формулу в нем, в зависимости от выбранных дат на листе "Контроль". В частности, речь идет о выборе файла с названием выбранной даты (например, 01_1.xlsm или 24_11.xlsm). Пробовал в макросе choose_formula дать имя выбираемому диапазону - m и вставить его в эту формулу. Он не работает. Ругается желтым на формулу. Что-то делаю не так. Прошу помочь.
К сообщению приложен файл: Prob.xlsm(20.9 Kb)
 
Ответить
СообщениеДобрый день, уважаемые форумчане! Столкнулся со следующей проблемой. Имеется макрос choose_data, который вводит формулу в диапазон B8:B108 листа "Терапевтическое". Он работает. Возникла необходимость вносить изменения в эту формулу в нем, в зависимости от выбранных дат на листе "Контроль". В частности, речь идет о выборе файла с названием выбранной даты (например, 01_1.xlsm или 24_11.xlsm). Пробовал в макросе choose_formula дать имя выбираемому диапазону - m и вставить его в эту формулу. Он не работает. Ругается желтым на формулу. Что-то делаю не так. Прошу помочь.

Автор - Leviven
Дата добавления - 24.08.2020 в 13:46
Leviven Дата: Понедельник, 24.08.2020, 13:55 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Получается только вот таким кодом изменять уже вставленный результат на требуемый. [vba]
Код
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="[01_1.xlsm]", Replacement:="[24_11.xlsm]", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
[/vba]Но каждый раз вручную менять код, тем более пользователю...не пойдет
 
Ответить
СообщениеПолучается только вот таким кодом изменять уже вставленный результат на требуемый. [vba]
Код
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="[01_1.xlsm]", Replacement:="[24_11.xlsm]", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
[/vba]Но каждый раз вручную менять код, тем более пользователю...не пойдет

Автор - Leviven
Дата добавления - 24.08.2020 в 13:55
Nic70y Дата: Понедельник, 24.08.2020, 14:35 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 6526
Репутация: 1437 ±
Замечаний: 0% ±

ru13;10;03
абсолютно не вижу смысла в Вашей формуле,
но то 3-е.
[vba]
Код
ActiveCell.FormulaLocal = "='D:\METOD\ДВИЖЕНИЕ\2020\Data\" & Sheets("Контроль").Range("q2") & "\[" & Sheets("Контроль").Range("s2") & ".xlsm]Терапевтическое'!$Q$8:$Q$108"
[/vba]


Яндекс Деньги 41001841029809
 
Ответить
Сообщениеабсолютно не вижу смысла в Вашей формуле,
но то 3-е.
[vba]
Код
ActiveCell.FormulaLocal = "='D:\METOD\ДВИЖЕНИЕ\2020\Data\" & Sheets("Контроль").Range("q2") & "\[" & Sheets("Контроль").Range("s2") & ".xlsm]Терапевтическое'!$Q$8:$Q$108"
[/vba]

Автор - Nic70y
Дата добавления - 24.08.2020 в 14:35
Leviven Дата: Понедельник, 24.08.2020, 14:54 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - Leviven
Дата добавления - 24.08.2020 в 14:54
Nic70y Дата: Понедельник, 24.08.2020, 14:56 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 6526
Репутация: 1437 ±
Замечаний: 0% ±

ru13;10;03
Leviven, я не о том, о чем Вы написали выше,
я об этом: $Q$8:$Q$108


Яндекс Деньги 41001841029809
 
Ответить
СообщениеLeviven, я не о том, о чем Вы написали выше,
я об этом: $Q$8:$Q$108

Автор - Nic70y
Дата добавления - 24.08.2020 в 14:56
Leviven Дата: Понедельник, 24.08.2020, 17:01 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Nic70y, Я прислал только пример. На листе "Терапевтическое" выбираемого файла диапазон Q8:Q108 как раз и содержит подключаемую информацию.
 
Ответить
СообщениеNic70y, Я прислал только пример. На листе "Терапевтическое" выбираемого файла диапазон Q8:Q108 как раз и содержит подключаемую информацию.

Автор - Leviven
Дата добавления - 24.08.2020 в 17:01
Leviven Дата: Вторник, 25.08.2020, 09:46 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Nic70y, Добрый день! Прошу прощения за навязчивость, но вот не могу понять, почему смена месяца макросом choose_m прекрасно работает, замена дня кодом Proba тоже работает. А вот макрос choose_dt по выбору из ячейки T2 никак не хочет работать. Вот рабочий макрос: [vba]
Код
Sub Proba()
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="1'!", Replacement:="27'!", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
Sheets("Контроль").Select
End Sub
[/vba] А этот не работает: [vba]
Код
Sub choose_dt()
Sheets("Контроль").Select
Dim m As Range
Set m = Range("T2")
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="[1'!]", Replacement:="[" & m & "'!]", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
Sheets("Контроль").Select
End Sub
[/vba]
К сообщению приложен файл: Prob-1.xlsm(25.0 Kb)
 
Ответить
СообщениеNic70y, Добрый день! Прошу прощения за навязчивость, но вот не могу понять, почему смена месяца макросом choose_m прекрасно работает, замена дня кодом Proba тоже работает. А вот макрос choose_dt по выбору из ячейки T2 никак не хочет работать. Вот рабочий макрос: [vba]
Код
Sub Proba()
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="1'!", Replacement:="27'!", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
Sheets("Контроль").Select
End Sub
[/vba] А этот не работает: [vba]
Код
Sub choose_dt()
Sheets("Контроль").Select
Dim m As Range
Set m = Range("T2")
For Each ws In Worksheets
ws.Activate
    Cells.Replace What:="[1'!]", Replacement:="[" & m & "'!]", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Next ws
Sheets("Контроль").Select
End Sub
[/vba]

Автор - Leviven
Дата добавления - 25.08.2020 в 09:46
Leviven Дата: Вторник, 25.08.2020, 13:35 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем большое спасибо! Разобрался. Заменил строку:[vba]
Код
Cells.Replace What:="[1'!]", Replacement:="[" & m & "'!]", LookAt _
[/vba] На [vba]
Код
Cells.Replace What:="1'!", Replacement:="" & m & "'!", LookAt _
[/vba] Все работает
 
Ответить
СообщениеВсем большое спасибо! Разобрался. Заменил строку:[vba]
Код
Cells.Replace What:="[1'!]", Replacement:="[" & m & "'!]", LookAt _
[/vba] На [vba]
Код
Cells.Replace What:="1'!", Replacement:="" & m & "'!", LookAt _
[/vba] Все работает

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

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