Fireman Пользователь Сообщений: 50 |
#1 08.04.2013 09:30:08 Добрый день как можно сделать в вба чтобы при нажатие на кнопку значение в ячейке увеличивалось на 1.
Через Function () пробовал то же не идет. |
||
Sanja Пользователь Сообщений: 14838 |
Пример с кнопкой приложите Согласие есть продукт при полном непротивлении сторон. |
Fireman Пользователь Сообщений: 50 |
Вот Прикрепленные файлы
|
Johny Пользователь Сообщений: 2737 |
#4 08.04.2013 09:39:27
There is no knowledge that is not power |
||
MerZ@vcheG Пользователь Сообщений: 98 |
#5 08.04.2013 09:40:08
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(), |
||
Sanja Пользователь Сообщений: 14838 |
Или вот. Для Кнопки1 Прикрепленные файлы
Согласие есть продукт при полном непротивлении сторон. |
Fireman Пользователь Сообщений: 50 |
Спасибо братва большое вы помогаете прогеру который делает супрр софтик |
JARED Пользователь Сообщений: 87 |
#8 09.01.2019 22:41:02 Всем привет. Очень интересует данная тема но с датой.
Что добавить в скрипт для того, чтобы в ячейку D4 прибавлялся при нажатии календарный день с нужным количеством дней в месяце? |
||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
#9 09.01.2019 22:43:43
это как понять? По вопросам из тем форума, личку не читаю. |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#10 09.01.2019 22:44:41
это что за календарный день такой с нужным количеством дней? и как отличить нужное количество дней от не нужного? Изменено: Ігор Гончаренко — 09.01.2019 22:45:18 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
Михаил С. Пользователь Сообщений: 10514 |
#11 09.01.2019 22:45:39
ничего. Сначала нужно просто попробовать. |
||
JARED Пользователь Сообщений: 87 |
Есть ячейка в которой пишется в ручную каждый день дата изменения файла. Как сделать так, чтобы при активации макроса в этой ячейке добавлялся бы новый день по календарю, допустим сегодня 31 января, в ячейке указано 31 и при срабатывании макроса там уже было бы 1, 1 февраля и т.д. а не 32 Изменено: JARED — 09.01.2019 22:47:32 |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
JARED, если прибавить к 31 января единицу, то получится целое число, которое при форматировании в дату даст 1 Февраля. Так что скрипт вам полностью подходит. По вопросам из тем форума, личку не читаю. |
JARED Пользователь Сообщений: 87 |
Нашел это DateAdd но как использовать и оно ли это |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
32 и не будет )) Вы попробуйте. |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#16 09.01.2019 22:54:49 так вот же, в Д4 все работает
Прикрепленные файлы
Изменено: Ігор Гончаренко — 09.01.2019 23:07:34 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
JARED Пользователь Сообщений: 87 |
Спасибо. Очевидное и не заметил Изменено: JARED — 09.01.2019 23:01:39 |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
#18 09.01.2019 22:59:33
Интересно, сколько еще раз надо написать? По вопросам из тем форума, личку не читаю. |
||||||
JARED Пользователь Сообщений: 87 |
Так это форум, я напишу и читаю, пробую, потом обновил а тут уже |
JARED Пользователь Сообщений: 87 |
|
vikttur Пользователь Сообщений: 47199 |
Интересно, а как вопрос соотносится с назваением темы? Увидели знакомое слово и решили, что вопрос по датам тоже сюда? |
JARED Пользователь Сообщений: 87 |
Я увидел прибавление +1 и поскольку думая, что вопрос более глубокий и отталкиваясь от заданной темы хотел ее развить. Суть не изменена вроде, нет? Изменено: JARED — 09.01.2019 23:06:25 |
vikttur Пользователь Сообщений: 47199 |
Ну да, увеличить значение на единицу и прибавление к дате периода — совсем одно то же… |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#24 09.01.2019 23:07:10 Виктор, у меня код VBA:
правда увлекся и написал еше один код с минус 1. виноват.. сейчас исправлю Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
vikttur Пользователь Сообщений: 47199 |
#25 09.01.2019 23:09:19 Игорь, твй код опросов не вызывает. Но это:
|
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Вить, не придирайся )) Тема — прибавить единичку. А прибавить к обычному числу, или к дате — разницы не вижу. |
как прибавить 1 — прошли Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
vikttur Пользователь Сообщений: 47199 |
Понятно, мои извинения. Я-то по тексту понял, что нужно работать с периодами дат. |
Hugo Пользователь Сообщений: 23249 |
#29 09.01.2019 23:27:02 Тормознул, уже всё написано Изменено: Hugo — 09.01.2019 23:42:57 |
Макрос для увеличения и уменьшения значения ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Есть макрос для excel, привязываю его к фигуре, фигура находится в определенной ячейке. В данном случае в B6, как сделать так, чтобы мне не приходилось менять вручную адрес ячейки, а получать его в зависимости от места расположения фигуры? Например, фигура расположена в ячейке B9, соответственно получаю адрес ячейки из расположения фигуры и делаю уже инкремент.
Sub mac1()
With Range("B6")
If IsNumeric(.Value) Then
Application.EnableEvents = False
.Value = .Value + 1
Application.EnableEvents = True
End If
End With
End Sub
задан 23 июн 2020 в 12:38
4
Событие выделения ячейки (ЛКМ
) не сосовсем удобно в данном случае.
Вариант: при ПКМ
+1. Если ошиблись, отнять единичку — DoubleClick
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Range("B2:B100"), Target) Is Nothing Then
Cancel = True
Target.Value = Target.Value + 1
End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Range("B2:B100"), Target) Is Nothing Then
Cancel = True
Target.Value = Target.Value - 1
End If
End Sub
Код разместить в модуле листа
ответ дан 23 июн 2020 в 13:25
16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
|
1 |
|
Прибавить значение ячейки18.03.2015, 09:34. Показов 11767. Ответов 14
Здравствуйте, ситуация в следующем, нужно прибавить в ячейку допустим А1 значение А2, но при этом в А1 значение может меняться. В excel не силён может подскажите что почитать и куда смотреть, ну или пример
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
18.03.2015, 09:57 |
2 |
т.е. пишем в ячейку А2 значение и оно автоматом прибавляется к существующему значению в ячейке А1 и в тоже время мы можем менять значение в ячейке А1. Если да то только макросом.
0 |
16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
|
18.03.2015, 10:16 [ТС] |
3 |
да вы правильно поняли. Сейчас буду изучать макросы
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
18.03.2015, 10:26 |
4 |
Сейчас буду изучать макросы
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
18.03.2015, 10:32 |
5 |
жмем ПКМ (правая кнопка мыши) по ярлыку лист1 — Исходный код. Изучаем.
1 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
18.03.2015, 11:00 |
6 |
|||
код макроса не сложный Пара советов:
1 |
16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
|
18.03.2015, 11:14 [ТС] |
7 |
спасибо разобрался хорошо описано вот тут Кликните здесь для просмотра всего текста Добавлено через 7 минут
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
||||
18.03.2015, 11:28 |
8 |
|||
1 |
16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
|
18.03.2015, 12:56 [ТС] |
9 |
Спасибо Добавлено через 1 час 27 минут
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
18.03.2015, 13:12 |
10 |
Решение вы бы для начала разобрались с тем что вам дали да сами попробовали.
0 |
Glin 16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
||||
18.03.2015, 14:18 [ТС] |
11 |
|||
Всё разобрался, реализовал может не по госту, но работает
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
||||
18.03.2015, 14:24 |
12 |
|||
Решениет.к. выполняете одно и тоже действие для разных строк то можно записать так.
0 |
16 / 16 / 5 Регистрация: 26.05.2014 Сообщений: 122 |
|
18.03.2015, 17:52 [ТС] |
13 |
а у меня так не работало
0 |
0 / 0 / 0 Регистрация: 26.02.2015 Сообщений: 26 |
|
18.03.2015, 21:55 |
14 |
Glin, спасибо за литературу, придется тоже изучать — мне макросы сходу не даются
Cells(1, Target.Column) = Cells(1, Target.Column) + Target.Value Cells(cicle, Target.Column), например?
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
19.03.2015, 10:38 |
15 |
tragladit, Создавайте свою тему и озвучивайте свою конкретную проблему. А мы посмотрим, что можно сделать. Добавлено через 22 минуты
1 |
I have tried this code which works fine for a cell that only contain number:
Sub IncreaseCellValue()
'Add 1 to the existing cell value
Range("A1").Value = Range("A1") + 1
End Sub
How can I do something similar if the cell has text and a number. For example, I have «Apple 1» and I want to «increase» the cell text to «Apple 2» and next time I run the macro I want «Apple 3».
asked Sep 22, 2017 at 12:27
Here’s another way you could solve this problem:
Sub IncreaseCellValue()
Dim value As Variant
'Add 1 to the existing cell value
If IsNumeric(Range("A1").value) Then
Range("A1").value = Range("A1") + 1
Else
value = Split(Range("A1").value, " ")
Range("A1").value = value(0) & " " & (CInt(value(1)) + 1)
End If
End Sub
It will cover the 2 cases you presented in your question but not every scenario you could throw at it.
answered Sep 22, 2017 at 12:56
Brian M StaffordBrian M Stafford
8,3182 gold badges19 silver badges25 bronze badges
1
Try using the following function
Sub IncreaseCellValue()
'Add 1 to the existing cell value
Range("A1").Value = Replace(Range("A1").Value2, CleanString(Range("A1")), vbNullString) & CInt(CleanString(Range("A1").Value2)) + 1
End Sub
Function CleanString(strIn As String) As String
Dim objRegex
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.Pattern = "[^d]+"
CleanString = .Replace(strIn, vbNullString)
End With
End Function
answered Sep 22, 2017 at 12:34
TomTom
9,6873 gold badges31 silver badges48 bronze badges
please check:
Option Explicit
Sub IncreaseCellValue()
'Add 1 to the existing cell value
Dim rg As Range
Set rg = Cells(Rows.Count, "A").End(xlUp)
Range("A1" & ":" & rg.Address).AutoFill Destination:=Range("A1" & ":" & rg.Offset(1, 0).Address), Type:=xlFillDefault
End Sub
answered Sep 22, 2017 at 13:12
Or you may try something like this…
Function GetNumber(ByVal rng As Range) As Long
Dim i As Long
For i = Len(rng.Value) To 1 Step -1
If IsNumeric(Mid(rng.Value, i, 1)) Then
GetNumber = GetNumber & Mid(rng.Value, i, 1)
Else
Exit For
End If
Next i
End Function
Sub IncrementNumber()
Dim num As Long
num = GetNumber(Range("A1"))
Range("A1").Value = Replace(Range("A1").Value, num, num + 1)
End Sub
answered Sep 22, 2017 at 13:13