составить выборку из повторяющихся значений и создать отчет

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

Serge_Bliznykov писал(а):не буду утверждать что прав...
Serge_Bliznykov, Вы гений :D
все отлично, ничего больше не спрашивает ))

Спасибо!
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

Вообщем, мой многострадальный отчет )))) кому интересно

Только вот одна проблемка все-же осталась ((

Если на листе Localizations в колонке Tier стоит значение mp, то в отчете, на листе Localizations_Report в такую же колонку напротив соответствующего названия ничего не ставится.
Причем, если уже в сформированном отчете в пустых ячейках вставить формулу копи_пастом, то mp появляется. Наверно где-то в коде накосячила :)

Может кто-нибудь подскажет?
Вложения
RList11.zip
(48.08 КБ) 61 скачивание
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Смотрю, красиво.
1. Заметил, что mp вставляется как-то странно, т.е. попробовал написать mp в начале списка (в 3 и 7,8 строке) и все появилось в отчете. (пока не проверил - почему)
2. Нужно ли процедуре Yes_Localization задавать жестко 1500 строк, может подсчитать кол-во заполненных строк? IMHO затягивает выполнение отчета. Или может так нужно?
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

VictorM писал(а):Нужно ли процедуре Yes_Localization задавать жестко 1500 строк?
Да вообще, конечно не обязательно, как то я сразу не подумала, что быстрее будет сделать по количеству заполненных строк :) :) :)
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

SunKiSSka,
1.в конце процедур Fill вставьте

Код: Выделить всё

 Case ""
ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
если нет языка, формула не прописывается.
2. Если имя одно - прописывается первое значение Tier. У как у Cub. Этого видимо не избежать.
пока все :rolleyes:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

VictorM,
Вы чудо!
Спасибо! :)
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

ну вот... а не успел про пустой столбец F рассказать...
ну тогда хоть попровочку укажу - включить предупреждение, это присвоить ему True
т.е. в конце надо
Application.DisplayAlerts = True
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

Serge_Bliznykov, спасибо! Крнечно все от невнимательности :)

Еще одна мыслишка появилась: как проверить есть ли в рабочей книге лист с конкретным названием, и если нет, то вставить его (с определенным) названием после определенного листа.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

VictorM, Вы были правы, начальнику понравилось!!!!! :)

Теперь еще одна фишка, может поможет еще чуть-чуть кто-нибудь :) необходимо добавить в получаемый отчет:
в ситуациях, когда в столбце H и в столбце R нет отметок, на отчете для этих Name в соответствии с PRIORITY необходимо ставить слово "Tentative" и желательно окрашивать, например в красный цвет )))

Заменила

Код: Выделить всё

Sub Yes_Localization
O_H = "On Hold"
For n = 3 To 1500
            Range("S" & n).Activate
                If Range("R" & n) = "" Then
                        ActiveCell.FormulaR1C1 = ""
                        Selection.Interior.ColorIndex = xlNone
                    ElseIf Range("R" & n) = O_H Then
                        ActiveCell.FormulaR1C1 = ""
                        Selection.Interior.ColorIndex = xlNone
                    Else: ActiveCell.FormulaR1C1 = "Yes"
                        ActiveCell.Interior.ColorIndex = Range("S2").Interior.ColorIndex
                End If
Next
Range("A2").Select
End Sub
на такой:

Код: Выделить всё

Sub Yes_Localization()
    Dim i As Long
    O_H = "On Hold"
    For i = 3 To Range("B65536").End(xlUp).Row
        If IsEmpty(Cells(i, "R")) Then
            Cells(i, "S") = ""
            Cells(i, "S").Interior.ColorIndex = xlNone
        ElseIf IsEmpty(Cells(i, "R")) And IsEmpty(Cells(i, "H")) Then
            Cells(i, "S") = "Tentative"
            Cells(i, "S").Interior.ColorIndex = 3
            Cells(i, "S").Font.Bold = True
        ElseIf Cells(i, "R") = O_H Then
            Cells(i, "S") = ""
            Cells(i, "S").Interior.ColorIndex = xlNone
        Else: Cells(i, "S") = "Yes"
            Cells(i, "S").Interior.ColorIndex = Range("S2").Interior.ColorIndex
    End If
    Next
End Sub
но результата нет, хотя на листе Localizations есть такие Name, для которых не стоят отметки в столбцах H и R.
Отяпь где то накосячила, но понять не могу. В частности много вариантов пробовала, но все не то.
Вложения
RList11.zip
(44.98 КБ) 51 скачивание
Ответить