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

Вход

Регистрация

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

 

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

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

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


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

Автор - krosav4ig
Дата добавления - 02.03.2019 в 07:34
krosav4ig Дата: Воскресенье, 03.03.2019, 07:58 | Сообщение № 1902 | Тема: Выборка данных из строк
Группа: Друзья
Ранг: Старожил
Сообщений: 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 Дата: Воскресенье, 03.03.2019, 11:33 | Сообщение № 1903 | Тема: Сосчитать нажатые 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, 13:10 | Сообщение № 1904 | Тема: Определение надвинутых фигур
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
a=координаты верхней границы 1 фигуры
b=координаты нижней границы 1 фигуры
с=координаты левой границы 1 фигуры
d=координаты правой границы 1 фигуры
e=координаты верхней границы 2 фигуры
f=координаты нижней границы 2 фигуры
g=координаты левой границы 2 фигуры
h=координаты правой границы 2 фигуры
i=application.median(a,b,e,f)
j=application.median(c,d,g,h)
If i < a And i > b And j > c And j < d then Надвинуто=true
[/vba]


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

Сообщение отредактировал krosav4ig - Воскресенье, 03.03.2019, 13:11
 
Ответить
Сообщение[vba]
Код
a=координаты верхней границы 1 фигуры
b=координаты нижней границы 1 фигуры
с=координаты левой границы 1 фигуры
d=координаты правой границы 1 фигуры
e=координаты верхней границы 2 фигуры
f=координаты нижней границы 2 фигуры
g=координаты левой границы 2 фигуры
h=координаты правой границы 2 фигуры
i=application.median(a,b,e,f)
j=application.median(c,d,g,h)
If i < a And i > b And j > c And j < d then Надвинуто=true
[/vba]

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

Excel 2007,2010,2013
Нана123, ПКМ по любой стрелке слева от ярлычков листов


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

Сообщение отредактировал krosav4ig - Воскресенье, 03.03.2019, 17:26
 
Ответить
СообщениеНана123, ПКМ по любой стрелке слева от ярлычков листов

Автор - krosav4ig
Дата добавления - 03.03.2019 в 13:55
krosav4ig Дата: Воскресенье, 03.03.2019, 14:00 | Сообщение № 1906 | Тема: Сосчитать нажатые ToggleButton
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Бубенчик, а это ужо другая тема


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеБубенчик, а это ужо другая тема

Автор - krosav4ig
Дата добавления - 03.03.2019 в 14:00
krosav4ig Дата: Воскресенье, 03.03.2019, 15:26 | Сообщение № 1907 | Тема: Нет списка чтобы выбрать лист из общего количества
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
разве не ПКМ?

ога, заплетык языкается, право с левом перепутал :(


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

Сообщение отредактировал krosav4ig - Воскресенье, 03.03.2019, 15:27
 
Ответить
Сообщение
разве не ПКМ?

ога, заплетык языкается, право с левом перепутал :(

Автор - krosav4ig
Дата добавления - 03.03.2019 в 15:26
krosav4ig Дата: Воскресенье, 03.03.2019, 15:47 | Сообщение № 1908 | Тема: Как оформлять сообщения?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Нана123, теги ( bb-коды) - это инструмент для форматирования текста поста и внедрения различных элементов в сообщения (графика, видео, ссылки). Видео в первом посте не заметили? ссылка на то видео - тег URL .
а вот это же видео, вставленное тегом video
Тут также приведены примеры использования тегов.
При написании этого поста я использовал 1 тег b, 3 тега url, 1 тег img, 1 тег video


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеНана123, теги ( bb-коды) - это инструмент для форматирования текста поста и внедрения различных элементов в сообщения (графика, видео, ссылки). Видео в первом посте не заметили? ссылка на то видео - тег URL .
а вот это же видео, вставленное тегом video
Тут также приведены примеры использования тегов.
При написании этого поста я использовал 1 тег b, 3 тега url, 1 тег img, 1 тег video

Автор - krosav4ig
Дата добавления - 03.03.2019 в 15:47
krosav4ig Дата: Воскресенье, 03.03.2019, 16:14 | Сообщение № 1909 | Тема: Как оформлять сообщения?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Пожалуйста :)
Кстати, не так давно наткнулся на тему test, меня заинтересовали пост #13 и #14. Возник вопрос, у нас реализованы bb-коды таблиц? Если да, то какой синтаксис (тег самой таблицы, теги для tr, td/th, есть ли colspan/rowspan). есть мысли по генерации bb-кодов при вставке скопированной таблицы (из excel/word/веб-страницы) из буфера обмена.


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеПожалуйста :)
Кстати, не так давно наткнулся на тему test, меня заинтересовали пост #13 и #14. Возник вопрос, у нас реализованы bb-коды таблиц? Если да, то какой синтаксис (тег самой таблицы, теги для tr, td/th, есть ли colspan/rowspan). есть мысли по генерации bb-кодов при вставке скопированной таблицы (из excel/word/веб-страницы) из буфера обмена.

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

