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

Вход

Регистрация

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

 

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

Результаты поиска
krosav4ig Дата: Понедельник, 25.02.2019, 07:39 | Сообщение № 1881 | Тема: Извлечь слова по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
у этих номеров есть четкая структура? если да, то можно через UDF с regex нужные данные тянуть


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеу этих номеров есть четкая структура? если да, то можно через UDF с regex нужные данные тянуть

Автор - krosav4ig
Дата добавления - 25.02.2019 в 07:39
krosav4ig Дата: Вторник, 26.02.2019, 03:38 | Сообщение № 1882 | Тема: проверить в массиве, повторно ли обращается абонент
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Интересно сравнить аналогичное с работой PowerQuery

Ну пока anvg молчит попробую я чего-нить путного изобразить
[vba]
Код
let
  Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
  Отбор =
    Table.AddColumn(
      Источник,
      "Строка",
      each let
        клиент=[Номер клиента],
        закрыто=[Дата закрытия],
        тема=[Тема обращения]
      in
        Table.First(
          Table.SelectRows(
            Источник,
            each [Номер клиента]=клиент and [Дата создания]>закрыто and [Тема обращения]=тема
          )
        )
    ),
  Повтор =
    Table.FromRecords(
      Table.TransformRows(
        Отбор,
        each Record.TransformFields(
          _ ,
          let
            r = _
          in
            {
              "Повтор",
              each try
                if ((r[Строка][Дата создания]-r[Дата закрытия]))<#duration(0,48,1,0)
                then
                  "Повторное"
                else
                  "Единичное"
              otherwise
                "Единичное"
            }
        )
      )
    ),
  #"Удаленные столбцы" = Table.RemoveColumns(Повтор,{"Строка"}),
  #"Измененный тип" = Table.TransformColumnTypes(#"Удаленные столбцы",{{"Код.обращения", Int64.Type}, {"Номер клиента", Int64.Type}, {"Дата создания", type datetime}, {"Дата закрытия", type datetime}, {"Тема обращения", type text}, {"Повтор", type text}})
in
  #"Измененный тип"
[/vba]
К сообщению приложен файл: 777-1.xlsm (34.3 Kb)


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

Сообщение отредактировал krosav4ig - Вторник, 26.02.2019, 03:40
 
Ответить
Сообщение
Интересно сравнить аналогичное с работой PowerQuery

Ну пока anvg молчит попробую я чего-нить путного изобразить
[vba]
Код
let
  Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
  Отбор =
    Table.AddColumn(
      Источник,
      "Строка",
      each let
        клиент=[Номер клиента],
        закрыто=[Дата закрытия],
        тема=[Тема обращения]
      in
        Table.First(
          Table.SelectRows(
            Источник,
            each [Номер клиента]=клиент and [Дата создания]>закрыто and [Тема обращения]=тема
          )
        )
    ),
  Повтор =
    Table.FromRecords(
      Table.TransformRows(
        Отбор,
        each Record.TransformFields(
          _ ,
          let
            r = _
          in
            {
              "Повтор",
              each try
                if ((r[Строка][Дата создания]-r[Дата закрытия]))<#duration(0,48,1,0)
                then
                  "Повторное"
                else
                  "Единичное"
              otherwise
                "Единичное"
            }
        )
      )
    ),
  #"Удаленные столбцы" = Table.RemoveColumns(Повтор,{"Строка"}),
  #"Измененный тип" = Table.TransformColumnTypes(#"Удаленные столбцы",{{"Код.обращения", Int64.Type}, {"Номер клиента", Int64.Type}, {"Дата создания", type datetime}, {"Дата закрытия", type datetime}, {"Тема обращения", type text}, {"Повтор", type text}})
in
  #"Измененный тип"
[/vba]

Автор - krosav4ig
Дата добавления - 26.02.2019 в 03:38
krosav4ig Дата: Вторник, 26.02.2019, 21:39 | Сообщение № 1883 | Тема: Подстановка значений из одной таблицы в другую
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
для F145
Код
=ВПР($C145;ИНДЕКС('Таблица №2'!$A:$E;Ч(ИНДЕКС(СТРОКА('Таблица №2'!$A$1:$A$435);));Ч(ИНДЕКС(ОСТАТ(СТОЛБЕЦ($A:$E)+3;5)+1;)));ОСТАТ(СТОЛБЕЦ(A145)+1;5)+1;)
К сообщению приложен файл: 2566231.xlsb (91.7 Kb)


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

Сообщение отредактировал krosav4ig - Вторник, 26.02.2019, 21:39
 
Ответить
Сообщениедля F145
Код
=ВПР($C145;ИНДЕКС('Таблица №2'!$A:$E;Ч(ИНДЕКС(СТРОКА('Таблица №2'!$A$1:$A$435);));Ч(ИНДЕКС(ОСТАТ(СТОЛБЕЦ($A:$E)+3;5)+1;)));ОСТАТ(СТОЛБЕЦ(A145)+1;5)+1;)

Автор - krosav4ig
Дата добавления - 26.02.2019 в 21:39
krosav4ig Дата: Среда, 27.02.2019, 03:36 | Сообщение № 1884 | Тема: Контроль действия паспортов РФ через условное форматирование
Группа: Друзья
Ранг: Старожил
Сообщений: 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
krosav4ig Дата: Среда, 27.02.2019, 13:21 | Сообщение № 1885 | Тема: Уникальные значения в выпадающем списке ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 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 Дата: Четверг, 28.02.2019, 11:58 | Сообщение № 1886 | Тема: Аналог ВПР при обращение с 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 Дата: Четверг, 28.02.2019, 12:42 | Сообщение № 1887 | Тема: Аналог ВПР при обращение с 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, 13:58 | Сообщение № 1888 | Тема: Аналог ВПР при обращение с 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, 15:21 | Сообщение № 1889 | Тема: Аналог ВПР при обращение с 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, 16:25 | Сообщение № 1890 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 18:47 | Сообщение № 1891 | Тема: Суммирование по нескольким условиям в разных диапазонах
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 20:57 | Сообщение № 1892 | Тема: Удаление строк по значению
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 23:36 | Сообщение № 1893 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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 Дата: Пятница, 01.03.2019, 01:27 | Сообщение № 1894 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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 Дата: Пятница, 01.03.2019, 03:07 | Сообщение № 1895 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 06:10 | Сообщение № 1896 | Тема: Включение паузы внутри работающего скрипта.
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 08:10 | Сообщение № 1897 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 08:17 | Сообщение № 1898 | Тема: Включение паузы внутри работающего скрипта.
Группа: Друзья
Ранг: Старожил
Сообщений: 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:49 | Сообщение № 1899 | Тема: Извлечь слова по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 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, 19:10 | Сообщение № 1900 | Тема: Программно растянуть умную таблицу до конечных данных
Группа: Друзья
Ранг: Старожил
Сообщений: 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
Поиск:

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