Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск значений и вывод их в опред. формате в другую таблицу - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значений и вывод их в опред. формате в другую таблицу (Макросы/Sub)
Поиск значений и вывод их в опред. формате в другую таблицу
ASWP Дата: Среда, 13.06.2018, 19:19 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день. Не знаю даже как правильно сформулировать данную задачу. Возможно ли сделать макрос, который будет искать значения по определенным словам в соседней ячейке, на листе 2, и выводить их в определенном формате и порядке, в таблицу на листе 3(там уже пример готовой таблицы)?
К сообщению приложен файл: otchet-il.xlsm(26.9 Kb)


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Среда, 13.06.2018, 19:35
 
Ответить
СообщениеДобрый день. Не знаю даже как правильно сформулировать данную задачу. Возможно ли сделать макрос, который будет искать значения по определенным словам в соседней ячейке, на листе 2, и выводить их в определенном формате и порядке, в таблицу на листе 3(там уже пример готовой таблицы)?

Автор - ASWP
Дата добавления - 13.06.2018 в 19:19
_Boroda_ Дата: Среда, 13.06.2018, 21:22 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Обратите внимание, что я переписал Вам кодовые имена листов
[vba]
Код
Sub Nomera()
    With shSpis
        r1_ = .Cells(.Rows.Count, 1).End(3).Row
        If .Cells(r1_, 1) = "" Then Exit Sub
        ar = .Cells(1).Resize(r1_, 3)
    End With
    r0_ = 4
    r11_ = Cells(Rows.Count, 1).End(3).Row
    If r11_ >= r0_ Then
        Cells(r0_, 1).Resize(r11_ - r0_ + 1, 3).ClearContents
    End If
    ReDim ar1(1 To r1_, 1 To 3)
    f_ = "000\ 000\ 000"
    For k = 1 To 3
        ar1(1, k) = Format(ar(1, k), f_)
    Next k
    n_ = 1
    For i = 2 To r1_
        If ar(i, 2) = ar1(n_, 2) And ar(i, 3) = ar1(n_, 3) Then
            ar1(n_, 1) = Left(ar1(n_, 1), 11) & " - " & Format(ar(i, 1), "000\ 00\ 0000")
        Else
            n_ = n_ + 1
            For k = 1 To 3
                ar1(n_, k) = Format(ar(i, k), f_)
            Next k
        End If
    Next i
    Cells(r0_, 1).Resize(n_, 3) = ar1
