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

Страницы: 1 2 След.
При изменение внести значение в ячейку (VBA)
 
Юрий М,Большое спасибо. Именно то что нужно было.
При изменение внести значение в ячейку (VBA)
 
При изменение значения (вручную) в ячейке A1 должно быть вписано значение 1 в ячейку E10, что будет сигналом о том, что были введены изменения и необходим перерасчет.
При нажатие на кнопку Calculate значение в ячейке E10 будет поменяно на 0.
Дальше, если опять поменять значение в ячейке A1, то значение поменять на 1.
Изменено: Teklan - 26 Ноя 2018 15:09:08
При изменение внести значение в ячейку (VBA)
 
Цитата
Юрий М написал:
Отвечает на мой вопрос?
Понял. Вводится вручную.
При изменение внести значение в ячейку (VBA)
 
Цитата
Юрий М написал:
В какой ячейке (ячейках) происходит изменение?
хм, не думал что это важно. Подразумевалось, что в любой части Worksheet.
Но если это важно, то можно назначить диапазон. Скажем A1:Z200?
Цитата
Каким способом происходит это изменение?
В ячейке новое значение.
При изменение внести значение в ячейку (VBA)
 
Чтобы было проще в приложение пример.
Мне нужно, чтобы при изменения в экселе в ячейку E10 "Changed" вносилось значение 1.
При изменение внести значение в ячейку (VBA)
 
Не работает данный вариант если изменения вне ячейки "Changed" =(  
При изменение внести значение в ячейку (VBA)
 
Поставил проверку значение один или нет и все заработало.
Код
If Range("Changed") = 1 Then
    Range("Changed") = 0
End If

По видимому был бесконечный цикл ?
Изменено: Teklan - 26 Ноя 2018 11:33:07
При изменение внести значение в ячейку (VBA)
 
Доброй ночи,
Столкнулся с проблемой.
Необходимо установить расчет экселя мануально (кнопкой) т.к. расчетный файл большой и при каждом изменение нужно ждать 1-2сек.
Нужно сделать, чтобы было оповещение, что было изменение и необходимо сделать перерасчет.
В VBA вписал простой код, но выдается ошибка Out of stack space. Явно делаю что-то не так или чего-то не знаю.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Range("Changed") = 0
End Sub

т.е. дальше у меня была мысль форматированием сделать закрашивание ячейки красным если значение 0. При нажатие кнопки расчета соответственно значение будет меняться на 1.
Найти минимальное расстояние между точками
 
Вау, супер. Большое спасибо.
При первом взгляде на код не понятно ))) попробую разобраться как оно работает.
Например данная функция, что она далает ? Первый раз вижу на VBA такое оформление )))
Код
x(im) = v(j * 2 - 1, i): y(im) = v(j * 2, i)
Найти минимальное расстояние между точками
 
