Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 69 След.
Сбор данных с нескольких таблиц при определенных условиях. Не выводить повторяющиеся элементы
 
Код
Sub rrrr(dtime, dname , ddat )
 
gh = (ThisWorkbook.Worksheets("Лист4").UsedRange.Row - 1 + ThisWorkbook.Worksheets("Лист4").UsedRange.Rows.Count) + 1
Set wdat = ThisWorkbook.Worksheets("Лист4").Cells(gh, 1)
Set wtime = ThisWorkbook.Worksheets("Лист4").Cells(gh, 2)
Set wname = ThisWorkbook.Worksheets("Лист4").Cells(gh, 3)
Set ganr = ThisWorkbook.Worksheets("Лист4").Cells(gh, 4)
Set wvoz = ThisWorkbook.Worksheets("Лист4").Cells(gh, 5)
Set wanot = ThisWorkbook.Worksheets("Лист4").Cells(gh, 6)
 
If dtime.Value > 0 Then
   wtime.Value = dtime
   wname.Value = dname
   wdat.Value = ddat.Value
i = dname
j = Application.Match(i, [Название], 0)
wvoz.Value = Application.Index([ОписаниеПрограмм], j, 2)
ganr.Value = Application.Index([ОписаниеПрограмм], j, 3)
wanot.Value = Application.Index([ОписаниеПрограмм], j, 4)

End sub

Sub cycler ()

Set dtime = ThisWorkbook.Worksheets("Эфирная сетка").Cells(con1, 2)
Set dname = ThisWorkbook.Worksheets("Эфирная сетка").Cells(con1, 4)
Set ddat = ThisWorkbook.Worksheets("Эфирная сетка").Cells(1, 2)

Call rrrr(dtime, dname , ddat )

Set dtime = ThisWorkbook.Worksheets("Эфирная сетка").Cells(con2, 8)
Set dname = ThisWorkbook.Worksheets("Эфирная сетка").Cells(con2, 10)
Set ddat = ThisWorkbook.Worksheets("Эфирная сетка").Cells(1, 8)
Call rrrr(dtime, dname , ddat )
'....
End sub
Изменено: Dima S - 15 дек 2020 01:03:18
[ Закрыто] Оптимизационная задача
 
с таким подходом вас могут скоро забанить.
вам уже писали что
Цитата
Здесь не решалка для ленивых студентов!
Доработать калькулятор штрафных санкций для нескольких сумм задолженности.
 
не понятна логика расчета.
прочитайте правила форума и покажите как есть и как надо - то есть ожидаемий результат для нескольких строк
VBA агрегация данных по столбцу большого объема данных
 
можно и массивом, можно и формулой, можно и вариантами от БМВ
Много как можно.
Можно просто сводной.
Как присвоить переменной диапазон значений для расчета при помощи формулы
 
Здравствуйте.
Из столбца С в вашу формулу ничего не попадает.
По краней мере в примере.
А так - пробуйте


Код
Sub Расчет()

Range("f3:f7").Formula = "=1/d3*100"
'если нужно заменить формулы на значения, то добавить
Range("f3:f7").Value = Range("f3:f7").Value

End Sub
Изменено: Dima S - 9 дек 2020 19:49:24
Перезапись таблицы ListObject vba
 
Jack Famous,
спасибо, но это уже реализовано в файле-примере и проблемы, которые такой способ приносит описаны више.
Перезапись таблицы ListObject vba
 
RAN, вопрос не в том, чтобы формулу изменить - это я уже сделал.
вопрос как адекватно очистить таблицу перед вставкой новых данных.
ведь ламается не только УФ, но и "обычное"(см више).
Изменено: Dima S - 23 июн 2020 16:32:24
Как открыть ссылку макросом НЕ через IE?, Как открыть ссылку браузером по умолчанию или MS Edge?
 
что вы подразумеваете под "открыванием интернет-сайта по ссылке через VBA"?
просто переход по ссылке через браузер или получение каких то данных в переменную?(при этом не обязательно показывать что либо пользователю)
Перезапись таблицы ListObject vba
 