End Sub
[/vba]
К сообщению приложен файл: otchet-il_1.xlsm(28.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Обратите внимание, что я переписал Вам кодовые имена листов
[vba]
Код
Sub Nomera()
    With shSpis
        r1_ = .Cells(.Rows.Count, 1).End(3).Row
        If .Cells(r1_, 1) = "" Then Exit Sub
        ar = .Cells(1).Resize(r1_, 3)
    End With
    r0_ = 4
    r11_ = Cells(Rows.Count, 1).End(3).Row
    If r11_ >= r0_ Then
        Cells(r0_, 1).Resize(r11_ - r0_ + 1, 3).ClearContents
    End If
    ReDim ar1(1 To r1_, 1 To 3)
    f_ = "000\ 000\ 000"
    For k = 1 To 3
        ar1(1, k) = Format(ar(1, k), f_)
    Next k
    n_ = 1
    For i = 2 To r1_
        If ar(i, 2) = ar1(n_, 2) And ar(i, 3) = ar1(n_, 3) Then
            ar1(n_, 1) = Left(ar1(n_, 1), 11) & " - " & Format(ar(i, 1), "000\ 00\ 0000")
        Else
            n_ = n_ + 1
            For k = 1 To 3
                ar1(n_, k) = Format(ar(i, k), f_)
            Next k
        End If
    Next i
    Cells(r0_, 1).Resize(n_, 3) = ar1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 13.06.2018 в 21:22
ASWP Дата: Среда, 13.06.2018, 23:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Так нужно?
Да, все отлично работает. С имена тоже разобрался. Спасибо.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение
Так нужно?
Да, все отлично работает. С имена тоже разобрался. Спасибо.

Автор - ASWP
Дата добавления - 13.06.2018 в 23:08
ASWP Дата: Пятница, 15.06.2018, 08:22 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день. А можно сделать, чтобы макрос работал только с выделенной областью, т.е. мы вручную выделяем часть таблицы, и макрос работает только с ней?


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Пятница, 15.06.2018, 08:23
 
Ответить
СообщениеДобрый день. А можно сделать, чтобы макрос работал только с выделенной областью, т.е. мы вручную выделяем часть таблицы, и макрос работает только с ней?

Автор - ASWP
Дата добавления - 15.06.2018 в 08:22
_Boroda_ Дата: Пятница, 15.06.2018, 10:02 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Конечно можно
Теперь у Вас в файле 2 кнопки - "Загрузить все номера" и "Загрузить выделенные номера"
К сообщению приложен файл: otchet-il_3.xlsm(33.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКонечно можно
Теперь у Вас в файле 2 кнопки - "Загрузить все номера" и "Загрузить выделенные номера"

Автор - _Boroda_
Дата добавления - 15.06.2018 в 10:02
ASWP Дата: Пятница, 15.06.2018, 17:51 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо, но я опять упустил еще один момент, информация будет вставляться частями, и поэтому нужно, чтобы она добавлялась в следующую пустую строчку, на 3 листе. Я попробовал сам это сделать, но ни чего не получилось.


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Пятница, 15.06.2018, 17:58
 
Ответить
Сообщение_Boroda_, Спасибо, но я опять упустил еще один момент, информация будет вставляться частями, и поэтому нужно, чтобы она добавлялась в следующую пустую строчку, на 3 листе. Я попробовал сам это сделать, но ни чего не получилось.

Автор - ASWP
Дата добавления - 15.06.2018 в 17:51
_Boroda_ Дата: Пятница, 15.06.2018, 18:02 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще раз и как-то поконкретнее. Я не совсем понял


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще раз и как-то поконкретнее. Я не совсем понял

Автор - _Boroda_
Дата добавления - 15.06.2018 в 18:02
ASWP Дата: Пятница, 15.06.2018, 18:12 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Я про то, чтобы когда мы загружаем выделенные номера, информация вставлялась в конец списка, и уже добавленные номера не стирались.


я знаю что ничего не знаю, но другие не знают и этого
 
Ответить
Сообщение_Boroda_, Я про то, чтобы когда мы загружаем выделенные номера, информация вставлялась в конец списка, и уже добавленные номера не стирались.

Автор - ASWP
Дата добавления - 15.06.2018 в 18:12
_Boroda_ Дата: Пятница, 15.06.2018, 18:25 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, теперь понятно
Держите, но за пересечением номеров кто смотреть будет? Сначала выделили строки 1-5, загрузили, потом строки 4-9, загрузили. Строки 4 и 5 задвоились. Перепроверять это на ходу не так-то просто. Разве что метку ставить в списке.
Но здесь еще другая проблема - вот Вы сделали выгрузку строк 5-7, а потом строк 8-9. И получились у Вас две строки
010 577 075 - 010 57 7077
010 577 078 - 010 57 7079
А нужно одну
010 577 075 - 010 57 7079
Поэтому гораздо лучше пользоваться макросом с кнопкой на листе Отчет и каждый раз перезагружать весь объем
К сообщению приложен файл: otchet-il_4.xlsm(31.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, теперь понятно
Держите, но за пересечением номеров кто смотреть будет? Сначала выделили строки 1-5, загрузили, потом строки 4-9, загрузили. Строки 4 и 5 задвоились. Перепроверять это на ходу не так-то просто. Разве что метку ставить в списке.
Но здесь еще другая проблема - вот Вы сделали выгрузку строк 5-7, а потом строк 8-9. И получились у Вас две строки
010 577 075 - 010 57 7077
010 577 078 - 010 57 7079
А нужно одну
010 577 075 - 010 57 7079
Поэтому гораздо лучше пользоваться макросом с кнопкой на листе Отчет и каждый раз перезагружать весь объем

Автор - _Boroda_
Дата добавления - 15.06.2018 в 18:25
ASWP Дата: Пятница, 15.06.2018, 19:11 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, все отлично работает. Нет, здесь не много другая проблема, и поэтому я решил что будет лучше использовать выделение.
Номера будут иногда идти не по порядку, например


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Пятница, 15.06.2018, 19:12
 
Ответить
СообщениеСпасибо, все отлично работает. Нет, здесь не много другая проблема, и поэтому я решил что будет лучше использовать выделение.
Номера будут иногда идти не по порядку, например

Автор - ASWP
Дата добавления - 15.06.2018 в 19:11
_Boroda_ Дата: Пятница, 15.06.2018, 19:24 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Блин, да что ж все клещами-то вытягивать? Можно подумать, что это мне нужно, а не Вам
Держите
К сообщению приложен файл: otchet-il_5.xlsm(33.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеБлин, да что ж все клещами-то вытягивать? Можно подумать, что это мне нужно, а не Вам
Держите

Автор - _Boroda_
Дата добавления - 15.06.2018 в 19:24
ASWP Дата: Пятница, 15.06.2018, 20:09 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 44
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо, у меня просто очень много разных вопросов, и я не хотел вас сильно загружать,думал что это сложная задача, а получилось наоборот


я знаю что ничего не знаю, но другие не знают и этого

Сообщение отредактировал ASWP - Пятница, 15.06.2018, 20:19
 
Ответить
Сообщение_Boroda_, Спасибо, у меня просто очень много разных вопросов, и я не хотел вас сильно загружать,думал что это сложная задача, а получилось наоборот

Автор - ASWP
Дата добавления - 15.06.2018 в 20:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значений и вывод их в опред. формате в другую таблицу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!