Excel 2007,2010,2013
Amator, вместо textbox используйте microsoft masked edit control 6.0 (msmask32.ocx 6.0.84.18), в нем можно установить маску ввода


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеAmator, вместо textbox используйте microsoft masked edit control 6.0 (msmask32.ocx 6.0.84.18), в нем можно установить маску ввода

Автор - krosav4ig
Дата добавления - 03.03.2019 в 16:21
krosav4ig Дата: Понедельник, 04.03.2019, 08:52 | Сообщение № 1911 | Тема: Определение надвинутых фигур
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
dim фигура2 as shape
with activesheet
    with .shapes("Овал 1")
        'вычисление координат границ Овала 1
    end with
    'проход циклом по объектам в коллекции shapes
    for each фигура2 in .shapes
        if фигура2.name<>"Овал 1" then
           'вычисление координат границ фигуры2 и пересечения с овалом
        endif
    next
end with
[/vba]


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

Сообщение отредактировал krosav4ig - Понедельник, 04.03.2019, 12:05
 
Ответить
Сообщение[vba]
Код
dim фигура2 as shape
with activesheet
    with .shapes("Овал 1")
        'вычисление координат границ Овала 1
    end with
    'проход циклом по объектам в коллекции shapes
    for each фигура2 in .shapes
        if фигура2.name<>"Овал 1" then
           'вычисление координат границ фигуры2 и пересечения с овалом
        endif
    next
end with
[/vba]

