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

Вход

Регистрация

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

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Среда, 22.08.2018, 17:28 | Сообщение № 721 | Тема: Сосчитать столбцы в которых нижнее число > предыдущего
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Куча формул, смотреть в диспетчере имен
Код
aa    ='1'!$D3:$AF3
Код
bb    ='1'!$D$2:$AF2
Код
cc    =СТОЛБЕЦ(aa)
Код
dd    =ОСТАТ(cc-2;6)=0
Код
ee    =ЕСЛИ(dd*(aa>0);aa-ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(dd;cc/1%^4+ЕСЛИОШИБКА(СТРОКА(bb)/(bb>0)/1%^3+bb;);"");(cc-2)/6*(СТРОКА(aa)-2));10^3);)
Код
=СУММ(--(ee>0))
Код
=ЕСЛИОШИБКА(ИНДЕКС('1'!3:3;НАИМЕНЬШИЙ(ЕСЛИ(ee>0;cc);СТОЛБЕЦ(A3))-5);"")
К сообщению приложен файл: 7066185.xlsx (15.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 22.08.2018, 17:30
 
Ответить
СообщениеКуча формул, смотреть в диспетчере имен
Код
aa    ='1'!$D3:$AF3
Код
bb    ='1'!$D$2:$AF2
Код
cc    =СТОЛБЕЦ(aa)
Код
dd    =ОСТАТ(cc-2;6)=0
Код
ee    =ЕСЛИ(dd*(aa>0);aa-ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ(dd;cc/1%^4+ЕСЛИОШИБКА(СТРОКА(bb)/(bb>0)/1%^3+bb;);"");(cc-2)/6*(СТРОКА(aa)-2));10^3);)
Код
=СУММ(--(ee>0))
Код
=ЕСЛИОШИБКА(ИНДЕКС('1'!3:3;НАИМЕНЬШИЙ(ЕСЛИ(ee>0;cc);СТОЛБЕЦ(A3))-5);"")

Автор - krosav4ig
Дата добавления - 22.08.2018 в 17:28
krosav4ig Дата: Вторник, 21.08.2018, 02:56 | Сообщение № 722 | Тема: Сообщение при различии диапазона кода и таблицы Excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
    Dim r As Range, arr() As Variant
    With Rows(3)
        Set r = .Find("Валюта для Розничной цены", , xlValues, xlWhole)
        arr = .FindNext(r).Offset(2).Resize(LastRow(.Cells), 2).Value
        r.Offset(2).Resize(UBound(arr), 2).Value = arr
    End With
[/vba]
отвязаться от строки 3 можно вообще ?

Можно, если определиться, по какому критерию искать эту строку


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 21.08.2018, 03:04
 
Ответить
Сообщение[vba]
Код
    Dim r As Range, arr() As Variant
    With Rows(3)
        Set r = .Find("Валюта для Розничной цены", , xlValues, xlWhole)
        arr = .FindNext(r).Offset(2).Resize(LastRow(.Cells), 2).Value
        r.Offset(2).Resize(UBound(arr), 2).Value = arr
    End With
[/vba]
отвязаться от строки 3 можно вообще ?

Можно, если определиться, по какому критерию искать эту строку

