Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2017, 06:05   #1
nyqpblcTuk
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 37
По умолчанию Макрос формула на ячейку с числом

Люди, здравствуйте.
Прошу помощи в написании макроса, т.к. сам уже сломал голову как это сделать.

Задача.

Есть число (номер) в записи он выглядит так 421-4942 7506
(запись именно в таком формате, первые три цифры и дефис не меняются, остальное могут меняться)
Я разбиваю числа по ячейкам
1 ячейка 421-
2 ячейка 4942
3 ячейка 750
4 ячейка 6

(может быть это не правильно...)

Обязательное условие, что вся конструкция увеличивается на 11.
Но последняя цифра вырастает максимум до 6 и обнуляется.
Т.е.
421-4942 7506 +11
421-4942 7510 +11
421-4942 7521 +11
421-4942 7532 +11
421-4942 7543 +11
421-4942 7554 +11
421-4942 7565 +11
421-4942 7576 +11
421-4942 7580 +11
421-4942 7591 +11
421-4942 7602 +11
и т.д.

Все это должно изменяться в одной строке. (в этих же ячейках, что изначально, 1 2 3 4)

Пытаюсь все это сделать через формулу если, но в итоге он мне оставляет в ячейках формулу...вместо цифр изначальных

2 день бьюсь, помогите пожалуйста.
nyqpblcTuk вне форума Ответить с цитированием
Старый 31.05.2017, 06:11   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от nyqpblcTuk Посмотреть сообщение
в итоге он мне оставляет в ячейках формулу
Поместите курсор на эту ячейку, формат ячейки поставте "Числовой" или "Общий", нажмите Ф2, нажмите Ентер
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 31.05.2017, 08:02   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т. е. вместо 421-4942 7506 должно получиться 421-4942 7517?
Если так, то выделите требуемые ячейки и выполните макрос:
Код:
Sub qq()
    For Each x In Selection
        y = Split(x)
        x.Value = y(0) & " " & Val(y(1)) + 11
    Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 31.05.2017, 08:57   #4
nyqpblcTuk
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 37
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Т. е. вместо 421-4942 7506 должно получиться 421-4942 7517?
Если так, то выделите требуемые ячейки и выполните макрос:
Код:
Sub qq()
    For Each x In Selection
        y = Split(x)
        x.Value = y(0) & " " & Val(y(1)) + 11
    Next
End Sub
Нет последняя цифра "растет только до 6, потом обнуляется"
421-4942 7510
nyqpblcTuk вне форума Ответить с цитированием
Старый 31.05.2017, 09:39   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а 421-4942 9996 +11
что должно получится в итоге согласно Вашей индивидуальной математики?

могу предположить что = 421-494? ?0000
а где знаки вопроса у меня сомнения, что вместо них должно быть написано?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.05.2017, 09:55   #6
nyqpblcTuk
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 37
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а 421-4942 9996 +11
что должно получится в итоге согласно Вашей индивидуальной математики?

могу предположить что = 421-494? ?0000
а где знаки вопроса у меня сомнения, что вместо них должно быть написано?
421-4943 0000
nyqpblcTuk вне форума Ответить с цитированием
Старый 31.05.2017, 09:55   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В данной формулировке вопроса есть много "если...".
Попробую угадать...
Может устроит...
Код:
Sub qq()
    For Each x In Selection
        y = Split(x)
        z = Val(y(1)) + 11
        q = Val(Right$(z, 1))
        z = Left$(z, Len(z) - 1) & IIf(q > 6, 0, q)
        x.Value = y(0) & " " & z
    Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 31.05.2017, 10:01   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Не угадал... Штанга, однако...
Ну, тогда так:
Код:
Sub qq()
    For Each x In Selection
        y = Split(x, "-")
        z = Val(Replace(y(1), " ", "")) + 11
        q = Val(Right$(z, 1))
        z = Left$(z, Len(z) - 1) & IIf(q > 6, 0, q)
        x.Value = y(0) & "-" & Left$(z, 4) & " " & Right$(z, 4)
    Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 31.05.2017, 10:09   #9
nyqpblcTuk
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 37
По умолчанию немного могу упростить понимание формулы

Могу помочь понять формулу, на примере стока номеров без макроса.

Но вот сделать так, чтобы оно все менялось в одной строке, не могу....
Вложения
Тип файла: xlsx Стоки.xlsx (34.2 Кб, 24 просмотров)
nyqpblcTuk вне форума Ответить с цитированием
Старый 31.05.2017, 10:29   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

См. вложение. Что не так?
Вложения
Тип файла: rar Стоки.rar (17.9 Кб, 25 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула вида R1C1 с динамическим числом слагаемых mamay555 Microsoft Office Excel 1 03.09.2015 20:28
формула, находящая ячейку и высчитывающая разницу!! cpoчно peras Microsoft Office Excel 1 09.09.2012 17:34
Работа с Датой. Формула переноса значений с ячейки в ячейку dimo Microsoft Office Excel 11 18.07.2011 15:45
формула суммпроизв. запись в ячейку gsg Microsoft Office Excel 3 18.11.2010 09:16
Формула, возвращающая название листа в ячейку _Nina_ Microsoft Office Excel 6 24.08.2009 18:22