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

Вход

Регистрация

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

 

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

Результаты поиска
krosav4ig Дата: Воскресенье, 03.03.2019, 11:33 | Сообщение № 441 | Тема: Сосчитать нажатые ToggleButton
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте[vba]
Код
Dim i&
For Each obj In Sheets(2).OLEObjects
    i = i - (obj.progID = "Forms.ToggleButton.1" And obj.Object)
Next
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте[vba]
Код
Dim i&
For Each obj In Sheets(2).OLEObjects
    i = i - (obj.progID = "Forms.ToggleButton.1" And obj.Object)
Next
[/vba]

Автор - krosav4ig
Дата добавления - 03.03.2019 в 11:33
krosav4ig Дата: Воскресенье, 03.03.2019, 07:58 | Сообщение № 442 | Тема: Выборка данных из строк
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
=ArrayFormula(QUERY(SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&IFERROR(VLOOKUP(B8:I15,I18:J22,2,),),""),"")),"|")),":"),"select Col1,sum(Col2) group by Col1 label Col1 'Пациент', sum(Col2) 'Сумма'",0))
[/vba]или[vba]
Код
=ArrayFormula(QUERY(SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&B8:I15,""),"")),"|")),":"),"select Col1,Col2,count(Col2) group by Col1,Col2 label Col1 'Пациент', Col2 'Процедура', count(Col2) 'Количество'",0))
[/vba]или сводная по формуле[vba]
Код
=ArrayFormula({{"Пациент","Процедура","Стоимость"};SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&B8:I15&":"&VLOOKUP(B8:I15,I18:J22,2,),""),"")),"|")),":")})
[/vba]


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

Сообщение отредактировал krosav4ig - Воскресенье, 03.03.2019, 08:06
 
Ответить
Сообщение[vba]
Код
=ArrayFormula(QUERY(SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&IFERROR(VLOOKUP(B8:I15,I18:J22,2,),),""),"")),"|")),":"),"select Col1,sum(Col2) group by Col1 label Col1 'Пациент', sum(Col2) 'Сумма'",0))
[/vba]или[vba]
Код
=ArrayFormula(QUERY(SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&B8:I15,""),"")),"|")),":"),"select Col1,Col2,count(Col2) group by Col1,Col2 label Col1 'Пациент', Col2 'Процедура', count(Col2) 'Количество'",0))
[/vba]или сводная по формуле[vba]
Код
=ArrayFormula({{"Пациент","Процедура","Стоимость"};SPLIT(TRANSPOSE(SPLIT(TEXTJOIN("|",1,If(ROW(A8:A15)-LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),ROW(A8:A15))<3,if(B8:I15<>"",LOOKUP(ROW(A8:A15),IF(A8:A15<>"",ROW(A8:A15)),A8:A15)&":"&B8:I15&":"&VLOOKUP(B8:I15,I18:J22,2,),""),"")),"|")),":")})
[/vba]

Автор - krosav4ig
Дата добавления - 03.03.2019 в 07:58
krosav4ig Дата: Суббота, 02.03.2019, 07:34 | Сообщение № 443 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Исправил


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеИсправил

Автор - krosav4ig
Дата добавления - 02.03.2019 в 07:34
krosav4ig Дата: Пятница, 01.03.2019, 19:10 | Сообщение № 444 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сергей13, эт я, наверно, еще не проснулся, когда писал. Щас до компа доеду, исправлю. Исправил


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

Сообщение отредактировал krosav4ig - Пятница, 01.03.2019, 19:30
 
Ответить
СообщениеСергей13, эт я, наверно, еще не проснулся, когда писал. Щас до компа доеду, исправлю. Исправил