ZVI, Да, Вы правы. Необходимо вывести так же точки между которыми расстояние минимилаьное. Но как это сделать я точно не знаю :(

Да, игнорировать можно ячейки где значения нулевые.
То что мне приходит в голову это ограничивать границу массива т.к. точки заполняются с лева на право и сверху вниз.
Соответственно вводить в расчет не 25*50 размер массива, а скажем 8*6, как у меня в примере.

doober, Спасибо. Может когда будет время тогда.
Изменено: Teklan - 21 Ноя 2018 08:25:57
Найти минимальное расстояние между точками
 
Добрый день.
Имеется массив данных из 25 колонок и 50 строк (где 1 и 2 строка координата точек X и Y соответственно).
Необходимо найти минимальное расстояние между всеми точками. Я думал, что единственный вариант это сделать с помощью VBA т.к. необходимо перебрать все возможное варианты?
В примере всего 15 точек, но подразумевается, что может быть вариант и с 625 точками. (Может можно как-то игнорировать пустые значения?)
Расстояние между точками будет по формуле D = ((x_2 - x_1) ^ 2 + (y_2 - y_1) ^ 2) ^ 0.5
Я что-то начал делать в VBA, но у меня нет идей и достаточных знаний чтобы это реализовать. Поэтому обращаюсь за помощью.
Буду благодарен за любую помощь, спасибо.

П.С. Если не достаточно понятно объяснил
VBA - Комментарий в регионе из ячейки
 
Юрий М,Именно то что надо. Спасибо большое.
Пойду разбираться в Вашем коде и ставить в свой проект.
Изменено: Teklan - 4 Ноя 2016 14:13:36
VBA - Комментарий в регионе из ячейки
 
Да, Вы правы. Ошибся
VBA - Комментарий в регионе из ячейки
 
Понял Вас, да, если меняется сам комментарий, то все работает.
Я думал про другое.
Посмотрите пожалуйста:
http://screencast.com/t/z8MAfMpy
VBA - Комментарий в регионе из ячейки
 
Юрий М, Спасибо. То что надо.
А возможно сделать так же, чтобы старые комментарии удалялись ?
VBA - Комментарий в регионе из ячейки
 
Доброй ночи.
Прошу помощи у знатоков. Есть необходимость реализовать следующую задачу:
Нужно поставить комментарий в регионе (по примеру в RANGE(H15:R28)) в ячейку если имеется в ней значение (Или начинается с текста Amount:) и в комментарий внести значение из этой ячейки. Так же необходимо чтобы данный комментарий был динамичным (т.е. если значение пропало то удалился или если значение поменялось, то обновился).
В приложение пример.
Буду благодарен за помощь.

Спасибо заранее.
VBA - Разные действия в цикле
 
Да, совершенно правы.
Что-то я сглупил. Спасибо
VBA - Разные действия в цикле
 
Добрый день,
Название темы может не соответствует вопросу, но надеюсь это не проблема.
Имеется код с циклом который создает "FreeShape" по верх точек на графике (ниже часть кода).
Код
 For i = 1 To 6
     
      Set mySrs = myCht.SeriesCollection((i))
      Npts = mySrs.Points.Count
    
      ' first point
      Xnode = Xleft + (mySrs.XValues(Npts) - Xmin) * Xwidth / (Xmax - Xmin)
      Ynode = Ytop + (Ymax - mySrs.Values(Npts)) * Yheight / (Ymax - Ymin)
      Set myBuilder = myCht.Shapes.BuildFreeform(msoEditingAuto, Xnode, Ynode)
    
      ' remaining points
      For Ipts = 1 To Npts
        Xnode = Xleft + (mySrs.XValues(Ipts) - Xmin) * Xwidth / (Xmax - Xmin)
        Ynode = Ytop + (Ymax - mySrs.Values(Ipts)) * Yheight / (Ymax - Ymin)
        myBuilder.AddNodes msoSegmentLine, msoEditingAuto, Xnode, Ynode
      Next
    
      Set myShape = myBuilder.ConvertToShape
      
    With myShape
        ' USE YOUR FAVORITE COLORS HERE
        .Fill.ForeColor.RGB = RGB(255, 151, 151)
        .Line.ForeColor.RGB = RGB(0, 0, 0)
        .Line.Weight = 0
        .Line.Transparency = 1
        .Fill.Transparency = 0.6
    End With
    
    Next
На графике у меня несколько контуров и соответственно есть цикл от 1 до 6. Создается контур с закраской и тд.
Но, возможно ли для первого цикла сделать цвет один для (With myShape), а для остальных циклов другой?

Спасибо
Остановить макрос пока не закончит работу другой
 
Ув The_Prist,ваше решение работает отлично.
Большое спасибо. Можно идти спать спокойно :)
Остановить макрос пока не закончит работу другой
 
Спасибо за быстрый ответ, сейчас попробую.
Так же нашел только что на заграничном ресурсе данное решение:
http://www.ozgrid.com/forum/showthread.php?t=15934&s=0947bc791e31c69b6e1225d0f63bbcac&p=80694#post80...
Остановить макрос пока не закончит работу другой
 
Доброй ночи Ув. форумчане.
Беглый поиск по google не привел к положительным результатам =(
Возможно ли остановить работу макроса, который завязан на Worksheet_Change ?
В частности, в Worksheet_Change макрос, который задает графику равные X и Y координаты когда есть изменения (не мой):
Код
With Sheet14.Range("MaxMin")
           SetSquareAxes Sheet4.ChartObjects("Chart 21").Chart, 5, 5, _
                         .Cells(1), .Cells(3), _
                         .Cells(2), .Cells(4)
        End With
 
Имеется другой макрос, который работает с данными в таблице, но проблема в том, что при каждом изменение производится запуск Sub Worksheet_Change что очень, очень тормозит весь процесс.
Возможно ли остановить Worksheet_Change до окончания работы макроса?
Application.ScreenUpdating = False не помогает в данном случае.

Если будет необходим пример то подготовлю, но надеюсь проблема и так ясна. Спасибо
Программа по учету времени сотрудников
 
Stics,Спасибо. Гляну.
Но хочется попробовать сделать по средствам Excel.
Программа по учету времени сотрудников
 
Добрый вечер.
Необходима помощь/идеи (технической части) реализации программы в среде Excel по учету времени сотрудников, а именно:
Допустим, имеем 20 сотрудников, которые должны вводить учет времени по проделанной работе (на какой тип работы ушло сколько времени). К примеру, 2 часа - собрания, 3 часа работа с бумагами и тд. И так каждый день.
Соответственно в программе (если можно ее так назвать) необходима часть ввода и анализа.
По части анализа самое простое - это с помощью сводной таблицы (Pivot table). Можно сортировать, делать графики и тд.
Проблема по части с вводом данных и организации базы данных.

Имею некоторые идеи:
1) Для каждого человека создается свой файл, где в таблицу вводится вся информация. Проблема данного способа, как объединить всю информацию в 1 таблицу (в 1 базу данных). Сводная таблица не работает с данными из разных таблиц. У Николая Павлова есть пример на VBA, но каждый раз необходимо создавать новый отчет (не удобно).
Так же в данном способе много рутинной работы =(
2) Делать все в 1 файле (базу данных) в которой будут вводить учет времени. Но проблема, что одновременно может открыть только 1 человек.