Автор - krosav4ig
Дата добавления - 04.03.2019 в 08:52
krosav4ig Дата: Понедельник, 04.03.2019, 12:12 | Сообщение № 1912 | Тема: Определение надвинутых фигур
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
SergVrn, мозг думает одно, руки печатают другое :(
исправил в своем посте

Вам еще нужно будет создать динамический массив
и в цикле, если надвинуто, увеличивать его размерность и добавлять в него имя шейпа
[vba]
Код
redim preserve
[/vba], если что


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

Сообщение отредактировал krosav4ig - Понедельник, 04.03.2019, 12:21
 
Ответить
СообщениеSergVrn, мозг думает одно, руки печатают другое :(
исправил в своем посте

Вам еще нужно будет создать динамический массив
и в цикле, если надвинуто, увеличивать его размерность и добавлять в него имя шейпа
[vba]
Код
redim preserve
[/vba], если что

Автор - krosav4ig
Дата добавления - 04.03.2019 в 12:12
krosav4ig Дата: Понедельник, 04.03.2019, 12:52 | Сообщение № 1913 | Тема: Определение надвинутых фигур
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
SergVrn, вместо sh.name нужно фигура2.name
[vba]
Код
Sub Макрос1()
    Dim фигура2 As Shape
    With ActiveSheet
        With .Shapes("Овал 1")
            'вычисление координат границ Овала 1
            'Здесь контекст- ActiveSheet.Shapes("Овал 1") , поэтому следующие 4 строчки отрабатывают корректно
            a = .Top
            b = .Top + .Height
            c = .Left
            d = .Left + .Width
        End With
        'проход фиклом по объектам в коллекции shapes
        For Each фигура2 In .Shapes
            If фигура2.Name <> "Овал 1" Then
                'вычисление координат границ фигуры2 и пересечения с овалом
                'а вот здесь контекст - activesheet и следующие 4 не будут работать (в классе worksheet нету свосйтв top и left)
                'чтобы работало нужно или обернуть их в конструкцию with фигура2 ... end with, или писать e=фигура2.top
                e = .Top
                f = .Top + .Height
                g = .Left
                h = .Left + .Width
                i = Application.Median(a, b, e, f)
                j = Application.Median(c, d, g, h)
                If i < a And i > b And j > c And j < d Then Надвинуто = True
            End If
        Next
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Понедельник, 04.03.2019, 12:55
 
Ответить
СообщениеSergVrn, вместо sh.name нужно фигура2.name
[vba]
Код
Sub Макрос1()
    Dim фигура2 As Shape
    With ActiveSheet
        With .Shapes("Овал 1")
            'вычисление координат границ Овала 1
            'Здесь контекст- ActiveSheet.Shapes("Овал 1") , поэтому следующие 4 строчки отрабатывают корректно
            a = .Top
            b = .Top + .Height
            c = .Left
            d = .Left + .Width
        End With
        'проход фиклом по объектам в коллекции shapes
        For Each фигура2 In .Shapes
            If фигура2.Name <> "Овал 1" Then
                'вычисление координат границ фигуры2 и пересечения с овалом
                'а вот здесь контекст - activesheet и следующие 4 не будут работать (в классе worksheet нету свосйтв top и left)
                'чтобы работало нужно или обернуть их в конструкцию with фигура2 ... end with, или писать e=фигура2.top
                e = .Top
                f = .Top + .Height
                g = .Left
                h = .Left + .Width
                i = Application.Median(a, b, e, f)
                j = Application.Median(c, d, g, h)
                If i < a And i > b And j > c And j < d Then Надвинуто = True
            End If
        Next
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 04.03.2019 в 12:52
krosav4ig Дата: Понедельник, 04.03.2019, 15:13 | Сообщение № 1914 | Тема: Определение надвинутых фигур
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрался таки до компа, вспомнил, что .Top отсчитывается сверху, поменял местами 2 знака > и < [vba]
Код
Option Explicit
Sub DetectIntersection()
    Dim a&, b&, c&, d&, e&, f&, g&, h&, i&, j&, k%, arr$(), Фигура2 As Object, sCallerName$
    Const ShName$ = "Oval 1" 'имя Фигуры1
    With Application
        'если макрос был запущен нажатием на шейп, пишем в переменную имя этого шейпа
        If TypeName(.Caller) = "Shape" Then sCallerName = .Caller.Name
        With ActiveSheet 'контекст - активный лист, (все вызовы .Свойство или .Метод на этом уровне вложенности обращаются к нему)
            With .Shapes(ShName) 'контекст - Шейп с именем ShName
                'вычисление координат границ Фигуры1
                a = .Top: b = a + .Height
                c = .Left: d = c + .Width
            End With ' co следующей строки контекст снова активный лист
            'проход циклом по объектам в коллекции shapes
            For Each Фигура2 In .Shapes
                'Если имя Фигуры1 <> имени Фигуры1 и <> sCallerName (имя шейпа, если этот макрос был запущен кликом по нему)
                If Фигура2.Name <> ShName And Фигура2.Name <> sCallerName Then
                    With Фигура2 'контекст - Фигура2
                        e = .Top: f = .Top + .Height
                        g = .Left: h = .Left + .Width
                    End With ' co следующей строки контекст снова активный лист
                    'вычисления медиан вертикальных и горизонтальных координат Фигуры1 и Фигуры2
                    i = Application.Median(a, b, f, e)
                    j = Application.Median(c, d, g, h)
                    'если точка с координатами = полученных медиан находится внутри шейпа ShName
                    If i > a And i < b And j > c And j < d Then
                        'Переопределяем размерность массива
                        ReDim Preserve arr(k)
                        'пишем в последний элемент массива имя Фигуры2
                        arr(k) = Фигура2.Name
                        k = k + 1
                    End If
                End If
            Next
            'область непустых ячеек, граничащих с N4
            With .[N4].CurrentRegion
                'смещаемся на 1 ячейку вниз и выбираем столбец N
                With Intersect(.Cells, .Offset(1), .Parent.Columns("N"))
                    'Очищаем значения выбранных ячеек
                    On Error Resume Next
                    .ClearContents
                    On Error GoTo 0
                End With
                'пишем новые значения из массива arr, если он не пуст
                If i Then .Offset(1).Resize(k).Value = Application.Transpose(arr)
            End With
        End With
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Понедельник, 04.03.2019, 15:17
 
Ответить
СообщениеДобрался таки до компа, вспомнил, что .Top отсчитывается сверху, поменял местами 2 знака > и < [vba]
Код
Option Explicit
Sub DetectIntersection()
    Dim a&, b&, c&, d&, e&, f&, g&, h&, i&, j&, k%, arr$(), Фигура2 As Object, sCallerName$
    Const ShName$ = "Oval 1" 'имя Фигуры1
    With Application
        'если макрос был запущен нажатием на шейп, пишем в переменную имя этого шейпа
        If TypeName(.Caller) = "Shape" Then sCallerName = .Caller.Name
        With ActiveSheet 'контекст - активный лист, (все вызовы .Свойство или .Метод на этом уровне вложенности обращаются к нему)
            With .Shapes(ShName) 'контекст - Шейп с именем ShName
                'вычисление координат границ Фигуры1
                a = .Top: b = a + .Height
                c = .Left: d = c + .Width
            End With ' co следующей строки контекст снова активный лист
            'проход циклом по объектам в коллекции shapes
            For Each Фигура2 In .Shapes
                'Если имя Фигуры1 <> имени Фигуры1 и <> sCallerName (имя шейпа, если этот макрос был запущен кликом по нему)
                If Фигура2.Name <> ShName And Фигура2.Name <> sCallerName Then
                    With Фигура2 'контекст - Фигура2
                        e = .Top: f = .Top + .Height
                        g = .Left: h = .Left + .Width
                    End With ' co следующей строки контекст снова активный лист
                    'вычисления медиан вертикальных и горизонтальных координат Фигуры1 и Фигуры2
                    i = Application.Median(a, b, f, e)
                    j = Application.Median(c, d, g, h)
                    'если точка с координатами = полученных медиан находится внутри шейпа ShName
                    If i > a And i < b And j > c And j < d Then
                        'Переопределяем размерность массива
                        ReDim Preserve arr(k)
                        'пишем в последний элемент массива имя Фигуры2
                        arr(k) = Фигура2.Name
                        k = k + 1
                    End If
                End If
            Next
            'область непустых ячеек, граничащих с N4
            With .[N4].CurrentRegion
                'смещаемся на 1 ячейку вниз и выбираем столбец N
                With Intersect(.Cells, .Offset(1), .Parent.Columns("N"))
                    'Очищаем значения выбранных ячеек
                    On Error Resume Next
                    .ClearContents
                    On Error GoTo 0
                End With
                'пишем новые значения из массива arr, если он не пуст
                If i Then .Offset(1).Resize(k).Value = Application.Transpose(arr)
            End With
        End With
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 04.03.2019 в 15:13
krosav4ig Дата: Понедельник, 04.03.2019, 20:32 | Сообщение № 1915 | Тема: Как ограничить диапазон FormulaR1C1?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в начале кода [vba]
Код
dim bool as Boolean
        bool = Application.AutoCorrect.AutoFillFormulasInLists
        Application.AutoCorrect.AutoFillFormulasInLists = False
[/vba]в конце [vba]
Код
Application.AutoCorrect.AutoFillFormulasInLists = bool
[/vba]

[vba]
Код
Sub Date_And_Time_GAZ_2()
    Dim start_time As Date, i As Integer, Arr(), bool As Boolean, calc&
    
    start_time = InputBox("Введите дату, с которой начнётся таблица. Например 01.01.2019")
    Arr = [transpose(transpose(mod(row(r1:r24),24)))/24]
    With Application
        bool = .AutoCorrect.AutoFillFormulasInLists
        .AutoCorrect.AutoFillFormulasInLists = False: calc = .Calculation
        .ScreenUpdating = 0: .EnableEvents = 0: .Calculation = xlCalculationManual
        With .ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(10010, 10)), , xlNo)
            .Name = "ГАЗ"
            For i = 2 To (.ListRows.Count \ 24) * 24 Step 24
                With .ListColumns(1).Range.Cells(i)
                    .Value = start_time + i \ 24
                    With .Offset(, 1).Resize(24)
                        .Value = Arr
                        .NumberFormat = "hh:mm"
                    End With
                    .Offset(23, 2).Resize(, 5).Borders(xlEdgeBottom).Weight = xlThick
                    With .Offset(23, 7).Resize(, 3)
                        .Interior.ColorIndex = 27
                        .Borders.Weight = xlThick
                        .Cells(1, 3).FormulaR1C1 = "= RC[-2]+RC[-1]"
                    End With
                End With
            Next
        End With
        Application.AutoCorrect.AutoFillFormulasInLists = bool
        .ScreenUpdating = 1: .EnableEvents = 1: .Calculation = calc
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Понедельник, 04.03.2019, 20:34
 
