Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка загрузки данных в listbox при двойном клике на ячейке диапазона, ошибка;381 Could not set the list property. Invalid property array index.
 
Добрый день. При двойном клике на ячейках диапазона C13:C206 выдает ошибку 381 Could not set the list property. Invalid property array index. Я так понимаю, значения собираются но не заносятся в listbox. Не могу понять в чем проблема. Как исключить ошибку и вывести заполненный Listbox?
Изменено: Станислав Вьюжанин - 14.01.2022 13:20:45
Двойной клик по ячейке с вызывает выпадающий список с поиском с соответствующей сортировкой
 
Добрый день. Подскажите пожалуйста, как по двойному клику на листе "список" диапазона В3:В10000, появлялся диапазон по условию J3:J10000, с листа "Состав". То есть сделав двойной клик по ячейке B5 (Овощи), выводился перечень овощей с листа "Состав". После выбора которого данные вставлялись бы на лист "Список"
По двойному клику по ячейке менять значения столбца
 
Добрый день.
Подскажите пожалуйста как по двойному клику в столбце b6:b1000 по надписи овощи сортировка менялась по значению столбца A  "да" D "Ово", а
по двойному клику в столбце b6:b1000 по надписи морковь сортировка менялась по значению столбца A  "да" D "Ово", E "мор"
Перенос значения из одного столбца в другой по двойному клику, Перенос значения из одного столбца в другой по двойному клику
 
Добрый день друзья.
Нужна помощь. Необходимо с помощью двойного клика по диапазону в столбце G в столбец J. Не удаляя при этом значения в в ячейке J, но зачеркивая их.
[ Закрыто] Перенос VBA, Перенос в соседнюю ячейку с переносом в ячейке с помощью VBA
 
Добрый день друзья.
Помогите пожалуйста. Имеется таблица.
Необходимо по двойному клику на диапазоне значений 7 столбца, перенести данное значение в 9 столбец, предварительно осуществить перенос имеющегося в этой таблице значения ниже.
Исходная таблица
Конечная таблица
При копировнии избежать замены символа Ø на Æ.
 
