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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 14:35   #21
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Ты объясни, что требуется-то...
Какое значение, куда выводить, когда выводить, да и, собственно, зачем...
Валера, ну зачем ты лишний раз заморачиваешься?
Работает, и ладно.
Надо, чтобы искало во всех днях - ставь 30.
Надо, чтобы в поиске участвовали данные только за 9 дней - ставь 8.
Посмотри мой скрин в #13, ты поймешь
Да дело в том, что ставлю вместо 30, восемь и находит во все 31 днях, а семерку в 29 днях
valerij вне форума
Старый 26.01.2009, 14:41   #22
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Вот так будет правильно искать:

Код:
Sub МакросДляБабушки()
    Application.OnKey " ", "ПоискЗначенияНаДругихЛистах"
End Sub

Sub ПоискЗначенияНаДругихЛистах()
    If ActiveCell.Parent.Index <> 1 Then Exit Sub
    If ActiveCell.Column <> 1 Then Exit Sub
    a = Trim$(ActiveCell): If Not a Like "########" Then Exit Sub

    Dim res As Range, ra As Range, u As Range
    For i = 1 To 13
        Set ra = ThisWorkbook.Worksheets(i).[K34:K39]: Set u = ra
        For j = 1 To 30: Set u = Union(u, ra.Offset(j * 51)): Next j

        Set res = u.Find(a, u.Cells(1))
        If Not res Is Nothing Then Application.Goto res: Exit For
    Next
End Sub
Здесь уж точно надо ставить 30.
В прежнем вариант была ошибка.
EducatedFool вне форума
Старый 26.01.2009, 14:44   #23
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
В прежнем вариант была ошибка.
Но он, вариант, великолепно работает, мгновенно, классная ошибка, сей час проверю!

Да, класс!!

А с центром ты понял?

Последний раз редактировалось valerij; 26.01.2009 в 14:55.
valerij вне форума
Старый 26.01.2009, 19:57   #24
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Игорь, вот подправил скрин, все показал!
Может еще так:
У меня на листе видны 24 строки(позиции), так я домагаюсь, что бы найденный, ошибочный результат, выводился в 12 позицию, т. е. это и будет центр экрана.
Может ролик снять?
Конечно, если для это, целый макрос надо писать, тогда фиг с ним, с центром.
Изображения
Тип файла: jpg 2.jpg (59.8 Кб, 138 просмотров)

Последний раз редактировалось valerij; 27.01.2009 в 13:22.
valerij вне форума
Старый 27.01.2009, 01:57   #25
cent
Пользователь
 
Аватар для cent
 
Регистрация: 26.12.2008
Сообщений: 73
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
[OFFTOP]
А что Вы скажете по этому поводу?

скриншот 1
скриншот 2

Никогда не говорите "никогда"
[\OFFTOP]


Игорь, с таким подходом можно даже такое утверждать

Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах
cent вне форума
Старый 28.01.2009, 22:47   #26
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Игорь!
Вот так получилось с Центром, все Супер!
Код:
Sub ПоискЗначенияНаДругихЛистах()
    Application.EnableEvents = False
        If ActiveCell.Parent.Index <> 14 Then Exit Sub
        If ActiveCell.Column <> 1 Then Exit Sub
        a = Trim$(ActiveCell): If Not a Like "########" Then Exit Sub
        Dim res As Range, ra As Range, u As Range, v As Long
        For i = 1 To 13
            Set ra = ThisWorkbook.Worksheets(i).[K34:K39]: Set u = ra
            For j = 1 To 30: Set u = Union(u, ra.Offset(j * 51)): Next j
            Set res = u.Find(a, u.Cells(1))
            If Not res Is Nothing Then
            v = res.Row
            Application.Goto Reference:=res, Scroll:=True
            ActiveWindow.ScrollRow = v - 11: ActiveWindow.ScrollColumn = 1
            Exit For
            End If
        Next
    Application.EnableEvents = True
End Sub
Передаю Огромную Благодарность от моей Бабушки!
Тебе и SAS888

З. Ы.
Это избавило ее крутить колесико(ржу не могу, когда я пытался показать, как колесико надо крутить, это надо видеть)

Последний раз редактировалось valerij; 28.01.2009 в 23:12.
valerij вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По нажатию Enter Andr Общие вопросы Delphi 8 22.12.2008 16:58
Сортировка по нажатию кнопки Nate-p Microsoft Office Access 2 25.06.2008 08:35
Рисование по нажатию клавиши на клавиатуре... zvuk01 Помощь студентам 1 25.12.2007 17:49
Картинка появляется по нажатию кнопки! MAKEDON Общие вопросы Delphi 3 12.12.2007 22:49
переход курсора по нажатию клавиши matus Общие вопросы Delphi 3 22.11.2007 22:33