Был бы рад идеям (направить в правильное русло), как лучше реализовать данную идею по средством Excel.

Заранее спасибо.
Скрыть строки в таблице VBA, Улучшить работу
 
Что-то не работает у меня.
А это для чего? :
Код
j = [MATCH("яяя",B:B)]
Скрыть строки в таблице VBA, Улучшить работу
 
По примеру:
В ячейке B9 вводим число - добавилась еще одна строка (открылась), ввели число в B10 - открылась след. пустая строка.

Дальше, удаляем из B10 - скрылась 1 пустая строка и т.д.
Вопрос был в том, можно ли сделать так, чтобы при удаление сразу же 2ух строк (к примеру B9,B10) скрылись так же 2 строки, а не одна.
Скрыть строки в таблице VBA, Улучшить работу
 
Добрый день,
В приложение пример с таблицей в которой при вводе порядкового номера в столбике "B" автоматически открывается скрытая ячейка, так же при удаление последней строки скрывается лишняя.
Вопрос, можно ли сделать так, чтобы при удаление нескольких строк так же скрывались несколько строк и была только одна свободная. (Иначе сейчас необходимо удалять по порядку чтобы скрыть лишние строки).

Прошу посмотреть пример в приложении.
Организация программы на VBA, Как лучше?
 
Ок, разобрался. Буду пытаться реализовать.
Спасибо
Организация программы на VBA, Как лучше?
 
Я вроде понял т.е. Ваша идея загнать все данные из базы данных в массив и потом уже к нему обращаться из других функций ? (Тогда да, можно убрать конечно цикл в цикле)
Не понял вот это:
Код
кстати её тоже как параметр нужно бы добавить
Организация программы на VBA, Как лучше?
 
Добрый день,
Составил пример который отражает основную структуру программы на примере яблок =)
(Все функции расчета в примере от "балды" если можно так сказать).

Прошу посмотреть пример.
Имеется база данных с которой берем данные и производим расчет.
Вопрос был в том, чтобы расчет переменной Variable_3 сделать в отдельной функции, но как видно она использует данные из базы данных и других переменных.

Спасибо за помощь.

Код
Function Test(Data As Variant)
'Define Variables
Dim aa()
Dim incells, i&, j&, Nrpk&
Dim Weight_1#, Size_1#, Weight_2#, Size_2#, Weight_3#, Size_3#, Weight_4#, Size_4#, Apple$
Dim Var#, Var_2#, Variable_1#, Variable_2#, Variable_3#
incells = Data.Value

Nrpk = UBound(incells)
ReDim resultArr(1 To Nrpk, 1 To 3)

'CALC
For j = 1 To Nrpk
    Apple = incells(j, 1)
    Var = incells(j, 2)
    Var_2 = incells(j, 3)
   
   'Take data from database
    aa = Worksheets("Database").Range("A2:I51").Value 'database
    For i = 1 To UBound(aa)
        If aa(i, 1) = Apple Then
            Weight_1 = aa(i, 2)
            Size_1 = aa(i, 3)
            Weight_2 = aa(i, 4)
            Size_2 = aa(i, 5)
            Weight_3 = aa(i, 6)
            Size_3 = aa(i, 7)
            Weight_4 = aa(i, 8)
            Size_4 = aa(i, 9)
        End If
    Next
    
    'Variable calculation
    Variable_1 = Weight_1 * Weight_2 + Var
    Variable_2 = Size_1 * Size_2 + Var_2
    
    
    Variable_3 = Variable_1 + Variable_2 + Size_3 * Weight_3
    
    'Define output array
    resultArr(j, 1) = Variable_1
    resultArr(j, 2) = Variable_2
    resultArr(j, 3) = Variable_3
Next
Test = resultArr
End Function
Организация программы на VBA, Как лучше?
 
Ок,спасибо, гугл что-то выдает, буду изучать матчасть =)

П.С. А оно будет работать если все в цикле ?
Предположим если на выдаче у меня был массив данных Arr(i,j) (соответственно для каждого цикла свои переменные, выбор данных и т.д. и т.п.)
Ну, интуитивно вроде должно все работать.
Страницы: 1 2 След.
Наверх