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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 17:52   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Копирование и оповещение можно сделать макросом http://hugo.nxt.ru/CompareFiles.Find.rar
В настройках указываете что с чем сравнивать, что куда копировать, куда писать пометки о парах. Этот файл можно с этими настройками сохранить для следующего раза.
В самом рабочем файле макросы не нужны.
Но 15 раз бесплатно, потом ставите пиво

Файл - приёмник: C:\tmp\Bumek\Bumek Copy of Xl0000073.xls
Файл - источник: C:\tmp\Bumek\Bumek Copy of Xl0000073.xls
Столбцы сравнения в приёмнике: b
Столбцы сравнения в источнике: d
Лист - приёмник (№): 1
Лист - источник (№): 2
Столбцы - приёмники данных копирования: g,e,f
Столбцы - источники данных копирования: g,p,l
Столбец для пометок в приёмнике: v
Столбец для пометок в источнике: v


Хотя Ваш макрос тоже несложно наладить...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 07.12.2011 в 18:10.
Hugo121 вне форума Ответить с цитированием
Старый 07.12.2011, 18:19   #12
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

Спасибо, помогло. Подскажите еще пожалуйста, заменил часть кода
Код:
Sub Сверка()  'Вставка расхода'
    Dim a As Range
    Set a = Range("A1:A10") 'Обрабатываемый диапазон'
    Call SearchID(a)
End Sub
Sub SearchID(diap As Range)
    Dim BaseDiap As Range, x As Range, c As Range
    
    Set BaseDiap = Range("C1:C10")  'Диапазон с исходными данными'
    For Each x In diap
        Set c = BaseDiap.Find(What:=x.Value, LookIn:=xlValues, LookAt:=xlWhole)
            If Not Intersect(Range("A1"), Range("C1:C10")) Is Nothing Then
                MsgBox "Все ячейки входят в диапазон"
            Else
                MsgBox "Ячейка " & Cells(x.Row, x.Column) & " невходит в диапазон"
            End If
    Next x
End Sub
чтобы мне выскакивали сообщения с текстом ячеек которых нет в обрабатываемом диапазоне, но есть в диапазоне с исходящими данными. А мне на все ячейки пишет что они отсутствуют, выдает даже на пустые. Подскажите что надо изменить
Bumek вне форума Ответить с цитированием
Старый 07.12.2011, 21:55   #13
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

Спасибо за помощь, немного подумав и построив логическую цепочку работы макроса, даже не зная что и как у меня получилось, правда конечно не все, но уведомления выскакивают))))))) Спасибо!!
Bumek вне форума Ответить с цитированием
Старый 28.03.2012, 21:03   #14
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

Возвращаюсь к этой теме... Пытаюсь произвести поиск и загрузку данных из другой книги, которая открыта, но выдаются ошибки, вроде все прописал, почему не работает незнаю... вот код.... помогите пожалуйста...

Код:
Sub Zagruzka()
    Dim a As Range
    Set a = Range("Гар.№_" & ActiveSheet.Name) 'Диапазон Что ищем'
    Call SearchID(a)
End Sub
Sub SearchID(diap As Range)
    Dim BaseDiap As Range, x As Range, c As Range
    
    Set BaseDiap = Workbook("тэп_" & ActiveSheet.Name & "_" & Forma.ComboBox1.Value & ".xls").Sheets(1).Range("D5:D600") 'Диапазон Где ищем'
    For Each x In diap
        Set c = BaseDiap.Find(What:=x.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If Not (c Is Nothing) Then
            'Если что-то нашли то копируем значение из соседнего столбца'
            Cells(x.Row, x.Column + 1).Value = Workbook("тэп_" & ActiveSheet.Name & "_" & Forma.ComboBox1.Value & ".xls").Sheets(1).Cells(c.Row, c.Column + 1).Value    
            Cells(x.Row, x.Column + 2).Value = Workbook("тэп_" & ActiveSheet.Name & "_" & Forma.ComboBox1.Value & ".xls").Sheets(1).Cells(c.Row, c.Column + 2).Value     
            Cells(x.Row, x.Column + 3).Value = Workbook("тэп_" & ActiveSheet.Name & "_" & Forma.ComboBox1.Value & ".xls").Sheets(1).Cells(c.Row, c.Column + 3).Value     
        End If
    Next x
    MsgBox "Подстановка значений завершена"
End Sub
Bumek вне форума Ответить с цитированием
Старый 30.03.2012, 16:27   #15
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

помогите пожалуйста разобраться в причине неработы макроса...
Bumek вне форума Ответить с цитированием
Старый 30.03.2012, 18:02   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ошибки...
надо написать в какой строке и какая ошибка.
c ведь нашли уже, в той, открытой книге, чего бы им не воспользоваться:
Код:
            x.offset(0,1).Value = c.offset(0,1).Value    
            x.offset(0,2).Value = c.offset(0,2).Value     
            x.offset(0,3).Value = c.offset(0,3).Value
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.04.2012, 21:31   #17
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

Сделал как вы написали, спасибо, заметно экономнее получается, но ошибка не исчезла. При выполнении кода выделяет желтой заливкой текст
Код:
Sub SearchID12(diap As Range)
а также слово Workbook в строке
Код:
Set BaseDiap = Workbook("тэп_" & ActiveSheet.Name & "_" & Forma.ComboBox1.Value & ".xls").Sheets(1).Range("D5:D600")
и выдает ошибку с текстом Sub or Function not defined.
подскажите что не так. Как я понимаю необходимо задать еще условие в макрос... помогите пожалуйста...
Bumek вне форума Ответить с цитированием
Старый 02.04.2012, 21:35   #18
Bumek
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 11
По умолчанию

получается что копируем с книги (открытой) название которое определяется названием активного листа и выбранным параметром из комбобокса формы...
Bumek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от значения в ComboBox1 выводить значения в ComboBox2 LeX2009 БД в Delphi 14 21.05.2010 16:49
Подстановка значения переменной как поле записи Noktikus Общие вопросы Delphi 2 17.04.2010 18:01
Автоматическая подстановка значения. Baloo007 Microsoft Office Excel 2 08.07.2009 10:37
Подстановка значения в переменную из текстового файла. Niodar Общие вопросы Delphi 2 22.03.2009 19:34
Автоматическая подстановка последнего значения d_yure Microsoft Office Excel 9 28.12.2007 08:30