Цитата
sokol92 написал:
Если, например, просто выделить часть строк "умной" таблицы
речь идет не просто о части строк, а о полном их удалении и последующей вставки новых данных,
не поломав при этом вычисляемые столбцы, форматы столбцов и УФ.
Перезапись таблицы ListObject vba
 
Думал  уже нашел решение - не тут то было)
Цитата
RAN написал:
Поелику примера нет,
Вот пример.
RAN - ваш способ в макросе write_table2.
Обратите внимание на УФ - оно ломается.

При перезаписи с помощью write_table - нет.
Но появился другой баг - форматы с первой строки вроде бы копируются, но значения в этих форматах - только в первой строке, в остальных - срабатывает автоформат.
если же продублировать строку
     
Код
 .DataBodyRange.Resize(UBound(rezult), UBound(rezult, 2)).Value = rezult

то все вставляется правильно.
пока использую как временный костыль, ибо на больших массивах, думаю, будет лишняя задержка.
У кого есть мысли почему так происходит?
Перезапись таблицы ListObject vba
 
Пока ждал ответа - нашел более-менее адекватный способ.

Код
    Table.DataBodyRange.Rows(1).ClearContents
    Table.DataBodyRange.Offset(1, 0).Resize(Table.DataBodyRange.Rows.Count - 1, _
    Table.DataBodyRange.Columns.Count).Rows.Delete
Перезапись таблицы ListObject vba
 
Здравствуйте.
Поделитесь способом пожалуйста, как по нормальному перезаписать таблицу?
Проблема возникает, когда новых строк меньше, чем существующих.
Пробовал варианты:
1. Вычислить разницу между новым и старым размером, удалить лишние строки в цикле как
Код
                        Do While .ListRows.Count > rows_count
                            .ListRows(.ListRows.Count).Delete
                            Loop

При больших разницах - это долго.

2.
Код
  .DataBodyRange.Rows.Delete
  .ListRows.Add
  .DataBodyRange.Resize(UBound(rezult), UBound(rezult, 2)).Value = rezult

это быстро, но слетает условное форматирование, в котором ссылка на две строки таблицы.
Вариант с ClearContents оставляет форматирование внизу.
Вариант с удалением всей строки не подходит, так как влияет на другие таблицы на листе.
По этой же причине не подходит.Listrows(i).range.resize(dif_rows).delete
способа  удаления нескольких listrows за раз не нашел.
Иероглифы в vbaproject
 
в настройках виндовс - язык и региональные стандарты - для програм не поддерживающих Юникод выберите русский язык
Здесь подробнее.
Настройка переменного значение критерия/фильтра в умных таблицах, vba, macro
 
Цитата
Alex D написал:
по логическому условию. IF TRUE = "2"
логики здесь как раз не хватает.
Как получить время в миллисекундах?
 
Код
a = Format(Now(), "dd/mm/yyyy hh:nn:ss:ms")
Не получается сравнить значения в столбцах
 
Так?
Динамическая выборка по критерию DAX
 
все получилось, причем разными вариантами.
Всем спасибо.
Изменено: Dima S - 16 янв 2020 15:10:17
Динамическая выборка по критерию DAX
 
созданная "на лету" таблица не реагирует на разделитель.
Динамическая выборка по критерию DAX
 
Спасибо всем.
Цитата
PooHkrd написал:
таблица, то это проще через Power Query  все же сделать.
Нужна таблица, но я планирую перенести это дело в Power BI и выбирать дату с помощью разделителя.
А как передать выбранную дату в Power Query я не знаю.
В принципе и с DAX тоже проблемы.
Создал CALENDARAUTO  и меру
Код
CurDate = MAX('MyCalendar'[Date])

но почему то ни одно решение ( решение PooHkrd  все таки реагирует - у меня был какой то кривой виджет с магазина. со стандартным работает)   не реагирует на выбранное в разделителе значение.
Например в решении Андрея
Код
Таблица = Var vrows = FILTER('Таблиця1'; .'Таблиця1'[Date] < DATE(2019; 4; 21))

когда дата указанна жестко - все работает, если как мера - нет.

Можно это как то победить?
Изменено: Dima S - 15 янв 2020 10:57:52
Сбор результатов выдаваемых калькулятором расстояний
 