Ответить
Сообщениев начале кода [vba]
Код
dim bool as Boolean
        bool = Application.AutoCorrect.AutoFillFormulasInLists
        Application.AutoCorrect.AutoFillFormulasInLists = False
[/vba]в конце [vba]
Код
Application.AutoCorrect.AutoFillFormulasInLists = bool
[/vba]

[vba]
Код
Sub Date_And_Time_GAZ_2()
    Dim start_time As Date, i As Integer, Arr(), bool As Boolean, calc&
    
    start_time = InputBox("Введите дату, с которой начнётся таблица. Например 01.01.2019")
    Arr = [transpose(transpose(mod(row(r1:r24),24)))/24]
    With Application
        bool = .AutoCorrect.AutoFillFormulasInLists
        .AutoCorrect.AutoFillFormulasInLists = False: calc = .Calculation
        .ScreenUpdating = 0: .EnableEvents = 0: .Calculation = xlCalculationManual
        With .ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(10010, 10)), , xlNo)
            .Name = "ГАЗ"
            For i = 2 To (.ListRows.Count \ 24) * 24 Step 24
                With .ListColumns(1).Range.Cells(i)
                    .Value = start_time + i \ 24
                    With .Offset(, 1).Resize(24)
                        .Value = Arr
                        .NumberFormat = "hh:mm"
                    End With
                    .Offset(23, 2).Resize(, 5).Borders(xlEdgeBottom).Weight = xlThick
                    With .Offset(23, 7).Resize(, 3)
                        .Interior.ColorIndex = 27
                        .Borders.Weight = xlThick
                        .Cells(1, 3).FormulaR1C1 = "= RC[-2]+RC[-1]"
                    End With
                End With
            Next
        End With
        Application.AutoCorrect.AutoFillFormulasInLists = bool
        .ScreenUpdating = 1: .EnableEvents = 1: .Calculation = calc
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 04.03.2019 в 20:32
krosav4ig Дата: Вторник, 05.03.2019, 19:51 | Сообщение № 1916 | Тема: Размещение надписи по центру линии
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Glass4217, намучаетесь вы еще с такими именами переменных...
[vba]
Код
Sub Вариант_1()
    Dim c_x1y1 As Range, c_x2y2 As Range, x#, y#, i%, h#
    
    lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
    
    Set c_x1y1 = Range(Cells(2, 2), Cells(3, lastcol))
    Set c_x2y2 = Range(Cells(6, 2), Cells(7, lastcol))
    
    With ActiveSheet.Shapes
        On Error Resume Next
        i = 1
        Do While Err = 0
            .Item("line " & i).Delete
            .Item("label " & i).Delete
            i = i + 1
        Loop
        On Error GoTo 0
        For i = 1 To lastcol - 1
            x = c_x1y1(1, i) + (c_x2y2(1, i) - c_x1y1(1, i) - c_x1y1(1, 1).Width) / 2
            y = c_x1y1(2, i) + (c_x2y2(2, i) - c_x1y1(2, i) - c_x1y1(7, 1).Height) / 2
            With .AddConnector(1, c_x1y1(1, i), c_x1y1(2, i), c_x2y2(1, i), c_x2y2(2, i))
                .Name = "line " & i
            End With
            With .AddTextbox(1, x, y, c_x1y1(1, i).Width, c_x1y1(7, i).Height)
                .Name = "label " & i
                h = .Height
                With .TextFrame
                    .Characters.Text = c_x1y1(7, i)
                    .HorizontalAlignment = xlHAlignCenter
                    .VerticalAlignment = xlVAlignCenter
                    .MarginBottom = 0: .MarginLeft = 0
                    .MarginRight = 0: .MarginTop = 0
                    .AutoSize = True
                End With
                If .Height <> h Then .Top = .Top - (.Height - h) / 2
            End With
        Next i
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеGlass4217, намучаетесь вы еще с такими именами переменных...
[vba]
Код
Sub Вариант_1()
    Dim c_x1y1 As Range, c_x2y2 As Range, x#, y#, i%, h#
    
    lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
    
    Set c_x1y1 = Range(Cells(2, 2), Cells(3, lastcol))
    Set c_x2y2 = Range(Cells(6, 2), Cells(7, lastcol))
    
    With ActiveSheet.Shapes
        On Error Resume Next
        i = 1
        Do While Err = 0
            .Item("line " & i).Delete
            .Item("label " & i).Delete
            i = i + 1
        Loop
        On Error GoTo 0
        For i = 1 To lastcol - 1
            x = c_x1y1(1, i) + (c_x2y2(1, i) - c_x1y1(1, i) - c_x1y1(1, 1).Width) / 2
            y = c_x1y1(2, i) + (c_x2y2(2, i) - c_x1y1(2, i) - c_x1y1(7, 1).Height) / 2
            With .AddConnector(1, c_x1y1(1, i), c_x1y1(2, i), c_x2y2(1, i), c_x2y2(2, i))
                .Name = "line " & i
            End With
            With .AddTextbox(1, x, y, c_x1y1(1, i).Width, c_x1y1(7, i).Height)
                .Name = "label " & i
                h = .Height
                With .TextFrame
                    .Characters.Text = c_x1y1(7, i)
                    .HorizontalAlignment = xlHAlignCenter
                    .VerticalAlignment = xlVAlignCenter
                    .MarginBottom = 0: .MarginLeft = 0
                    .MarginRight = 0: .MarginTop = 0
                    .AutoSize = True
                End With
                If .Height <> h Then .Top = .Top - (.Height - h) / 2
            End With
        Next i
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 05.03.2019 в 19:51
krosav4ig Дата: Среда, 06.03.2019, 00:44 | Сообщение № 1917 | Тема: Чего вам не хватает на форуме?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Иногда очень хочется пожаловаться на свой пост (ляпнул не подумав/задублилось), а кнопочки нет


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