Добрый день друзья.
Имеется таблица с текстовыми строками в которых иногда встречается символ Ø, диаметра.
Копирую данные строки в массив:
Код
Smeta = .Range("A1:K" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value

А после обработки и выгрузки на лист он символ Ø диаметра меняет на Æ.

Подскажите пожалуйста не сложную функцию по поиску и замене символов в массиве макроса.
В массиве он отображается как знак ?.

Замену с символом я нашел:
Код
Symbol = ChrW(216)

Спасибо.
Excel VBA расчет формулы ПОИСКПОЗ
 
Друзья. Помогите пожалуйста формулу в vba прописать:
если(индекс(Smeta_contractor_all_works;поискпоз(Smeta_contractor_finish;Smeta_all_contractor;0);поискпоз($BX15;Smeta_contractor_works;0))="да";1;0)
Поясню:
Есть ячейки и текстом:
"Smeta_contractor_finish"=......
"$BX15"=.........
Есть таблица:
"Smeta_contractor_works" (20, 50) = ..............
Вертикальный столбец в таблице:
"Smeta_all_contractor" = ....................
Горизонтальная строка в таблице:
"Smeta_contractor_works" = ..........

На пересечении данных по условию:
Smeta_contractor_finish = Smeta_all_contractor
$BX15 = Smeta_contractor_works
Находится значение и если оно равно "да" то значение становится 1 и подставляется в формулу
если равно "нет" то значение становиться 0 и подставляется в формулу.
Код
    For sv = 1 To UBound(VB_Smeta_full)
      If VB_Smeta_full(sv, 14) = 0 Then
                   VB_Smeta_full(sv, 4) = 0
                   VB_Smeta_volume(sv, 1) = VB_Smeta_full(sv, 4)
      Else
        If VB_Smeta_full(sv, 20) = "да" Then
            If VB_Smeta_contractor = VB_Smeta_contractor_fix Then
                   VB_Smeta_full(sv, 4) = Round(VB_Smeta_full(sv, 14) * VB_Smeta_full(sv, 15), 0)
                   VB_Smeta_volume(sv, 1) = VB_Smeta_full(sv, 4)
                Else
 
               'в это место и должна встать эта злополучная формула
 
                If VB_Smeta_full(sv, 74) = VB_Smeta_contractor Then
                   VB_Smeta_full(sv, 4) = Round(VB_Smeta_full(sv, 14) * VB_Smeta_full(sv, 15), 0)
                   VB_Smeta_volume(sv, 1) = VB_Smeta_full(sv, 4)
                End If
            End If
        End If
     End If
    Next
Excel VBA расчет в массиве, Расчет в массиве с помощью VBA
 
Код
Sub Пересчет_наличия_строк()
    Dim List_smeta, List_materials, List_works, List_materialsVC, List_worksVC As Worksheet
    Dim VB_Smeta_full(), VB_Smeta_m_full(), VB_Smeta_w_full() As Variant
    Dim SmetaFinalRow, SmetaFinalColumn As String
    Dim i, n As Long
    
    Set List_smeta = Application.ThisWorkbook.Sheets("Смета")
    Set List_materials = Application.ThisWorkbook.Sheets("Материалы")
    Set List_works = Application.ThisWorkbook.Sheets("Работы")
    Set List_materialsVC = Application.ThisWorkbook.Sheets("Материалы ВиК")
    Set List_worksVC = Application.ThisWorkbook.Sheets("Работы ВиК")
    
    VB_Smeta_m_full() = Range("Smeta_m_full").Value
    VB_Smeta_w_full() = Range("Smeta_w_full").Value

    With List_smeta
         VB_Smeta_full = .Range("B14:BX" & .Cells(.Rows.Count, "BX").End(xlUp).Row).Value
         VB_Smeta_contractor = .Range("Smeta_contractor").Value
         VB_Smeta_contractor_fix = .Range("Smeta_contractor_fix").Value
    End With
    
    ReDim VB_Smeta_full_new(1 To UBound(VB_Smeta_full), 0): n = 1
    For i = 1 To UBound(VB_Smeta_full)
    If Not IsEmpty(VB_Smeta_full(i, 14)) Then
        If VB_Smeta_full(i, 20) = "да" Then
            If VB_Smeta_contractor = VB_Smeta_contractor_fix Then
                If VB_Smeta_full(i, 74) = VB_Smeta_contractor Then
                   VB_Smeta_full_new(n, 0) = Round(VB_Smeta_full(i, 14) * VB_Smeta_full(i, 15), 0)
                End If
            End If
        End If
    End If
Next

           
        Debug.Print VB_Smeta_full_new(3, 0)

           Range("Smeta_mat_volume") = VB_Smeta_full

End Sub
Ссылка на файл: https://yadi.sk/i/2EWvgYPWaI6XSw

Задача разбивается на несколько этапов (все операции выполняются на листе "Смета"):
1. определяем наличие объёма в столбце N соответствующей ячейки. Если значение отсутствует, смысла считать нет.
2. проверяем столбец U, если стоит "да" продолжаем расчёты дальше.
3. проверяем столбец bW, если в ячейке соответствует человеку в ячейке $V$4, или в ячейке $V$4=BZ$20 стоит эталон, продолжаем расчеты дальше
4. И последнее условие, выполняет ли соответствующий человек в ячейке bw соответствующую работу из диапазона by1:h20.
Если все ок. То берем значение из ячейки N, умножаем на значение ячейки P и округляем вверх до целого значения.
Спасибо за помощь Александру в корректировке макроса по первой части.

5. Проверяем массив VB_Smeta_full, столбец 2 и сравниваем с массивом VB_Smeta_m_full столбец 2, если массивы совпадают
6. Проверяем VB_Smeta_contractor с массивом VB_Smeta_m_full строка 1
7. При совпадении значение пересечения заносится в массив VB_Smeta_full столбец 5
6. Перемножаем в массиве VB_Smeta_full столбец 4 5 и проставляем значение в столбец 6 округлённое значение до копеек.
7. Затем данные из массива ячеек 4,5,6 вставляем в столбцы E,F,G листа Смета
Изменено: Станислав Вьюжанин - 02.04.2019 17:38:17
[ Закрыто] VBA массив, Расчет в массиве с помощью VBA
 
Код
Sub Пересчет_наличия_строк()
Dim List_smeta, List_materials, List_works, List_materialsVC, List_worksVC As Worksheet
Dim VB_Smeta_works_volume, VB_Smeta_mat_volume, VB_Smeta_wm_volume As Variant
Dim i, Smeta_wm_volume As Long

Set List_smeta = Application.ThisWorkbook.Sheets("Смета")
Set List_materials = Application.ThisWorkbook.Sheets("Материалы")
Set List_works = Application.ThisWorkbook.Sheets("Работы")
Set List_materialsVC = Application.ThisWorkbook.Sheets("Материалы ВиК")
Set List_worksVC = Application.ThisWorkbook.Sheets("Работы ВиК")

'Копирую данные в массив
VB_Smeta_wm_volume = Range("Smeta_wm_volume").Value
VB_Smeta_contractor = Range("Smeta_contractor").Value
VB_Smeta_contractor_fix = Range("Smeta_contractor_fix").Value
For i = 1 To 6123
'Само значение объёма работ берётся из ячейки VB_Smeta_wm_volume(i, 17)
If VB_Smeta_wm_volume(i, 17) <> 0 Then
If VB_Smeta_wm_volume(i, 23) = "да" Then
If VB_Smeta_wm_volume(i, 75) = VB_Smeta_contractor_fix Then
If VB_Smeta_wm_volume(i, 75) = VB_Smeta_contractor Then
VB_Smeta_wm_volume(i, 5) = ROUNDUP (VB_Smeta_wm_volume(i, 15) * VB_Smeta_wm_volume(i, 16),0)
Next
End If
End If
End If
End If
Range("Smeta_wm_volume") = VB_Smeta_wm_volume
End Sub
Задача разбивается на несколько этапов:
1. определяем наличие объёма в столбце N соответствующей ячейки. Если значение отсутствует, смысла считать нет.
2. проверяем столбец U, если стоит "да" продолжаем расчёты дальше.
3. проверяем столбец bW, если в ячейке соответствует человеку в ячейке $V$4, или в ячейке $V$4=BZ$20 стоит эталон, продолжаем расчеты дальше
4. И последнее условие, выполняет ли соответствующий человек в ячейке bw соответствующую работу из диапазона by1:h20.

Если все ок. То берем значение из ячейки N, умножаем на значение ячейки P и округляем вверх до целого значения.
Изменено: Станислав Вьюжанин - 01.04.2019 14:43:05
[ Закрыто] как сослаться на массив в формуле?, Как написать макрос массив с ормулой
 
Добрый день. Может кто из знатоков подскажет, как мне ускорить работу макроса.
Имеются три таблицы на разных листах.
Из двух таблиц данные подтягиваются в основную, а из основной обратно в оставшиеся две.
Основная таблица A13:BX6000
Столбцу E13:E6000 присвоил имя "Smeta_mat_volume" и считаю:
With Range("Smeta_mat_volume")
.Formula = "=IF(AND(RC[16]=""да"",OR(RC[70]=R4C22,R4C22=R20C[73])),ROUNDUP(RC[10]*RC[11],0),0)*IF(INDEX(Smeta_contractor_al l_works,MATCH(Smeta_contractor_fini sh,Smeta_all_contractor,0),MATCH(RC 76,Smeta_contractor_works,0))=""да" ",1,0)"
.Calculate
.Value = .Value
End With
Столбцу F13:F6000 присвоил имя "Smeta_mat_price" и считаю:
With Range("Smeta_mat_price")
.Formula = "=SUMIFS(Materials_price,Materials_ name,RC[-3])"
.Calculate
.Value = .Value
End With
Столбец имеющий имя Materials_price с другого листа
Необходимо диапазону дать имя, скопировать в массив и из этого массива брать данные только из 3 столбца
Столбец имеющий имя Materials_name с третьего листа
Необходимо диапазону дать имя, скопировать в массив и из этого массива брать данные только из 4 столбца

Столбцу G13:G6000 присвоил имя "Smeta_mat_summa" и считаю:
With Range("Smeta_mat_summa")
.Formula = "=ROUND(RC[-2]*RC[-1],2)"
.Calculate
.Value = .Value
End With

Это все занимает очень много времени

Хотел бы таблице A13:BX6000 дать имя, скопировать данные в массив
Расчеты произвести в нем и выгрузить на лист только нужную информацию.
Преренос данных из одной таблицы в другую.
 
Добрый вечер. Я знаю что данная тема поднималась многократно и я просмотрел всевозможные варианты. И вот что смог написать в приложенном файле. Буду очень рад если кто нибудь из специалистов посмотрит и поможет это всё дело упростить.  
Спасибо.  
 
P.S. Если вдруг что нибудь не понятно, немного поясню.    
Данные с листа Альфа автоматически копируются на лист "отбор" через определённый промежуток времени, но копируются по не скольким условиям.  
С листа Альфа данные отмеченные галочкой в столбце "О" автоматически копируются на лист "сделки". После копирования галочка удаляется, в принципе можно и без галочки, но запускать макросы по нажатии на любую ячейку я ещё не научился (((  
Спасибо за понимание.
Создание бюджета с помощью макросов
 
При помощи специалистов форума KukLP, создал файл бюджета. Буду признателен если кто-нибудь ещё посмотрит и внесёт изменения.  
Сначала нажми зелёную кнопку "Удаление данных" (Макрос удалит все старые данные предыдущего года)  
А затем "Добавить" (Макрос вставит несколько первых расходов текущего года).  
Мне кажется, не совсем корректно построены макросы, возможно их улучшить?  
Спасибо.  
http://letitbit.net/download/09903.04ab69d3b92f571af95e3eb9dcd4/Budzhet.xlsm.html  
Файл в office 2007.
База данных
 
Как из таблицы 11(Ноябрь), нажав на кнопку "Для всех банков" выбрав несколько имён, создать для каждого имени свой файл excel в котором бы указывались все сделки совершённые им в указанном дне. И каждому имени отправлялись бы по почте.  
Формулы расчёта я указал в макросе "Формулы_расчёта"  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
ListBox и поиск в нем и вставка данных по двойному нажатию
 
Добрый день. Есть не большая проблема. На листе "Расходы" есть кнопка "Вставить товар" При нажатии на кнопку необходимо выбрать соответствующий товар и вставить его номер в ячейку P4:P16. Пример файла я приложил.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Страницы: 1
Наверх