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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2013, 12:33   #1
ReVer273
 
Регистрация: 18.01.2013
Сообщений: 7
По умолчанию Поиск данных и вывод отдельную ячейку

Здравствуйте. Подскажите пожалуйста

Имею таблицу, обновляющуюся из интернета(в приложение).
1)Нужно выполнить поиск по позициям в столбце "Цена" <=0.75.
2)Из найденных 4 позиций нужно нужно выполнить поиск по столбцу "Количество" и в отдельный столбец перенести те значения, которые больше 0 (т.е. F4 и F7)
Вложения
Тип файла: rar таблица1.rar (4.6 Кб, 13 просмотров)
ReVer273 вне форума Ответить с цитированием
Старый 18.01.2013, 14:32   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

так подойдет?:

Код:
Option Explicit

Sub aaa()
Dim i&, a, b
Range("G3:G7").ClearContents
a = Range("E3:F7").Value
ReDim b(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
    If a(i, 1) <= "0,75" Then
        b(i, 1) = a(i, 2)
    Else
        b(i, 1) = "xxx"
    End If
Next i
[G3].Resize(UBound(b)).Value = b
End Sub
Вложения
Тип файла: rar таблица1.rar (8.2 Кб, 12 просмотров)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 18.01.2013, 15:12   #3
ReVer273
 
Регистрация: 18.01.2013
Сообщений: 7
По умолчанию

Спасибо. Уже стало легче.
А можно как нибудь сделать, чтобы скрипт захватывал весь диапазон E:F, т.к. данные с интернета появляются в хаотичном порядке.

От Нулей никак нельзя избавиться? )

А также добавить настройку обновления макроса каждые 5 минут?
ReVer273 вне форума Ответить с цитированием
Старый 18.01.2013, 16:00   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

тогда так наверное:

это в модуль:
Код:
Option Explicit

Sub aaa()
Dim i&, a, b
Range("G3", Cells(Rows.Count, "G").End(xlUp)).ClearContents
a = Range("E3", Cells(Rows.Count, "F").End(xlUp)).Value
ReDim b(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
    If a(i, 1) <= "0,75" And a(i, 2) <> 0 Then
        b(i, 1) = a(i, 2)
    Else
        b(i, 1) = ""
    End If
Next i
[G3].Resize(UBound(b)).Value = b
Application.OnTime Now + TimeValue("00:05:00"), "aaa"
End Sub
а это в модуль книги:

Код:
Option Explicit

Private Sub Workbook_Open()
Call aaa
End Sub

Добавлено позже
или лучше в место :
Код:
 b(i, 1) = ""
поставить так:
Код:
b(i, 1) = b(i, 1)
Вложения
Тип файла: rar таблица1.rar (10.1 Кб, 16 просмотров)
Единственный способ стать умнее, играть с более умным противником...

Последний раз редактировалось staniiislav; 18.01.2013 в 16:07.
staniiislav вне форума Ответить с цитированием
Старый 18.01.2013, 16:45   #5
ReVer273
 
Регистрация: 18.01.2013
Сообщений: 7
По умолчанию

Спасибо Большое за помощь )))

Интересно, а есть возможность добавить звуковой сигнал к появлению значения больше 0? )

Последний раз редактировалось ReVer273; 18.01.2013 в 16:55. Причина: добавил
ReVer273 вне форума Ответить с цитированием
Старый 18.01.2013, 18:49   #6
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от ReVer273 Посмотреть сообщение
Спасибо Большое за помощь )))

Интересно, а есть возможность добавить звуковой сигнал к появлению значения больше 0? )
))) наверное можно
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 18.01.2013, 18:56   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

А вот здесь написано, как добавить звуковой сигнал одной строкой кода:
http://excelvba.ru/code/beeps
EducatedFool вне форума Ответить с цитированием
Старый 18.01.2013, 19:02   #8
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Код:
Option Explicit

Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

Sub aaa()
Dim i&, n&, a, b
Range("G3", Cells(Rows.Count, "G").End(xlUp)).ClearContents
a = Range("E3", Cells(Rows.Count, "F").End(xlUp)).Value
ReDim b(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
    If a(i, 1) <= "0,75" And a(i, 2) <> 0 Then
        b(i, 1) = a(i, 2): n = n + 1
    Else
        b(i, 1) = b(i, 1)
    End If
Next i
[G3].Resize(UBound(b)).Value = b
If n > 0 Then mciExecute ("Play C:\Windows\Media\tada.wav")
Application.OnTime Now + TimeValue("00:05:00"), "aaa"
End Sub
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 18.01.2013, 19:47   #9
ReVer273
 
Регистрация: 18.01.2013
Сообщений: 7
По умолчанию

Работает. Все отлично! Спасибо )
ReVer273 вне форума Ответить с цитированием
Старый 18.01.2013, 21:54   #10
ReVer273
 
Регистрация: 18.01.2013
Сообщений: 7
По умолчанию

Возникла проблема.
Я работаю с 4 листами. Во 2, 3 и 4 из них я вставил код в модуль Листа.
В первом я веду подсчеты, но там макрос тоже заменяет значение ячейки G

Как можно присвоить макрос только к "Лист1", "Лист2", "Лист3" ?
ReVer273 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод данных в ячейку с возможностью выбора типа google поиск slone2179 Microsoft Office Excel 2 30.01.2012 21:35
Вывод на отдельную страницу 7hp PHP 0 21.09.2011 17:09
Извлечение нескольких строк из базы данных в отдельную ячейку. Проблема. MF-er Microsoft Office Excel 12 20.07.2011 08:32
Вывод данных в ячейку botaniq09 Компоненты Delphi 4 13.04.2011 12:55
вывести префикс соответствующий номеру телефона в отдельную ячейку kutt Microsoft Office Excel 5 11.08.2008 21:07