Сообщение отредактировал krosav4ig - Среда, 06.03.2019, 00:52
 
Ответить
СообщениеИногда очень хочется пожаловаться на свой пост (ляпнул не подумав/задублилось), а кнопочки нет

Автор - krosav4ig
Дата добавления - 06.03.2019 в 00:44
krosav4ig Дата: Среда, 06.03.2019, 00:58 | Сообщение № 1918 | Тема: Как оформлять сообщения?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Да я и так все, что нужно разглядел :) Сформировать код таблицы из буфера обмена не составляет сложности (собственно, это ужо сделано), но вот сайт его не принимает, видимо те посты писались через wysiwyg-редактор или нужны привилегии.


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

Сообщение отредактировал krosav4ig - Среда, 06.03.2019, 23:46
 
Ответить
СообщениеДа я и так все, что нужно разглядел :) Сформировать код таблицы из буфера обмена не составляет сложности (собственно, это ужо сделано), но вот сайт его не принимает, видимо те посты писались через wysiwyg-редактор или нужны привилегии.

Автор - krosav4ig
Дата добавления - 06.03.2019 в 00:58
krosav4ig Дата: Среда, 06.03.2019, 23:59 | Сообщение № 1919 | Тема: Чего вам не хватает на форуме?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в продолжение к #217 и тут
Дописал я скрипт для вставки bb-кодов таблиц, добавил код для преобразования bb-кодов в таблицы. Вот пара таблиц для теста, без установленного скрипта будут отображаться только коды


вот так эти таблицы выглядят у меня с установленным скриптом в tampermonkey
К сообщению приложен файл: 4353220.png (86.1 Kb)


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

Сообщение отредактировал krosav4ig - Четверг, 07.03.2019, 00:04
 
Ответить
Сообщениев продолжение к #217 и тут
Дописал я скрипт для вставки bb-кодов таблиц, добавил код для преобразования bb-кодов в таблицы. Вот пара таблиц для теста, без установленного скрипта будут отображаться только коды


вот так эти таблицы выглядят у меня с установленным скриптом в tampermonkey

Автор - krosav4ig
Дата добавления - 06.03.2019 в 23:59
krosav4ig Дата: Четверг, 07.03.2019, 23:42 | Сообщение № 1920 | Тема: Сломались теги формул
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[offtop]
А не растут ли ноги отсюда?

Неа :) , мой скрипт-то чисто клиентский[/offtop]


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

Сообщение отредактировал krosav4ig - Четверг, 07.03.2019, 23:42
 
Ответить
Сообщение[offtop]
А не растут ли ноги отсюда?

Неа :) , мой скрипт-то чисто клиентский[/offtop]

Автор - krosav4ig
Дата добавления - 07.03.2019 в 23:42
Поиск:

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