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

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

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

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

SunKiSSka,
начальнику понравилось!!!!!
рад за Вас! :)
2. Если я Вас правильно понял (исходя из опубликованного кода) должно быть так:

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

 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")) And IsEmpty(Cells(i, "H")) Then 'поменять местами условие
            Cells(i, "S") = "Tentative"
            Cells(i, "S").Interior.ColorIndex = 3
            Cells(i, "S").Font.Bold = True
        ElseIf IsEmpty(Cells(i, "R")) Then
            Cells(i, "S") = ""
            Cells(i, "S").Interior.ColorIndex = xlNone
        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
p.s. я там еще недосмотрел, смотрите файл
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

VictorMспасибо!
А если сделать таким образом: коды

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

Sub Fill
и изменить так

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

Sub Fill()
    ActiveCell.Value = Name
        Select Case Language_1
            Case "F"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 4).Value = Date_1
                ActiveCell.Offset(0, 4).Interior.ColorIndex = Color_1
                If ActiveCell.Offset(0, 4).Value = "Tentative" Then ActiveCell.Offset(0, 4).Interior.ColorIndex = 3
            Case "G"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 5).Value = Date_1
                ActiveCell.Offset(0, 5).Interior.ColorIndex = Color_1
                 If ActiveCell.Offset(0, 5).Value = "Tentative" Then ActiveCell.Offset(0, 5).Interior.ColorIndex = 3
            Case "S"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 6).Value = Date_1
                ActiveCell.Offset(0, 6).Interior.ColorIndex = Color_1
                 If ActiveCell.Offset(0, 6).Value = "Tentative" Then ActiveCell.Offset(0, 6).Interior.ColorIndex = 3
            Case "Sw"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 7).Value = Date_1
                ActiveCell.Offset(0, 7).Interior.ColorIndex = Color_1
                 If ActiveCell.Offset(0, 7).Value = "Tentative" Then ActiveCell.Offset(0, 7).Interior.ColorIndex = 3
            Case "Du"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 8).Value = Date_1
                ActiveCell.Offset(0, 8).Interior.ColorIndex = Color_1
                 If ActiveCell.Offset(0, 8).Value = "Tentative" Then ActiveCell.Offset(0, 8).Interior.ColorIndex = 3
            Case "I"
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
                ActiveCell.Offset(0, 9).Value = Date_1
                ActiveCell.Offset(0, 9).Interior.ColorIndex = Color_1
                 If ActiveCell.Offset(0, 9).Value = "Tentative" Then ActiveCell.Offset(0, 9).Interior.ColorIndex = 3
            Case ""
                ActiveCell.Offset(0, 3).FormulaR1C1 = "=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)"
        End Select
    ActiveCell.Offset(1, 0).Activate
    Sheets("Localizations").Activate
End Sub
Тоже на листе Localization_Report выделение ячеек с "Tentative" - красным цветом, правда без полужирного начертания, но это, в принципе, не имеет большого значения.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Я об этом подумал сразу, но решил, что раз уж Вы выложили именно этот код то в нем и нужно сделать. :rolleyes:
да и опять - лишние строки.
Тут еще мыслишка, еще с самого начала:
а не проще формулу
=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)
вставить в лист отчета в самом конце формирования. Код сократится на n-ное количество строк :rolleyes:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
SunKiSSka
Сообщения: 68
Зарегистрирован: 11 июл 2007, 12:58
Откуда: Санкт-Петербург

VictorM писал(а):а не проще формулу
=VLOOKUP(RC[-3],Localizations!R3C1:R1000C6,5,FALSE)
вставить в лист отчета в самом конце формирования. Код сократится на n-ное количество строк :rolleyes:
VictorM, вы как всегда правы :) :) :)

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

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

VictorM, Вы супер, спасибо!!!!!!

Просто не возможно выразить мою признательность Вам!

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

Да чё уж там, не за что :)
Рад, что смог Вам помочь. :rolleyes:
Как говорят умные люди - "Улучшать можно до бесконечности"
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Ответить