Автор - krosav4ig
Дата добавления - 21.08.2018 в 02:56
krosav4ig Дата: Воскресенье, 19.08.2018, 00:27 | Сообщение № 723 | Тема: Замена по списку регулярных выражений
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Regex Pattern
[vba]
Код
(?:<\/?(?:span|div|a|img|style|font|em|wbr|u).*?>(?:\s*\n\s*)*)|(?:(?:(<)([pb]r*|strong|t[abdhr]{1,2}(?:le|ody)*|u*li*|h[0-9]*)\s.*?(?=\/*>))|(\S+))(?=[\s\S]*:(?:\1|\3)=(:|.*?):)|(?:(\n)\s*)+
[/vba]
в конец текста добавляем строку[vba]
Код
:"=":<=<:>=>: =:"=":
[/vba]
Regex Replace на [vba]
Код
$4$2$5
[/vba] и удаляем добавленную ранее строку

тут можно поигаццо

собственно, макрос[vba]
Код
Sub dd()
    Const dic$ = ":"="":<=<:>=>: =:"="":"
    Const pattern$ = "(?:<\/?(?:span|div|a|img|style|font|em|wbr|u)" & _
        ".*?>(?:\s*\n\s*)*)|(?:(?:(<)([pb]r*|strong|t[abdhr]{1,2}" & _
        "(?:le|ody)*|u*li*|h[0-9]*)\s.*?(?=\/*>))|(\S+))(?=[\s\S]*:" & _
        "(?:\1|\3)=(:|.*?):)|(?:(\n)\s*)+"
    Dim arr() As Variant,i&
    With [Было!A1].CurrentRegion.Columns(3)
        If .Cells.Count < 2 Then Exit Sub
        arr = .Value
        For i = LBound(arr) + 1 To UBound(arr)
            arr(i, 1) = arr(i, 1) & dic
            With CreateObject("vbscript.regexp")
                .Global = True: .MultiLine = True
                .Pattern = pattern
                If .test(arr(i, 1)) Then
                    arr(i, 1) = Replace(.Replace(arr(i, 1), "$4$2$5"), dic, "")
                End If
            End With
        Next
        .Value = arr
    End With
End Sub
[/vba]
[p.s.]Pattern и строка-"словарь" искаверканы сайтом, правильные в файле
К сообщению приложен файл: 0886531.xlsm (26.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 19.08.2018, 00:59
 
Ответить
СообщениеRegex Pattern
[vba]
Код
(?:<\/?(?:span|div|a|img|style|font|em|wbr|u).*?>(?:\s*\n\s*)*)|(?:(?:(<)([pb]r*|strong|t[abdhr]{1,2}(?:le|ody)*|u*li*|h[0-9]*)\s.*?(?=\/*>))|(\S+))(?=[\s\S]*:(?:\1|\3)=(:|.*?):)|(?:(\n)\s*)+
[/vba]
в конец текста добавляем строку[vba]
Код
:"=":<=<:>=>: =:"=":
[/vba]
Regex Replace на [vba]
Код
$4$2$5
[/vba] и удаляем добавленную ранее строку

тут можно поигаццо

собственно, макрос[vba]
Код
Sub dd()
    Const dic$ = ":"="":<=<:>=>: =:"="":"
    Const pattern$ = "(?:<\/?(?:span|div|a|img|style|font|em|wbr|u)" & _
        ".*?>(?:\s*\n\s*)*)|(?:(?:(<)([pb]r*|strong|t[abdhr]{1,2}" & _
        "(?:le|ody)*|u*li*|h[0-9]*)\s.*?(?=\/*>))|(\S+))(?=[\s\S]*:" & _
        "(?:\1|\3)=(:|.*?):)|(?:(\n)\s*)+"
    Dim arr() As Variant,i&
    With [Было!A1].CurrentRegion.Columns(3)
        If .Cells.Count < 2 Then Exit Sub
        arr = .Value
        For i = LBound(arr) + 1 To UBound(arr)
            arr(i, 1) = arr(i, 1) & dic
            With CreateObject("vbscript.regexp")
                .Global = True: .MultiLine = True
                .Pattern = pattern
                If .test(arr(i, 1)) Then
                    arr(i, 1) = Replace(.Replace(arr(i, 1), "$4$2$5"), dic, "")
                End If
            End With
        Next
        .Value = arr
    End With
End Sub
[/vba]
[p.s.]Pattern и строка-"словарь" искаверканы сайтом, правильные в файле

Автор - krosav4ig
Дата добавления - 19.08.2018 в 00:27
krosav4ig Дата: Пятница, 10.08.2018, 22:49 | Сообщение № 724 | Тема: Как печатать 500 файлов друг за другом?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
перетянуть файлы в окно очереди печати принтера


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеперетянуть файлы в окно очереди печати принтера

Автор - krosav4ig
Дата добавления - 10.08.2018 в 22:49
krosav4ig Дата: Пятница, 10.08.2018, 05:44 | Сообщение № 725 | Тема: Вывести число из самой нижней строки с опре-нного столбца
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Код
=ЕСЛИОШИБКА(ПРОСМОТР(9E+307;--ТЕКСТ('2'!$A$1:ИНДЕКС('2'!$A:$X;ПОИСКПОЗ("яяя";'2'!$A:$A);) ИНДЕКС('2'!$A:$X;;ПОИСКПОЗ(F6;'2'!$1:$1;)+5);"[=0] "));242)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 10.08.2018, 05:44
 
Ответить
Сообщение
Код
=ЕСЛИОШИБКА(ПРОСМОТР(9E+307;--ТЕКСТ('2'!$A$1:ИНДЕКС('2'!$A:$X;ПОИСКПОЗ("яяя";'2'!$A:$A);) ИНДЕКС('2'!$A:$X;;ПОИСКПОЗ(F6;'2'!$1:$1;)+5);"[=0] "));242)

Автор - krosav4ig
Дата добавления - 10.08.2018 в 05:44
krosav4ig Дата: Четверг, 09.08.2018, 21:12 | Сообщение № 726 | Тема: Поиск значения в массиве
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант
Код
=СУММПРОИЗВ((A8:A17=B1)*(ПРОСМОТР(СТОЛБЕЦ(B6:J6);СТОЛБЕЦ(B6:J6)/(B6:J6>"");B6:J6)=B2)*(B7:J7=B3)*B8:J17)
К сообщению приложен файл: 7801523.xlsx (10.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще вариант
Код
=СУММПРОИЗВ((A8:A17=B1)*(ПРОСМОТР(СТОЛБЕЦ(B6:J6);СТОЛБЕЦ(B6:J6)/(B6:J6>"");B6:J6)=B2)*(B7:J7=B3)*B8:J17)

Автор - krosav4ig
Дата добавления - 09.08.2018 в 21:12
krosav4ig Дата: Среда, 08.08.2018, 21:31 | Сообщение № 727 | Тема: Сообщение при различии диапазона кода и таблицы Excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так
[vba]
Код
Sub УФ_стереть_создать()
' //////////////////////////////////
    ' Вставка Y в параметр НДС включен в цену?
    On Error Resume Next
    With Rows(3).Find("НДС включен в цену ?", , xlValues, xlWhole).Offset(2)
        Range(.Cells, Cells(Rows.Count, .Column)).SpecialCells(xlCellTypeBlanks) = "Y"
    End With
' //////////////////////////////////
    MsgBox "ВСЕ!"
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак-то так
[vba]
Код
Sub УФ_стереть_создать()
' //////////////////////////////////
    ' Вставка Y в параметр НДС включен в цену?
    On Error Resume Next
    With Rows(3).Find("НДС включен в цену ?", , xlValues, xlWhole).Offset(2)
        Range(.Cells, Cells(Rows.Count, .Column)).SpecialCells(xlCellTypeBlanks) = "Y"
    End With
' //////////////////////////////////
    MsgBox "ВСЕ!"
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.08.2018 в 21:31
krosav4ig Дата: Среда, 08.08.2018, 16:07 | Сообщение № 728 | Тема: Печать без полей
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
wolfire, excel автоматически резервирует отступы на физические поля принтера. Если принтер умеет печатать без полей, то нужно активировать соответствующий параметр в свойствах принтера.
печать без полей в свойствах принтера отключена
печать без полей в свойствах принтера включена
К сообщению приложен файл: 2428879.png (3.0 Kb) · 5942373.png (2.8 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 08.08.2018, 16:15
 
Ответить
Сообщениеwolfire, excel автоматически резервирует отступы на физические поля принтера. Если принтер умеет печатать без полей, то нужно активировать соответствующий параметр в свойствах принтера.
печать без полей в свойствах принтера отключена
печать без полей в свойствах принтера включена

Автор - krosav4ig
Дата добавления - 08.08.2018 в 16:07
krosav4ig Дата: Среда, 08.08.2018, 15:03 | Сообщение № 729 | Тема: Изменяемый диапазон
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
добавьте .Select

Mikael, не надо учить плохому :) не нужен тут select
вместо [vba]
Код
Range("a5:a" & LastRow([a1])).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=СЖПРОБЕЛЫ(A5)<>A5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
' Первый столбик / Красное / Проверка УФ на дубликаты названий
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
[/vba] пишем [vba]
Код
With Range("a5:a" & LastRow([a1])).FormatConditions
        With .Add(xlExpression, Formula1:="=СЖПРОБЕЛЫ(RC)<>RC")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 255
                .TintAndShade = 0
            End With
        End With
' Первый столбик / Красное / Проверка УФ на дубликаты названий
        With .AddUniqueValues
            .SetFirstPriority
            .DupeUnique = xlDuplicate
            With .Font
                .Color = -16383844
                .TintAndShade = 0
            End With
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 13551615
                .TintAndShade = 0
            End With
            .StopIfTrue = False
        End With
    End With
[/vba]

Вместо[vba]
Код
Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
' Формула 3-2 / Зеленый / В корзину (в наличии) (цена ДА / остаток ДА / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5>0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
' Формула 3-1 / Зеленый / Запросить цену (в наличии)    цена НЕТ / остаток ДА / разрешить покупку ДА
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5<=0;G5:G5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
    
' Формула 2-2 / Желтое / В корзину (под заказ)  (цена ДА/ остаток НЕТ / разрешить покупку ДА)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>=0;G5:G5<=0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10079487
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
' Формула 2-1 / Желтое / Запросить цену (под заказ) (цена НЕТ / остаток НЕТ / разрешить покупку ДА)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5<=0;G5:G5<=0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10079487
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
   
' Формула 1-2 / Красный цвет / Подписаться  (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5<=0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0.599963377788629
    End With
' Формула 1-1 / Красный цвет / Запросить цену (не доступно) (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5<=0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0.599963377788629
    End With
[/vba] пишем [vba]
Код
    With Range("h5:h" & LastRow([h1])).FormatConditions
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 3-2 / Зеленый / В корзину (в наличии) (цена ДА / остаток ДА / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7>0;RC>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 3-1 / Зеленый / Запросить цену (в наличии)    цена НЕТ / остаток ДА / разрешить покупку ДА
        With .Add(xlExpression, Formula1:="=И(R[]C6<=0;R[]C7>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 2-2 / Желтое / В корзину (под заказ)  (цена ДА/ остаток НЕТ / разрешить покупку ДА)
        With .Add(xlExpression, Formula1:="=И(R[]C6>=0;R[]C7<=0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 10079487
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            .StopIfTrue = False
        End With
' Формула 2-1 / Желтое / Запросить цену (под заказ) (цена НЕТ / остаток НЕТ / разрешить покупку ДА)
        With .Add(xlExpression, Formula1:="=И(R[]C6<=0;R[]C7<=0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 10079487
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            .StopIfTrue = False
        End With
' Формула 1-2 / Красный цвет / Подписаться  (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7<=0;RC>0)")
            .SetFirstPriority
            With Selection.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent2
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 1-1 / Красный цвет / Запросить цену (не доступно) (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7<=0;RC>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent2
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
    End With
[/vba]
и т.д. по аналогии
[p.s.]при таком подходе необходимо использовать R1C1 адресацию в формулах
К сообщению приложен файл: 20970590.xlsm (87.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 08.08.2018, 15:46
 
Ответить
Сообщение
добавьте .Select

Mikael, не надо учить плохому :) не нужен тут select
вместо [vba]
Код
Range("a5:a" & LastRow([a1])).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=СЖПРОБЕЛЫ(A5)<>A5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
' Первый столбик / Красное / Проверка УФ на дубликаты названий
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
[/vba] пишем [vba]
Код
With Range("a5:a" & LastRow([a1])).FormatConditions
        With .Add(xlExpression, Formula1:="=СЖПРОБЕЛЫ(RC)<>RC")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 255
                .TintAndShade = 0
            End With
        End With
' Первый столбик / Красное / Проверка УФ на дубликаты названий
        With .AddUniqueValues
            .SetFirstPriority
            .DupeUnique = xlDuplicate
            With .Font
                .Color = -16383844
                .TintAndShade = 0
            End With
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 13551615
                .TintAndShade = 0
            End With
            .StopIfTrue = False
        End With
    End With
[/vba]

Вместо[vba]
Код
Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
' Формула 3-2 / Зеленый / В корзину (в наличии) (цена ДА / остаток ДА / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5>0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
' Формула 3-1 / Зеленый / Запросить цену (в наличии)    цена НЕТ / остаток ДА / разрешить покупку ДА
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5<=0;G5:G5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
    
' Формула 2-2 / Желтое / В корзину (под заказ)  (цена ДА/ остаток НЕТ / разрешить покупку ДА)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>=0;G5:G5<=0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10079487
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
' Формула 2-1 / Желтое / Запросить цену (под заказ) (цена НЕТ / остаток НЕТ / разрешить покупку ДА)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5<=0;G5:G5<=0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10079487
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
   
' Формула 1-2 / Красный цвет / Подписаться  (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5<=0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0.599963377788629
    End With
' Формула 1-1 / Красный цвет / Запросить цену (не доступно) (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
    Selection.FormatConditions(1).StopIfTrue = False
    Range("H5:H1100").Select
    'Columns("H:H").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(F5:F5>0;G5:G5<=0;H5:H5>0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent2
        .TintAndShade = 0.599963377788629
    End With
[/vba] пишем [vba]
Код
    With Range("h5:h" & LastRow([h1])).FormatConditions
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 3-2 / Зеленый / В корзину (в наличии) (цена ДА / остаток ДА / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7>0;RC>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 3-1 / Зеленый / Запросить цену (в наличии)    цена НЕТ / остаток ДА / разрешить покупку ДА
        With .Add(xlExpression, Formula1:="=И(R[]C6<=0;R[]C7>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent3
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 2-2 / Желтое / В корзину (под заказ)  (цена ДА/ остаток НЕТ / разрешить покупку ДА)
        With .Add(xlExpression, Formula1:="=И(R[]C6>=0;R[]C7<=0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 10079487
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            .StopIfTrue = False
        End With
' Формула 2-1 / Желтое / Запросить цену (под заказ) (цена НЕТ / остаток НЕТ / разрешить покупку ДА)
        With .Add(xlExpression, Formula1:="=И(R[]C6<=0;R[]C7<=0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 10079487
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            .StopIfTrue = False
        End With
' Формула 1-2 / Красный цвет / Подписаться  (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7<=0;RC>0)")
            .SetFirstPriority
            With Selection.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent2
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
' Формула 1-1 / Красный цвет / Запросить цену (не доступно) (цена ДА / остаток НЕТ / разрешить покупку НЕТ)
        With .Add(xlExpression, Formula1:="=И(R[]C6>0;R[]C7<=0;RC>0)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent2
                .TintAndShade = 0.599963377788629
            End With
            .StopIfTrue = False
        End With
    End With
[/vba]
и т.д. по аналогии
[p.s.]при таком подходе необходимо использовать R1C1 адресацию в формулах

Автор - krosav4ig
Дата добавления - 08.08.2018 в 15:03
krosav4ig Дата: Вторник, 07.08.2018, 23:51 | Сообщение № 730 | Тема: FormulaArray выдает ошибку
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте[vba]
Код
Sub FormulaDvighenie()
    Names.Add Name:="FormulaDvighenieName", RefersTo:="=ТУТ ДЛИННАЯ ФОРМУЛА МАССИВА"
    Worksheets("Движение МЦ").Range("D11").Value = [FormulaDvighenieName]
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 07.08.2018, 23:51
 
Ответить
СообщениеЗдравствуйте[vba]
Код
Sub FormulaDvighenie()
    Names.Add Name:="FormulaDvighenieName", RefersTo:="=ТУТ ДЛИННАЯ ФОРМУЛА МАССИВА"
    Worksheets("Движение МЦ").Range("D11").Value = [FormulaDvighenieName]
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 07.08.2018 в 23:51
krosav4ig Дата: Понедельник, 06.08.2018, 23:54 | Сообщение № 731 | Тема: При записи макроса - Запись невозможна
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа вдруг...
Не могу открыть банк макросов

Автор - krosav4ig
Дата добавления - 06.08.2018 в 23:54
krosav4ig Дата: Понедельник, 06.08.2018, 23:41 | Сообщение № 732 | Тема: Вывести число из самой нижней строки с опре-нного столбца
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеawaddwaawddw, можно здесь почитать Поиск последней заполненной ячейки строки/столбца и возврат её значения

Автор - krosav4ig
Дата добавления - 06.08.2018 в 23:41
krosav4ig Дата: Понедельник, 06.08.2018, 22:53 | Сообщение № 733 | Тема: Вывести число из самой нижней строки с опре-нного столбца
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Код
=ПРОСМОТР(9E+307;--ТЕКСТ('2'!$A$1:ИНДЕКС('2'!$A:$X;ПОИСКПОЗ("яяя";'2'!$A:$A);) ИНДЕКС('2'!$A:$X;;ПОИСКПОЗ(F6;'2'!$1:$1;)+5);"[=0] "))
К сообщению приложен файл: 5657439.xlsx (13.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Код
=ПРОСМОТР(9E+307;--ТЕКСТ('2'!$A$1:ИНДЕКС('2'!$A:$X;ПОИСКПОЗ("яяя";'2'!$A:$A);) ИНДЕКС('2'!$A:$X;;ПОИСКПОЗ(F6;'2'!$1:$1;)+5);"[=0] "))

Автор - krosav4ig
Дата добавления - 06.08.2018 в 22:53
krosav4ig Дата: Воскресенье, 05.08.2018, 23:28 | Сообщение № 734 | Тема: Объединить текст из нескольких ячеек в одну
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи, вариант на VBA[vba]
Код
Sub ConcatRows()
    Dim cell As Range, cell1 As Range, addr$
    With Me.[B:B]
        Set cell = .Find("[expand", .Cells(1), xlFormulas, xlPart, xlByRows, xlNext, False, False)
        addr = cell.Address
        Do
            If InStr(cell, "[/expand") = 0 Then
                Set cell1 = .Find("[/expand", cell, xlFormulas, xlPart, xlByRows, xlNext, False, False)
                With Me.Range(cell, cell1)
                    cell = Join(Application.Transpose(Me.Range(cell, cell1)), vbLf)
                    .Offset(1).Resize(.Count - 1).Delete xlUp
                End With
             End If
             Set cell = .Find("[expand", cell, xlFormulas, xlPart, xlByRows, xlNext, False, False)
        Loop While Not cell Is Nothing And cell.Address <> addr
    End With
End Sub
[/vba]
К сообщению приложен файл: 6342058.xlsm (16.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедо кучи, вариант на VBA[vba]
Код
Sub ConcatRows()
    Dim cell As Range, cell1 As Range, addr$
    With Me.[B:B]
        Set cell = .Find("[expand", .Cells(1), xlFormulas, xlPart, xlByRows, xlNext, False, False)
        addr = cell.Address
        Do
            If InStr(cell, "[/expand") = 0 Then
                Set cell1 = .Find("[/expand", cell, xlFormulas, xlPart, xlByRows, xlNext, False, False)
                With Me.Range(cell, cell1)
                    cell = Join(Application.Transpose(Me.Range(cell, cell1)), vbLf)
                    .Offset(1).Resize(.Count - 1).Delete xlUp
                End With
             End If
             Set cell = .Find("[expand", cell, xlFormulas, xlPart, xlByRows, xlNext, False, False)
        Loop While Not cell Is Nothing And cell.Address <> addr
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 05.08.2018 в 23:28
krosav4ig Дата: Суббота, 04.08.2018, 18:23 | Сообщение № 735 | Тема: Сосчитать слова, написать сколько их, по убыванию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Светлый, 04.08.2018 в 10:56, в сообщении № 13 ()
формула не работает, если слова в столбцах J и T
упс, мой косяк %)
Исправил в своем посте


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Светлый, 04.08.2018 в 10:56, в сообщении № 13 ()
формула не работает, если слова в столбцах J и T
упс, мой косяк %)
Исправил в своем посте

Автор - krosav4ig
Дата добавления - 04.08.2018 в 18:23
krosav4ig Дата: Суббота, 04.08.2018, 01:05 | Сообщение № 736 | Тема: Сосчитать слова, написать сколько их, по убыванию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как я понял, нужно сортировать в порядке убывания количества повторений
у мну так получилось
Код
=НАИБОЛЬШИЙ(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40);СУММ($X$1:X1;1))
Код
=ИНДЕКС(A:V;МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*СТРОКА(C$2:C$40));ОСТАТ(МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*(СТРОКА(C$2:C$40)+СТОЛБЕЦ(C$2:V$2)%%));1)/1%%)
К сообщению приложен файл: 1561063.xlsx (13.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 04.08.2018, 18:22
 
Ответить
Сообщениекак я понял, нужно сортировать в порядке убывания количества повторений
у мну так получилось
Код
=НАИБОЛЬШИЙ(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40);СУММ($X$1:X1;1))
Код
=ИНДЕКС(A:V;МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*СТРОКА(C$2:C$40));ОСТАТ(МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*(СТРОКА(C$2:C$40)+СТОЛБЕЦ(C$2:V$2)%%));1)/1%%)

Автор - krosav4ig
Дата добавления - 04.08.2018 в 01:05
krosav4ig Дата: Четверг, 02.08.2018, 23:44 | Сообщение № 737 | Тема: Не корректно переносятся данные на форму.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в модуле формы Main нужно удалить лишнее объявление переменной
[vba]
Код
Dim tariff As Double
[/vba]
из-за него значение пишется в локальную переменную процедуры, а не в глобальную, которая объявлена в mPublicVars


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениев модуле формы Main нужно удалить лишнее объявление переменной
[vba]
Код
Dim tariff As Double
[/vba]
из-за него значение пишется в локальную переменную процедуры, а не в глобальную, которая объявлена в mPublicVars

Автор - krosav4ig
Дата добавления - 02.08.2018 в 23:44
krosav4ig Дата: Четверг, 02.08.2018, 22:52 | Сообщение № 738 | Тема: Не корректно переносятся данные на форму.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
По-моему вы файл не тот приложили...


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеПо-моему вы файл не тот приложили...

Автор - krosav4ig
Дата добавления - 02.08.2018 в 22:52
krosav4ig Дата: Четверг, 02.08.2018, 21:49 | Сообщение № 739 | Тема: Не корректно переносятся данные на форму.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
чтобы корректно работало, нужно показывать форму в немодальном режиме
вместо [vba]
Код
UserForm1.Show
[/vba]написать [vba]
Код
UserForm1.Show False
[/vba]

или перенести строку [vba]
Код
UserForm1.TextBox1.Value = tariff
[/vba] в процедуру UserForm_Initialize() формы UserForm1


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 02.08.2018, 21:56
 
Ответить
Сообщениечтобы корректно работало, нужно показывать форму в немодальном режиме
вместо [vba]
Код
UserForm1.Show
[/vba]написать [vba]
Код
UserForm1.Show False
[/vba]

или перенести строку [vba]
Код
UserForm1.TextBox1.Value = tariff
[/vba] в процедуру UserForm_Initialize() формы UserForm1

Автор - krosav4ig
Дата добавления - 02.08.2018 в 21:49
krosav4ig Дата: Четверг, 02.08.2018, 17:24 | Сообщение № 740 | Тема: Автоматическое заполнение табеля рабочего времени
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день
Попробуйте так
Код
=ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ($B$3:$B$882="";"";СТРОКА($B$3:$B$882));(СТРОКА()+8)/11))


[p.s.]формула массивная, вводится комбинацией клавиш Ctrl+Shift+Enter


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДобрый день
Попробуйте так
Код
=ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ($B$3:$B$882="";"";СТРОКА($B$3:$B$882));(СТРОКА()+8)/11))


[p.s.]формула массивная, вводится комбинацией клавиш Ctrl+Shift+Enter

Автор - krosav4ig
Дата добавления - 02.08.2018 в 17:24
Поиск:

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