Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2017, 13:43   #1
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию Получить адрес ячейки

Есть лист1 и лист2. На листе1 есть кнопка, по её нажатию мне нужно найти в таблице на ЛИСТЕ2 ячейку (искать ячейку в таблице по значению которое я знаю заранее), в общем я ВБА не бумбум. Пытаюсь по логики сделать следующее:
1. Применить формулу
Код:
Application.WorksheetFunction.Match(258; Range("G2:G22");0)
(Почему то получаю ошибку, не знаю что я не так передал в аргументах)
2. Применить формулу
Код:
Application.WorksheetFunction.Index
3. Применить формулу "Ячейка", чтобы получить название ячейки(кстати я не знаю как она будет выглядеть на языке ВБА ).
Более подробное описание моей задачи:
На листе №1 нажать кнопку:
1. Вставить функцию ВПР в определенную ячейку - это мне удалось
2. Теперь, в ту ячейку которую нашел ВПР записать данные с другой ячейки.
Собственно все просто для тех кто знает ВБА
vdvshnick вне форума Ответить с цитированием
Старый 02.10.2017, 15:38   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Сообщение от vdvshnick Посмотреть сообщение
(258; Range("G2:G22");0)
Попробуйте заменить току с запятой на запятую
Цитата:
Сообщение от vdvshnick Посмотреть сообщение
все просто для тех кто знает
будет еще проще с файлом-примером.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 02.10.2017, 16:23   #3
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию

от я дурак привык к с++
vdvshnick вне форума Ответить с цитированием
Старый 02.10.2017, 19:10   #4
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
будет еще проще с файлом-примером.
Пожалуйста, вот что мне нужно(главное чтобы все это выполнялось последовательно):
1. На "стр1" в ячейку "EV14" подтянуть значения столбца №7 и строки которая соответствует имени водителя из ячейки "E60", из таблицы на "Лист1".
2. На "стр1" из ячейки "EV15" записать значение в таблицу на "Лист1" в столбец №6, который соответствует имени водителя из ячейки "E60".
Ну и все делов - то -))) Остальное я сам додумаю (но это не точно -)-)-) )
Вложения
Тип файла: rar путевой лист.rar (73.5 Кб, 10 просмотров)

Последний раз редактировалось vdvshnick; 02.10.2017 в 19:13.
vdvshnick вне форума Ответить с цитированием
Старый 03.10.2017, 08:32   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Я просил
Цитата:
Сообщение от kuklp Посмотреть сообщение
с файлом-примером
а не с рабочим файлом с тучей ненужной информации на многих листах, сложным форматированием с ОЯ, с формулами выдающими ошибки, на основании которых надо чего-то рассчитывать. Это Вы знаете что там к чему и как должно быть в результате. А мне во всем этом хламе разбираться недосуг и ни к чему.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 03.10.2017, 10:25   #6
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Я просил а не с рабочим файлом с тучей ненужной информации на многих листах, сложным форматированием с ОЯ, с формулами выдающими ошибки, на основании которых надо чего-то рассчитывать. Это Вы знаете что там к чему и как должно быть в результате. А мне во всем этом хламе разбираться недосуг и ни к чему.
А я Вам и не предлагал разбираться, я конкретно написал от куда искать и куда записывать значения - всего мне нужно сделать код для 2-х ячеек и все, остальное просто фон
vdvshnick вне форума Ответить с цитированием
Старый 03.10.2017, 11:07   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от vdvshnick Посмотреть сообщение
Пожалуйста, вот что мне нужно(главное чтобы все это выполнялось последовательно):
1. На "стр1" в ячейку "EV14" подтянуть значения столбца №7 и строки которая соответствует имени водителя из ячейки "E60", из таблицы на "Лист1".
2. На "стр1" из ячейки "EV15" записать значение в таблицу на "Лист1" в столбец №6, который соответствует имени водителя из ячейки "E60".
Ну и все делов - то -))) Остальное я сам додумаю (но это не точно -)-)-) )
зачем Вам макрос там, где можно легко обойтись формулами?
Будет работать быстро и не надо никаких кнопок нажимать