Grantorino,
а вы можете объяснить что конкретно нужно, ибо для меня пока ваши макросы выглядят достаточно бессмысленными.
Копирование строк, содержащих признак, на другие листы
 
Цитата
lenatoy написал:
как сделать по двум/трем и более признакам

например так - указать признак через разделитель, например запятую


Код
Sub Test()
    Dim iCell As Range, Priznak As Variant
    Priznak = Application.InputBox("признак переноса сроки", "Екатеринбург", "Екатеринбург")
    Priznak = Split(Priznak, ",")

    For Each iCell In Range("A2", [A2].End(xlDown))
        For i = lbound(Priznak) To Ubound(Priznak)
            If iCell = Priznak(i) Then
                With Sheets("ЕКБ")
                    iCell.EntireRow.Copy Destination:=.Cells(.Cells(Rows.Count, "A").End(xlUp).Row + 1, "A")
                End With
            End If
        Next i
    Next iCell
    MsgBox "строки скопированы на другой лист", vbInformation, ""
End Sub


а вообще лучше с файлом, конечно.
Связь(фильтр) данных между комбобоксами, Организация взаимосвязи между двумя комбобоксами
 
Цитата
Джек Восмеркин написал:
Что бы при выборе данных в комбобоксе подтягивались данные из другого комбобокса,
Подтягивались куда?
Задание неясно.
если нужно во втором боксе получить список на основании первого, то что то типа
sSQL = "Select distinct id2 FROM Itog WHERE id1 =" &  Me.ComboBox1.Value & "ORDER BY 1"
Динамическая выборка по критерию DAX
 
Здравствуйте.
Начинаю осваивать POWER)
В частности Power Pivot i Power BI.
Не могу сообразить как "на лету" сформировать таблицу.

Пример:
Есть таблица переездов техники, но переезды бывают не каждый день.
Нужен отчет, который показывает последнее местонахождение на конкретную дату.

Пока реализовал через CROSSJOIN справочника техники и календаря и подтягиваю местонахождение,
но такая реализация кажется мне какой то кривой.
Можно ли как то вычислить максимальную дату меньше указанной и вернуть список техники?
Спасибо.
вызываемая процедура с параметром меняет значение переменной в главной
 
Тю, ночью уже башка совсем не варит)
Спасибо)
вызываемая процедура с параметром меняет значение переменной в главной
 
Здравствуйте.
Собственно проблема в названии.
При выполнении например такого макроса
Код
Sub test()
    lr = 2
    Call subtest(lr)
    MsgBox (lr)
End Sub

Sub subtest(lr)
    lr = 3
End Sub

в сообщении будет 3, а не 2, как я ожидал.
Это так и должно быть? Я почему то думал, что lr subtest'a и lr test'a - это две разные переменные, пусть и с одинаковыми именами.
Поиск и выведение заданной комбинации чисел в разных ячейках идущих в ряд
 
как отправная точка)
Получение уникального списка из разных диапазонов и их дальнейшее суммирование по количеству.
 
Я думаю - необязательно все в один столбец лепить.
Обычная сводная поудобней будет.
Создание "динамического" табеля учёта рабочего времени, Табель рабочего времени, который не требует ежегодной корректировки
 
Здравствуйте.
В вашем ТЗ вы пытаетесь реализовать "бумажный" подход, только в електронном виде.
Если рассматриваете немного иной подход к составлению графика готов взяться.
Контакты в профиле.
Автоматическое удаление строк двых таблиц на разных листах
 
Код
Option Explicit
Private Sub Worksheet_Activate()
    Dim arr_in
    Dim tabl As Object
    
    arr_in = Sheets(1).Range("Òàáëèöà1").Value
    Set tabl = Sheets(2).ListObjects("Òàáëèöà2")
 
    If Not tabl.DataBodyRange Is Nothing Then tabl.DataBodyRange.ClearContents
    tabl.Resize tabl.Range.Resize(UBound(arr_in) + 1)
    tabl.DataBodyRange.Value = arr_in
End Sub

Как вычислить диапазон для каждого наименования продукции VBA
 
Цитата
dedua написал:
это и есть сводная
нет. Это обычный диапазон с данными.
Я имел ввиду объект сводная таблица.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 69 След.
Наверх