Автор - krosav4ig
Дата добавления - 01.03.2019 в 19:10
krosav4ig Дата: Пятница, 01.03.2019, 08:49 | Сообщение № 445 | Тема: Извлечь слова по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Udf взял тут
[vba]
Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(stringRegExpReplace(A2;"[\s\S]*?((?:[\w\d]{1,4}\.){4}(?:[\w\d&]{5,6}\.){2}\d{3}\.DC\.\d{4})|[\s\S]";"$1,";1;1;1);",";" "));" ";", ")
[/vba]
К сообщению приложен файл: _2.xls (77.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеUdf взял тут
[vba]
Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(stringRegExpReplace(A2;"[\s\S]*?((?:[\w\d]{1,4}\.){4}(?:[\w\d&]{5,6}\.){2}\d{3}\.DC\.\d{4})|[\s\S]";"$1,";1;1;1);",";" "));" ";", ")
[/vba]

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

Excel 2007,2010,2013
Как это исправить ?
В модуль ЭтаКника поместить код [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Evaluate("Кнопка 5").OnAction = "test"
End Sub
[/vba] переназначить макрос кнопке или в окно immediate ввести [vba]
Код
Evaluate("Кнопка 5").OnAction = "test"
[/vba] и нажать Enter


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Как это исправить ?
В модуль ЭтаКника поместить код [vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Evaluate("Кнопка 5").OnAction = "test"
End Sub
[/vba] переназначить макрос кнопке или в окно immediate ввести [vba]
Код
Evaluate("Кнопка 5").OnAction = "test"
[/vba] и нажать Enter

Автор - krosav4ig
Дата добавления - 01.03.2019 в 08:17
krosav4ig Дата: Пятница, 01.03.2019, 08:10 | Сообщение № 447 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim r As Range, i&, j&, v As Variant, arr() As Variant
    With [Таблица1].ListObject
        With .Range.CurrentRegion
            If .Rows.Count < 2 Then Exit Sub
            ReDim Preserve arr(1 To .Rows.Count - 1, 1 To .Columns.Count)
            For j = 1 To .Columns.Count
                For Each r In .Columns(j)
                    i = 1
                    For Each v In BubbleSort(Intersect(r, r.Offset(1)).Value)
                        arr(i, j) = v
                        i = i + 1
            Next v, r, j
            Intersect(.Offset(1), .Cells).ClearContents
            .Cells(2, 1).Resize(i - 1, j - 1) = arr
        End With
        .Resize .Range.CurrentRegion
    End With
End Sub
Function BubbleSort(v As Variant) As Variant
    Dim i&, j&, b As Boolean
    If Not IsArray(v) Then BubbleSort = Array(v): Exit Function
    b = UBound(v) >= UBound(v, 2)
    For i = 1 To UBound(v, IIf(b, 1, 2)) - 1: For j = i To UBound(v, IIf(b, 1, 2))
        swap v(IIf(b, i, 1), IIf(b, 1, i)), v(IIf(b, j, 1), IIf(b, 1, j))
    Next j, i
    BubbleSort = v
End Function
Sub swap(ByRef a As Variant, b As Variant)
    If a < b Xor (a <> "") And (b <> "") Then: Dim c: c = a: a = b: b = c
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Суббота, 02.03.2019, 07:31
 
Ответить
Сообщение[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim r As Range, i&, j&, v As Variant, arr() As Variant
    With [Таблица1].ListObject
        With .Range.CurrentRegion
            If .Rows.Count < 2 Then Exit Sub
            ReDim Preserve arr(1 To .Rows.Count - 1, 1 To .Columns.Count)
            For j = 1 To .Columns.Count
                For Each r In .Columns(j)
                    i = 1
                    For Each v In BubbleSort(Intersect(r, r.Offset(1)).Value)
                        arr(i, j) = v
                        i = i + 1
            Next v, r, j
            Intersect(.Offset(1), .Cells).ClearContents
            .Cells(2, 1).Resize(i - 1, j - 1) = arr
        End With
        .Resize .Range.CurrentRegion
    End With
End Sub
Function BubbleSort(v As Variant) As Variant
    Dim i&, j&, b As Boolean
    If Not IsArray(v) Then BubbleSort = Array(v): Exit Function
    b = UBound(v) >= UBound(v, 2)
    For i = 1 To UBound(v, IIf(b, 1, 2)) - 1: For j = i To UBound(v, IIf(b, 1, 2))
        swap v(IIf(b, i, 1), IIf(b, 1, i)), v(IIf(b, j, 1), IIf(b, 1, j))
    Next j, i
    BubbleSort = v
End Function
Sub swap(ByRef a As Variant, b As Variant)
    If a < b Xor (a <> "") And (b <> "") Then: Dim c: c = a: a = b: b = c
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 01.03.2019 в 08:10
krosav4ig Дата: Пятница, 01.03.2019, 06:10 | Сообщение № 448 | Тема: Включение паузы внутри работающего скрипта.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Как-то так
[vba]
Код
Option Explicit
Dim b As Boolean

...

Sub Obj1ToObj2_1(Obj1, Obj2, Optional Steps = 20)
  Const dt# = 0.02
  Dim x1#, x2#, y1#, y2#, x#, y#, t!
  Dim l1#, t1#, w1#, h1#, l2#, t2#, w2#, h2#
  Do: t = Timer: Do: DoEvents: Loop While Timer < t + dt: Loop While b
  With Obj1
    l1 = .Left: t1 = .Top: w1 = .Width: h1 = .Height
  End With
  l2 = Obj2(1, 1): t2 = Obj2(1, 2)
'  With Obj2
'    l2 = .Left: t2 = .Top: w2 = .Width: h2 = .Height
'  End With
  x1 = l1 + w1 / 2
  y1 = t1 + h1 / 2
  x2 = l2 ' + w2 / 2
  y2 = t2 ' + h2 / 2
  With Obj1
    For x = x1 To x2 Step (x2 - x1) / Steps
      y = (x2 * y1 - x1 * y2 - (y1 - y2) * x) / (x2 - x1)
      .Left = x - w1 / 2
      .Top = y - h1 / 2
      t = Timer + dt
      While Timer < t:  Wend
      DoEvents:
    Next
    x = x2: y = y2: .Left = x - w1 / 2: .Top = y - h1 / 2
  End With
  b = True
End Sub
Sub test()
    Dim lr&, i&, sTmp$
    On Error Resume goto err
    With Evaluate(Application.Caller)
        sTmp$ = .OnAction
        .OnAction = "toggle"
        With Лист1
            lr = .Cells(Rows.Count, "n").End(xlUp).Row
            For i = 6 To lr
                Obj1ToObj2_1 .Shapes("Oval 1"), .Cells(i, "n").Resize(, 2).Value
            Next i
        End With
err:    .OnAction = sTmp
    End With
    MsgBox "Конец"
End Sub
Private Sub toggle()
    b = Not b
End Sub
[/vba]
К сообщению приложен файл: 5451360.xlsm (26.2 Kb)


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

Сообщение отредактировал krosav4ig - Пятница, 01.03.2019, 06:58
 
Ответить
СообщениеЗдравствуйте.
Как-то так
[vba]
Код
Option Explicit
Dim b As Boolean

...

Sub Obj1ToObj2_1(Obj1, Obj2, Optional Steps = 20)
  Const dt# = 0.02
  Dim x1#, x2#, y1#, y2#, x#, y#, t!
  Dim l1#, t1#, w1#, h1#, l2#, t2#, w2#, h2#
  Do: t = Timer: Do: DoEvents: Loop While Timer < t + dt: Loop While b
  With Obj1
    l1 = .Left: t1 = .Top: w1 = .Width: h1 = .Height
  End With
  l2 = Obj2(1, 1): t2 = Obj2(1, 2)
'  With Obj2
'    l2 = .Left: t2 = .Top: w2 = .Width: h2 = .Height
'  End With
  x1 = l1 + w1 / 2
  y1 = t1 + h1 / 2
  x2 = l2 ' + w2 / 2
  y2 = t2 ' + h2 / 2
  With Obj1
    For x = x1 To x2 Step (x2 - x1) / Steps
      y = (x2 * y1 - x1 * y2 - (y1 - y2) * x) / (x2 - x1)
      .Left = x - w1 / 2
      .Top = y - h1 / 2
      t = Timer + dt
      While Timer < t:  Wend
      DoEvents:
    Next
    x = x2: y = y2: .Left = x - w1 / 2: .Top = y - h1 / 2
  End With
  b = True
End Sub
Sub test()
    Dim lr&, i&, sTmp$
    On Error Resume goto err
    With Evaluate(Application.Caller)
        sTmp$ = .OnAction
        .OnAction = "toggle"
        With Лист1
            lr = .Cells(Rows.Count, "n").End(xlUp).Row
            For i = 6 To lr
                Obj1ToObj2_1 .Shapes("Oval 1"), .Cells(i, "n").Resize(, 2).Value
            Next i
        End With
err:    .OnAction = sTmp
    End With
    MsgBox "Конец"
End Sub
Private Sub toggle()
    b = Not b
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 01.03.2019 в 06:10
krosav4ig Дата: Пятница, 01.03.2019, 03:07 | Сообщение № 449 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это можно исправить

добавить определение переменной
col as range
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это так задумано?
Это так получилось :)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это можно исправить

добавить определение переменной
col as range
Цитата Сергей13, 01.03.2019 в 02:17, в сообщении № 13 ()
Это так задумано?
Это так получилось :)

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

Excel 2007,2010,2013
[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim b As Boolean, r As Range, col as range
    With [Таблица1].ListObject
        Set r = .Range.CurrentRegion
        For Each col In r.Columns
            If col.Column = r.Column Then
                .Resize col.Next.Resize(2)
            ElseIf Not b Then
                b = True
                .Resize r.Resize(2, 2)
                .Resize r.Resize(2, 1)
            End If
            With Intersect(.Parent.UsedRange, col.EntireColumn)
                .sort .Cells(1), xlAscending, Header:=1
            End With
        Next
        .Resize r.Resize(r.Rows.Count - IsEmpty(r.Cells(2, 1)))
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Пятница, 01.03.2019, 03:05
 
Ответить
Сообщение[vba]
Код
Sub sortirovka() 'Раскрытие таблицы
    Dim b As Boolean, r As Range, col as range
    With [Таблица1].ListObject
        Set r = .Range.CurrentRegion
        For Each col In r.Columns
            If col.Column = r.Column Then
                .Resize col.Next.Resize(2)
            ElseIf Not b Then
                b = True
                .Resize r.Resize(2, 2)
                .Resize r.Resize(2, 1)
            End If
            With Intersect(.Parent.UsedRange, col.EntireColumn)
                .sort .Cells(1), xlAscending, Header:=1
            End With
        Next
        .Resize r.Resize(r.Rows.Count - IsEmpty(r.Cells(2, 1)))
    End With
End Sub
[/vba]

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

Excel 2007,2010,2013
Цитата Сергей13, 28.02.2019 в 23:28, в сообщении № 10 ()
не захватывает две последние строки с данными

Исправил, + с - перепутал


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Сергей13, 28.02.2019 в 23:28, в сообщении № 10 ()
не захватывает две последние строки с данными

Исправил, + с - перепутал

Автор - krosav4ig
Дата добавления - 28.02.2019 в 23:36
krosav4ig Дата: Четверг, 28.02.2019, 20:57 | Сообщение № 452 | Тема: Удаление строк по значению
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub fffff()
    dim r as Range
    With ActiveSheet
        On Error Resume Next
        .Outline.ShowLevels 1
        Set r = .Columns(1).SpecialCells(2, 23).SpecialCells(12)
        Set r = Union(.Rows("1:25"), r, r.Offset(1))
        .Outline.ShowLevels 8: r.EntireRow.Hidden = True
        .UsedRange.SpecialCells(12).EntireRow.Delete: r.EntireRow.Hidden = 0
        Application.Goto .[A26], 1
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Четверг, 28.02.2019, 20:58
 
Ответить
Сообщение[vba]
Код
Sub fffff()
    dim r as Range
    With ActiveSheet
        On Error Resume Next
        .Outline.ShowLevels 1
        Set r = .Columns(1).SpecialCells(2, 23).SpecialCells(12)
        Set r = Union(.Rows("1:25"), r, r.Offset(1))
        .Outline.ShowLevels 8: r.EntireRow.Hidden = True
        .UsedRange.SpecialCells(12).EntireRow.Delete: r.EntireRow.Hidden = 0
        Application.Goto .[A26], 1
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 20:57
krosav4ig Дата: Четверг, 28.02.2019, 18:47 | Сообщение № 453 | Тема: Суммирование по нескольким условиям в разных диапазонах
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а я тут все с PowerQuery развлекаюсь
К сообщению приложен файл: 7450484.xlsx (35.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа я тут все с PowerQuery развлекаюсь

Автор - krosav4ig
Дата добавления - 28.02.2019 в 18:47
krosav4ig Дата: Четверг, 28.02.2019, 16:25 | Сообщение № 454 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub Макрос1()

    With [Таблица1].ListObject
        .Resize .Range.Resize(2, 1)
    End With

End Sub

Sub Макрос2()
    
    With [Таблица1].ListObject.Range.CurrentRegion
        .ListObject.Resize .Resize(.Rows.Count - IsEmpty(.Cells(2, 1)))
    End With
    
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Четверг, 28.02.2019, 23:34
 
Ответить
Сообщение[vba]
Код
Sub Макрос1()

    With [Таблица1].ListObject
        .Resize .Range.Resize(2, 1)
    End With

End Sub

Sub Макрос2()
    
    With [Таблица1].ListObject.Range.CurrentRegion
        .ListObject.Resize .Resize(.Rows.Count - IsEmpty(.Cells(2, 1)))
    End With
    
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 16:25
krosav4ig Дата: Четверг, 28.02.2019, 15:21 | Сообщение № 455 | Тема: Аналог ВПР при обращение с Excel в PowerPivot (функции КУБ)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
DJ_Marker_MC, но, если выборка будет по не уникальному полю, вернет НД


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

Автор - krosav4ig
Дата добавления - 28.02.2019 в 15:21
krosav4ig Дата: Четверг, 28.02.2019, 13:58 | Сообщение № 456 | Тема: Аналог ВПР при обращение с Excel в PowerPivot (функции КУБ)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
конструкция ( ... , ... ) - это кортеж, представляющий пересечение двух размерностей куба/множеств/кортежей
[Код], он же [Код].[All] - непосредственно поле Код, [Код].children - значения поля Код
Кстати, такая формула тоже работает
[vba]
Код
=КУБЭЛЕМЕНТ("ThisWorkbookDataModel";"([Лист1].[Код].&["&D3&"],[Лист1].[Фамилия].children)")
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеконструкция ( ... , ... ) - это кортеж, представляющий пересечение двух размерностей куба/множеств/кортежей
[Код], он же [Код].[All] - непосредственно поле Код, [Код].children - значения поля Код
Кстати, такая формула тоже работает
[vba]
Код
=КУБЭЛЕМЕНТ("ThisWorkbookDataModel";"([Лист1].[Код].&["&D3&"],[Лист1].[Фамилия].children)")
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 13:58
krosav4ig Дата: Четверг, 28.02.2019, 12:42 | Сообщение № 457 | Тема: Аналог ВПР при обращение с Excel в PowerPivot (функции КУБ)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
DJ_Marker_MC, Это все перевод формул на сайте, заменилась английская T на русскую
Добавил еще вычисляемое поле [vba]
Код
Фамилия_:=FIRSTNONBLANK('Лист1'[Фамилия];TRUE())
[/vba]
формула в D8 [vba]
Код
=КУБЗНАЧЕНИЕ("ThisWorkbookDataModel";"[Measures].[Фамилия_]";"[Лист1].[Код].&["&$D$3&"]")
[/vba]
К сообщению приложен файл: 3755821.7z (43.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеDJ_Marker_MC, Это все перевод формул на сайте, заменилась английская T на русскую
Добавил еще вычисляемое поле [vba]
Код
Фамилия_:=FIRSTNONBLANK('Лист1'[Фамилия];TRUE())
[/vba]
формула в D8 [vba]
Код
=КУБЗНАЧЕНИЕ("ThisWorkbookDataModel";"[Measures].[Фамилия_]";"[Лист1].[Код].&["&$D$3&"]")
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 12:42
krosav4ig Дата: Четверг, 28.02.2019, 11:58 | Сообщение № 458 | Тема: Аналог ВПР при обращение с Excel в PowerPivot (функции КУБ)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день.
[vba]
Код
=КУБПОРЭЛЕМЕНТ("ThisWorkbookDataModel";КУБМНОЖ("ThisWorkbookDataModel";"([Лист1].[Код].&["&D3&"],[Лист1].[Фамилия].children)");1)
[/vba]


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

Сообщение отредактировал krosav4ig - Четверг, 28.02.2019, 12:39
 
Ответить
СообщениеДобрый день.
[vba]
Код
=КУБПОРЭЛЕМЕНТ("ThisWorkbookDataModel";КУБМНОЖ("ThisWorkbookDataModel";"([Лист1].[Код].&["&D3&"],[Лист1].[Фамилия].children)");1)
[/vba]

Автор - krosav4ig
Дата добавления - 28.02.2019 в 11:58
krosav4ig Дата: Среда, 27.02.2019, 13:21 | Сообщение № 459 | Тема: Уникальные значения в выпадающем списке ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Всем привет! Набросал я тут код для формирования сортированного списка уникальных значений для проверки данных, в планах по такому же принципу реализовать каскадные выпадающие списки, но как-то времени все нет.

В диспетчере имен формулы типа
Код
=DistinctValues(ВерхняяЯчейкаИсходногоСписка;ВерхняяЯчейкаПолученногоСписка)
Проверка данных ссылается на эти имена. Тестировал в версиях Excel с 2003 по 2013, во всех работает.

UPD.
Убрал лишнюю строку и массив из процедуры PopulateRange
К сообщению приложен файл: DistinctListDat.xlsm (23.8 Kb)


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

Сообщение отредактировал krosav4ig - Среда, 27.02.2019, 14:17
 
Ответить
СообщениеВсем привет! Набросал я тут код для формирования сортированного списка уникальных значений для проверки данных, в планах по такому же принципу реализовать каскадные выпадающие списки, но как-то времени все нет.

В диспетчере имен формулы типа
Код
=DistinctValues(ВерхняяЯчейкаИсходногоСписка;ВерхняяЯчейкаПолученногоСписка)
Проверка данных ссылается на эти имена. Тестировал в версиях Excel с 2003 по 2013, во всех работает.

UPD.
Убрал лишнюю строку и массив из процедуры PopulateRange

Автор - krosav4ig
Дата добавления - 27.02.2019 в 13:21
krosav4ig Дата: Среда, 27.02.2019, 03:36 | Сообщение № 460 | Тема: Контроль действия паспортов РФ через условное форматирование
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ComiC, для оформления формул в постах есть кнопка

[moder]Андрей, спасибо за то, что ты указал автору на нарушение Правил, но это вовсе не означает, что прямо здесь можно и ответ давать
Удалил я его, ты уж извиняй


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

Сообщение отредактировал _Boroda_ - Среда, 27.02.2019, 09:37
 
Ответить
СообщениеComiC, для оформления формул в постах есть кнопка

[moder]Андрей, спасибо за то, что ты указал автору на нарушение Правил, но это вовсе не означает, что прямо здесь можно и ответ давать
Удалил я его, ты уж извиняй

Автор - krosav4ig
Дата добавления - 27.02.2019 в 03:36
Поиск:

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