в ячейку "EV14" вставляетe формулу:
Код:
=ВПР($E$60;Лист1!$A$2:$I$22;7;ЛОЖЬ)
в ячейку "EV15" вставляетe формулу:
Код:
=ВПР($E$60;Лист1!$A$2:$I$22;6;ЛОЖЬ)
всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2017, 11:33   #8
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
зачем Вам макрос там, где можно легко обойтись формулами?
Я и не спорю, я только ЗА ФОРМУЛЫ!!! НО!!! Мне нужно при нажатии на кнопку подтянуть новые покания адометра водителя в ячейку "EV14" из таблицы на "Лист1", затем прибавить к этому значению расход топлива и записать результат в ячейку "EV15" и затем перезаписать на "Лист1" в таблицу новые показатели адометра, то есть нужно единоразовое срабатывание кода, а формулы мне не помогут в этом случае, я б и не обращался к профессионалам...Если Вы знаете способ легче я только ЗА!
vdvshnick вне форума Ответить с цитированием
Старый 03.10.2017, 14:06   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от vdvshnick Посмотреть сообщение
то есть нужно единоразовое срабатывание кода, а формулы мне не помогут в этом случае, я б и не обращался к профессионалам...
я ни разу не профессионал.
и не знаю, как Вы собираетесь обеспечить ЕДИНОРАЗОВОЕ срабатывание кода.

но, раз профессионалы VBA молчат, позволю себе опубликовать здесь свой небольшой дилетантский код.


вместо формул ВПР() можете использовать, например, такой код:
Код:
Sub Номер_путевого_листа()

    'al = Application.WorksheetFunction.VLookup(E_name, Sheet1.Range("B3:D13"), 3, False)
    Dim rowMatch As Variant
    Dim ws As Worksheet, wsList1 As Worksheet

    Set ws = ThisWorkbook.Sheets("стр1")
    Set wsList1 = ThisWorkbook.Sheets("Лист1")

    ws.[cw3] = ws.[cw3] + 1

    On Local Error Resume Next
    rowMatch = Application.WorksheetFunction.Match(ws.[E60], wsList1.Range("A1:A22"), 0)
    If IsError(rowMatch) Or IsEmpty(rowMatch) Then
      MsgBox "Ошибка! Водитель на Лист1 не найден!!"
    Else
      MsgBox "Водитель найден в строке " & rowMatch
      ws.[EV14] = wsList1.Cells(rowMatch, 7)
      ws.[EV15] = wsList1.Cells(rowMatch, 6)
    End If
    'wsList1.[B25] = "еесли надо записать что-то в таблицу на Лист1"
 
End Sub

Цитата:
Сообщение от vdvshnick Посмотреть сообщение
затем прибавить к этому значению расход топлива
кстати, не знаю, где Вы собираетесь брать расход топлива...


Цитата:
Сообщение от vdvshnick Посмотреть сообщение
Вы знаете способ легче я только ЗА!
я бы эту задачу решал совсем с другого конца. Должен быть перечень путевых листов - в них нужно указывать номер ПЛ, водителя, машину, начальные и конечные показания одометра, начальное состояние бака и конечное состояние бака, пункт выезда, пункт назначения, назначение поездки...
ну, и всё, пожалуй, в первом приближении.

исходя из этих данных и можно печатать отчёт о поездке.

Впрочем, возможно, что у Вас совсем другая задача и, разумеется, Вам виднее, как её решать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2017, 15:16   #10
vdvshnick
Новичок
Джуниор
 
Регистрация: 02.10.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы эту задачу решал совсем с другого конца.
Я Вам премного благодарен! То, что Вы написали меня и интересует! Как приеду домой проверю выполняет ли код все действия, которые я так и не смог сделать обычными формулами (((
p.s. Все цифры у меня есть для задачи - я их нарочно стер чтобы Вы не путались, могу дать версию со всеми значениями )
vdvshnick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить значение ячейки имея ее адрес в виде строки bdfy Microsoft Office Excel 3 07.09.2011 12:05
Получить значение ячейки имея ее адрес в виде строки bdfy Microsoft Office Word 0 06.09.2011 22:09
Получить адрес ячейки до нажатия Enter Sergey112233 Microsoft Office Excel 6 23.08.2011 20:02
Не могу получить адрес найденой ячейки в Exel R_Z Microsoft Office Excel 5 13.09.2009 22:06
получить собственный адрес ячейки формулой tolikman Microsoft Office Excel 1 15.06.2009 05:36