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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 11:57   #1
danika24
Пользователь
 
Регистрация: 20.07.2011
Сообщений: 47
По умолчанию ПОИСК И ВСТАВКА НА ДРУГОЙ ЛИСТ

Нужен макрос для вот этого файла,
тот что есть на форуме с похожей темой не работает помогите очень надо.
Надо чтобы он искал в ячейке А название района (с возможностью выбора района) допустий волжский и переносил строку на другой лист.
Вложения
Тип файла: rar Книга1.rar (1.6 Кб, 18 просмотров)
danika24 вне форума Ответить с цитированием
Старый 14.02.2012, 15:02   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

создайте лист2, вот это в модуль листа 2 в В1 пишете, что искать.
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim r As Long, rg As Range, rg1 As Range
  If Target.Count > 1 Or Target.Address <> "$B$1" Then Exit Sub
  Range(Cells(2, 1), Cells(1 + WorksheetFunction.CountA([A:A]), 3)).ClearContents
  With Sheets(1)
    On Error Resume Next: r = 2
    Set rg = .[A:A].Find(Target, LookIn:=xlValues, Lookat:=xlPart): Set rg1 = rg
    Do While Err.Number = 0
      If Err.Number = 0 Then
        rg.Resize(1, 3).Copy Cells(r, 1): r = r + 1
      End If
      Set rg = .[A:A].Find(Target, rg, LookIn:=xlValues, Lookat:=xlPart)
      If rg.Address = rg1.Address Then Exit Do
    Loop
  End With
  Err.Clear: On Error GoTo 0
  MsgBox "Íàéäåíî " & r - 2 & " øò.", vbOKOnly, "Ãîòîâî"
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.02.2012, 16:13   #3
danika24
Пользователь
 
Регистрация: 20.07.2011
Сообщений: 47
По умолчанию

Спасибо но что написано в MsgBox "Íàéäåíî " & r - 2 & " øò.", vbOKOnly, "Ãîòîâî" и в "$B$1" вместо В поставить а все остально оставить или в кавычках все заменить на то что надо,если все заменить не получается.
danika24 вне форума Ответить с цитированием
Старый 14.02.2012, 16:45   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

там написано найдено столько-то шт. - информация не принципиальная для работы макроса (это отчет для оператора)
Вложения
Тип файла: rar КнигаR779.rar (26.4 Кб, 43 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.02.2012, 07:30   #5
danika24
Пользователь
 
Регистрация: 20.07.2011
Сообщений: 47
По умолчанию

СПАСИБО ОГРОМНОЕ !!!!!!!!!!!!!!!!!!!
danika24 вне форума Ответить с цитированием
Старый 15.02.2012, 13:40   #6
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Здравствуйте! А можно сделать, чтобы поиск был до полного совпадения?
slone2179 вне форума Ответить с цитированием
Старый 15.02.2012, 14:03   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

можно.
замените
Set rg = .[A:A].Find(Target, LookIn:=xlValues, Lookat:=xlPart)
на
Set rg = .[A:A].Find(Target, LookIn:=xlValues, Lookat:=xlWhole)
(в двух местах)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 15.02.2012 в 14:05.
IgorGO вне форума Ответить с цитированием
Старый 15.02.2012, 14:14   #8
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Спасибо большое! А я пишу xlWhole после запятой, вместо Lookat. Ну как я сам не допер?
slone2179 вне форума Ответить с цитированием
Старый 15.02.2012, 14:16   #9
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

А почему он не пишет, что найдено 0 штук?
slone2179 вне форума Ответить с цитированием
Старый 15.02.2012, 15:38   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от slone2179 Посмотреть сообщение
А почему он не пишет, что найдено 0 штук?
Может, потому, что искомый текст встречается в просматриваемой области именно 0 раз?
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка ImageMso как рисунок, на лист. WizarD.89 Microsoft Office Excel 0 28.04.2011 15:45
Поиск повторяющегося значения и вывод его на другой лист tissot Microsoft Office Excel 6 20.01.2011 19:23
поиск и перенос на другой лист. artssp Microsoft Office Excel 34 01.12.2010 05:58
Поиск проблемных значений и вставка строк в другой документ Excel Gvaridos Microsoft Office Excel 3 27.10.2010 10:24
Поиск и вывод результата на другой лист!!! Ilnour1986 Microsoft Office Excel 12 23.10.2009 11:38