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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 12:48   #1
Mishael
Пользователь
 
Регистрация: 25.06.2012
Сообщений: 11
По умолчанию Создать макрос для автоматического поиска названия по числам

Здравствуйте уважаемые программисты  нужна помощь :

Есть таблица в ней - лист 2 числа, а на листе 1 те же числа но с названиями нужно, что бы программа (макрос) нашла по цифрам названия и поставила в соответствующий столбик к числу на втором листе (образец лист 3), а на месте повторяющихся названий писала повтор ну или ошибка без разницы.
Спасибо заранее за помощь.
Вложения
Тип файла: rar Книга5.rar (4.4 Кб, 19 просмотров)
Mishael вне форума Ответить с цитированием
Старый 17.01.2013, 14:51   #2
Mishael
Пользователь
 
Регистрация: 25.06.2012
Сообщений: 11
По умолчанию

ну помогите же пожалуйста
Mishael вне форума Ответить с цитированием
Старый 17.01.2013, 17:32   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

если правильно понял, немного набросал:

Код:
Option Explicit

Sub Extract_Unique1()
   Dim vItem, arr, x, i&, j&, n&
   Range("D5", Cells(Rows.Count, "E").End(xlUp)).ClearContents
   With CreateObject("Scripting.Dictionary"): .CompareMode = vbTextCompare
      For Each vItem In Sheets("Лист1").Range("B5", Sheets("Лист1").Cells(Rows.Count, "B").End(xlUp)).Value
         If Not .Exists(vItem) And Not IsEmpty(vItem) Then .Item(vItem) = .Item(vItem)
      Next
      ReDim arr(1 To .Count, 1 To 1)
      'If .Count Then [D5].Resize(.Count).Value = Application.WorksheetFunction.Transpose(.Keys)
      If .Count Then arr = Application.WorksheetFunction.Transpose(.Keys)
   End With
   
   x = Sheets("Лист1").Range("A5", Sheets("Лист1").Cells(Rows.Count, "B").End(xlUp)).Value
   
   For i = 1 To UBound(arr)
    For j = 1 To UBound(x)
        If arr(i, 1) = x(j, 2) Then
            n = n + 1
            If n > 1 Then x(j, 1) = "повтор"
        End If
    Next j
    n = 0
   Next i
   
   [D5].Resize(UBound(x), 2).Value = x
   Call Макрос1
End Sub


Sub Макрос1()
'
' Макрос1 Макрос
'

'
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Add Key:=Range("E5", Cells(Rows.Count, "E").End(xlUp)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Range("D5", Cells(Rows.Count, "E").End(xlUp))
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Вложения
Тип файла: rar Книга5.rar (16.2 Кб, 17 просмотров)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 18.01.2013, 15:42   #4
Mishael
Пользователь
 
Регистрация: 25.06.2012
Сообщений: 11
По умолчанию

Станислав большое спасибо. только можно попросить сделать так чтобы (а то я сам недодумаюсь ) сделать чтобы работала не только как в примере на 36 строчек а хотябы строчек на 150, потому чтоданных больше чем в пример.
Еще раз спасибо!!!
Mishael вне форума Ответить с цитированием
Старый 24.03.2014, 16:49   #5
Mishael
Пользователь
 
Регистрация: 25.06.2012
Сообщений: 11
По умолчанию

[QUOTE=Mishael;1168596]Станислав большое спасибо. только можно попросить сделать так чтобы (а то я сам недодумаюсь ) сделать чтобы работала не только как в примере на 36 строчек а хотябы строчек на 150, потому чтоданных больше чем в пример.
Еще раз спасибо!!![/QUOT

Так решения и небыло. Может кто сделает попроше.
Mishael вне форума Ответить с цитированием
Старый 24.03.2014, 17:12   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Смотрю код - там нигде нет ограничения на число строк.
Да и куда уже проще
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.03.2014, 17:23   #7
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Это формулой легко делается (для наглядности все на одном листе).
Вложения
Тип файла: rar Книга5.rar (5.5 Кб, 14 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 25.03.2014, 10:20   #8
Mishael
Пользователь
 
Регистрация: 25.06.2012
Сообщений: 11
По умолчанию

Спасибо большое испробую
Mishael вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать макрос для поиска одинаковой строки по условиям Nick31 Microsoft Office Excel 1 17.05.2012 14:30
Создать заголовок Bootstrap используемый в DHCP для автоматического получения клиентом Ip адреса Aliens_wolfs Работа с сетью в Delphi 1 23.03.2012 14:51
макрос для поиска позиций и вывода данных на лист поиска mr-111 Microsoft Office Excel 12 13.03.2012 15:03
Макрос для поиска и отметки shafl Microsoft Office Excel 6 17.09.2010 10:57
Макрос для поиска/замены Davidoff Microsoft Office Excel 1 20.01.2007 16:01