Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как скопировать кнопку счетчик вместе с макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как скопировать кнопку счетчик вместе с макросом (Макросы/Sub)
Как скопировать кнопку счетчик вместе с макросом
toto80 Дата: Понедельник, 09.11.2015, 18:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
день добрый, прошу помощи у гуру!
есть таблица учета:
столбец А сколько ушло
столбец B сколько есть на складе
столбец С кнопка счетчик для каждой строки (+1 к столбцу А и -1 к столбцу B соответственно)
строк- позиций много и в каждой строке кнопка счетчик на свою строку
вопрос такой:
для первой строки я в конструкторе вставил кнопку и написал макрос (первый раз в жизни)

вот как бы теперь ее(кнопку счетчик) размножить на остальные строки чтобы макрос автоматически менял значения строк
и еще, не маловажно, как можно написать макрос так, чтобы, допустим, я хочу вставить столбец между столбцами А и Б - функциональность таблицы не пострадала

вариант когда прописываешь в нужных строках единички а потом жмешь на большую кнопку и происходит общий пересчет не пройдет....
может кто знает как сделать так чтобы можно было скопировать кнопку счетчик
всем заранее спасибо
[moder]Оформите код!
И пример приложите[/moder]
К сообщению приложен файл: primer_razmnoji.xls (34.5 Kb)


Сообщение отредактировал toto80 - Понедельник, 09.11.2015, 18:28
 
Ответить
Сообщениедень добрый, прошу помощи у гуру!
есть таблица учета:
столбец А сколько ушло
столбец B сколько есть на складе
столбец С кнопка счетчик для каждой строки (+1 к столбцу А и -1 к столбцу B соответственно)
строк- позиций много и в каждой строке кнопка счетчик на свою строку
вопрос такой:
для первой строки я в конструкторе вставил кнопку и написал макрос (первый раз в жизни)

вот как бы теперь ее(кнопку счетчик) размножить на остальные строки чтобы макрос автоматически менял значения строк
и еще, не маловажно, как можно написать макрос так, чтобы, допустим, я хочу вставить столбец между столбцами А и Б - функциональность таблицы не пострадала

вариант когда прописываешь в нужных строках единички а потом жмешь на большую кнопку и происходит общий пересчет не пройдет....
может кто знает как сделать так чтобы можно было скопировать кнопку счетчик
всем заранее спасибо
[moder]Оформите код!
И пример приложите[/moder]

Автор - toto80
Дата добавления - 09.11.2015 в 18:04
_Boroda_ Дата: Понедельник, 09.11.2015, 20:12 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Я бы не стал делать такую тучу кнопок. Достаточно одной, которая отрабатывает те ячейки, в строке которых находится курсор. Вынести ее в строку 1 и закрепить области (вкладка Вид) по строке 2
Примерно вот так:
[vba]
Код
Private Sub CommandButton1_Click()
    ad_ = Selection.Address
    c1_ = WorksheetFunction.Match("Купили", Range("2:2"), 0)
    c2_ = WorksheetFunction.Match("В наличии", Range("2:2"), 0)
    r_ = Selection(1).Row
    If Cells(r_, c2_) = 0 Then
        MsgBox "В наличии 0"
        Exit Sub
    End If
    Cells(r_, c1_) = Cells(r_, c1_) + 1
    Cells(r_, c2_) = Cells(r_, c2_) - 1
    Range(ad_).Select
End Sub
[/vba]
Ткнитесь в любую ячейку (не обязательно в столбцах А или В) и нажмите кнопку.
Еще вариант - можно сделать по даблклику или правому клику на ячейке.
В файле _2 сделал по даблклику на любую ячейку в нужной строке
К сообщению приложен файл: 2227482.xls (49.0 Kb) · 2424849.xls (45.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЯ бы не стал делать такую тучу кнопок. Достаточно одной, которая отрабатывает те ячейки, в строке которых находится курсор. Вынести ее в строку 1 и закрепить области (вкладка Вид) по строке 2
Примерно вот так:
[vba]
Код
Private Sub CommandButton1_Click()
    ad_ = Selection.Address
    c1_ = WorksheetFunction.Match("Купили", Range("2:2"), 0)
    c2_ = WorksheetFunction.Match("В наличии", Range("2:2"), 0)
    r_ = Selection(1).Row
    If Cells(r_, c2_) = 0 Then
        MsgBox "В наличии 0"
        Exit Sub
    End If
    Cells(r_, c1_) = Cells(r_, c1_) + 1
    Cells(r_, c2_) = Cells(r_, c2_) - 1
    Range(ad_).Select
End Sub
[/vba]
Ткнитесь в любую ячейку (не обязательно в столбцах А или В) и нажмите кнопку.
Еще вариант - можно сделать по даблклику или правому клику на ячейке.
В файле _2 сделал по даблклику на любую ячейку в нужной строке

Автор - _Boroda_
Дата добавления - 09.11.2015 в 20:12
toto80 Дата: Вторник, 10.11.2015, 12:14 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
спасибо за быстрый ответ
вы писали
Достаточно одной, которая отрабатывает те ячейки, в строке которых находится курсор. Вынести ее в строку 1 и закрепить области (вкладка Вид) по строке 2

как я уже писал "вариант когда прописываешь в нужных строках единички а потом жмешь на большую кнопку и происходит общий пересчет не пройдет...."
и ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил, это мелочи - все рано вариант не интересен, просто не подойдет исходя из других внутренних соображений

Еще вариант - можно сделать по даблклику или правому клику на ячейке.
В файле _2 сделал по даблклику на любую ячейку в нужной строке

так можно же случайно не туда кликнуть и будет полная каша)))
еще раз спасибо за ответ
 
Ответить
Сообщениеспасибо за быстрый ответ
вы писали
Достаточно одной, которая отрабатывает те ячейки, в строке которых находится курсор. Вынести ее в строку 1 и закрепить области (вкладка Вид) по строке 2

как я уже писал "вариант когда прописываешь в нужных строках единички а потом жмешь на большую кнопку и происходит общий пересчет не пройдет...."
и ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил, это мелочи - все рано вариант не интересен, просто не подойдет исходя из других внутренних соображений

Еще вариант - можно сделать по даблклику или правому клику на ячейке.
В файле _2 сделал по даблклику на любую ячейку в нужной строке

так можно же случайно не туда кликнуть и будет полная каша)))
еще раз спасибо за ответ

Автор - toto80
Дата добавления - 10.11.2015 в 12:14
Wasilich Дата: Вторник, 10.11.2015, 14:15 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
toto80, опытнейший экселист предложил вам 2 простейших решения задачи, только потому, что нет такой возможности копировать кнопку вместе с макросом да еще и с изменяющимися критериями в нем при смене строк, а потом еще и вставке столбцов.
ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил,
У меня очень даже рабочий.
Для того что бы он стал рабочим и у вас, надо поставить курсор на нужную вам строку
потом нажать кнопку и посмотреть результат в этой же строке. А вот вы, даже не удосужились в этом разобраться.
так можно же случайно не туда кликнуть и будет полная каша
Так значит, двойной клик может быть случайным, а случайность клика по кнопке исключена? hands
Успехов.
 
Ответить
Сообщениеtoto80, опытнейший экселист предложил вам 2 простейших решения задачи, только потому, что нет такой возможности копировать кнопку вместе с макросом да еще и с изменяющимися критериями в нем при смене строк, а потом еще и вставке столбцов.
ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил,
У меня очень даже рабочий.
Для того что бы он стал рабочим и у вас, надо поставить курсор на нужную вам строку
потом нажать кнопку и посмотреть результат в этой же строке. А вот вы, даже не удосужились в этом разобраться.
так можно же случайно не туда кликнуть и будет полная каша
Так значит, двойной клик может быть случайным, а случайность клика по кнопке исключена? hands
Успехов.

Автор - Wasilich
Дата добавления - 10.11.2015 в 14:15
toto80 Дата: Вторник, 10.11.2015, 15:10 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
У меня очень даже рабочий.
Для того что бы он стал рабочим и у вас, надо поставить курсор на нужную вам строку

читайте мою фразу до конца.... а звучит она так "ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил"

Так значит, двойной клик может быть случайным, а случайность клика по кнопке исключена?

вероятность случайного клика в определенной ячейке или на кнопке на порядок, а то и на несколько, меньше чем вероятность двойного клика в любом месте в строке....


Сообщение отредактировал toto80 - Вторник, 10.11.2015, 15:12
 
Ответить
Сообщение
У меня очень даже рабочий.
Для того что бы он стал рабочим и у вас, надо поставить курсор на нужную вам строку

читайте мою фразу до конца.... а звучит она так "ваш пример №1 ( 2227482.xls) не рабочий он должен стирать то что добавил"

Так значит, двойной клик может быть случайным, а случайность клика по кнопке исключена?

вероятность случайного клика в определенной ячейке или на кнопке на порядок, а то и на несколько, меньше чем вероятность двойного клика в любом месте в строке....

Автор - toto80
Дата добавления - 10.11.2015 в 15:10
МВТ Дата: Вторник, 10.11.2015, 15:37 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Я бы вообще не стал так усложнять. Вставляете этот код в модуль листа и кнопки не нужны. Можно изменять количество не на 1 + проверяет, чтобы вводимое количество не превышало то, что в наличии[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Min
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C2:C" & Cells(Rows.Count, 1).End(xlUp).Row)) Is Nothing Then Exit Sub
Application.EnableEvents = False
With Target
    Min = Application.WorksheetFunction.Min(.Value, .Offset(0, -1))
    .Offset(0, -2) = .Offset(0, -2) + Min
    .Offset(0, -1) = .Offset(0, -1) - Min
    .Value = Empty
End With
Application.EnableEvents = True
End Sub
[/vba]
 
Ответить
СообщениеЯ бы вообще не стал так усложнять. Вставляете этот код в модуль листа и кнопки не нужны. Можно изменять количество не на 1 + проверяет, чтобы вводимое количество не превышало то, что в наличии[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Min
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C2:C" & Cells(Rows.Count, 1).End(xlUp).Row)) Is Nothing Then Exit Sub
Application.EnableEvents = False
With Target
    Min = Application.WorksheetFunction.Min(.Value, .Offset(0, -1))
    .Offset(0, -2) = .Offset(0, -2) + Min
    .Offset(0, -1) = .Offset(0, -1) - Min
    .Value = Empty
End With
Application.EnableEvents = True
End Sub
[/vba]

Автор - МВТ
Дата добавления - 10.11.2015 в 15:37
Manyasha Дата: Вторник, 10.11.2015, 15:46 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
должен стирать то что добавил

у меня работает, так же, как и Ваша кнопка. Единственное различие, проверка поля "в наличии" на неотрицательные значения (что вполне логично).
вероятность двойного клика в любом месте в строке....

так сделайте, чтобы вызывалось не в любом, а только в нужном столбце


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
должен стирать то что добавил

у меня работает, так же, как и Ваша кнопка. Единственное различие, проверка поля "в наличии" на неотрицательные значения (что вполне логично).
вероятность двойного клика в любом месте в строке....

так сделайте, чтобы вызывалось не в любом, а только в нужном столбце

Автор - Manyasha
Дата добавления - 10.11.2015 в 15:46
RAN Дата: Вторник, 10.11.2015, 16:43 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Юрий М на Планете выкладывал решение с плавающими кнопками. (+ и -).
Было с год? назад. Но искать даже и пытаться не буду.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЮрий М на Планете выкладывал решение с плавающими кнопками. (+ и -).
Было с год? назад. Но искать даже и пытаться не буду.

Автор - RAN
Дата добавления - 10.11.2015 в 16:43
toto80 Дата: Вторник, 10.11.2015, 18:13 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
огромное спасибо всем а особенно _Boroda_,
итак, прошу не кидать тапками, так как программирую (вернее пытаюсь) на VBA всего 3 часа и вот что получилось
задача: сделать чтобы при любом перемещении столбцов и строк соответствующие кнопки(ячейки) добавляли(удаляли) значения в соответствующих ячейках
вот что получилось
активные ячейки в столбцах сделка и отмена
[vba]
Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim DELTA
    Cancel = True
    w1_ = WorksheetFunction.Match("Купили", Range("2:2"), 0)
    w2_ = WorksheetFunction.Match("В наличии", Range("2:2"), 0)
    w3_ = WorksheetFunction.Match("Дельта", Range("2:2"), 0)
    w4_ = WorksheetFunction.Match("СДЕЛКА", Range("2:2"), 0)
    w5_ = WorksheetFunction.Match("ОТМЕНА", Range("2:2"), 0)
    If Target.Column < w4_ Then Exit Sub
    If Target.Column > w5_ Then Exit Sub
    r_ = Target(1).Row
    DELTA = Cells(r_, w3_)
    If Cells(r_, w3_) = 0 Then
          DELTA = 1
          End If
    If Target.Column = w4_ Then
    Cells(r_, w1_) = Cells(r_, w1_) + DELTA
    Cells(r_, w2_) = Cells(r_, w2_) - DELTA
          End If
    If Target.Column = w5_ Then
    Cells(r_, w1_) = Cells(r_, w1_) - DELTA
    Cells(r_, w2_) = Cells(r_, w2_) + DELTA
          End If
End Sub
[/vba]

осталось еще несколько вопросов
1. что значит Range("2:2") в WorksheetFunction.Match
2. как можно сделать так чтобы после двойного клика на активную ячейку она, помимо арифметических функций, меняла цвет на определенное время - типа команда выполнена
3. добавил строку перед шапкой(купили, в наличии, сделка...) то есть строка купили, в наличии, сделка... стала третьей строкой - не работает....
и еще раз прошу не кидаться тапками)
К сообщению приложен файл: KNOPKI_1.xls (61.5 Kb)
 
Ответить
Сообщениеогромное спасибо всем а особенно _Boroda_,
итак, прошу не кидать тапками, так как программирую (вернее пытаюсь) на VBA всего 3 часа и вот что получилось
задача: сделать чтобы при любом перемещении столбцов и строк соответствующие кнопки(ячейки) добавляли(удаляли) значения в соответствующих ячейках
вот что получилось
активные ячейки в столбцах сделка и отмена
[vba]
Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim DELTA
    Cancel = True
    w1_ = WorksheetFunction.Match("Купили", Range("2:2"), 0)
    w2_ = WorksheetFunction.Match("В наличии", Range("2:2"), 0)
    w3_ = WorksheetFunction.Match("Дельта", Range("2:2"), 0)
    w4_ = WorksheetFunction.Match("СДЕЛКА", Range("2:2"), 0)
    w5_ = WorksheetFunction.Match("ОТМЕНА", Range("2:2"), 0)
    If Target.Column < w4_ Then Exit Sub
    If Target.Column > w5_ Then Exit Sub
    r_ = Target(1).Row
    DELTA = Cells(r_, w3_)
    If Cells(r_, w3_) = 0 Then
          DELTA = 1
          End If
    If Target.Column = w4_ Then
    Cells(r_, w1_) = Cells(r_, w1_) + DELTA
    Cells(r_, w2_) = Cells(r_, w2_) - DELTA
          End If
    If Target.Column = w5_ Then
    Cells(r_, w1_) = Cells(r_, w1_) - DELTA
    Cells(r_, w2_) = Cells(r_, w2_) + DELTA
          End If
End Sub
[/vba]

осталось еще несколько вопросов
1. что значит Range("2:2") в WorksheetFunction.Match
2. как можно сделать так чтобы после двойного клика на активную ячейку она, помимо арифметических функций, меняла цвет на определенное время - типа команда выполнена
3. добавил строку перед шапкой(купили, в наличии, сделка...) то есть строка купили, в наличии, сделка... стала третьей строкой - не работает....
и еще раз прошу не кидаться тапками)

Автор - toto80
Дата добавления - 10.11.2015 в 18:13
_Boroda_ Дата: Вторник, 10.11.2015, 21:00 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
1. Это строка 2
3. Тогда нужно поменять 2:2 на 3:3
2. Последней строкой напишите[vba]
Код
Target.Interior.Color=8420607
[/vba]
Удалять закраску вот так
[vba]
Код
Range("A1:A3").Interior.Pattern = xlNone
[/vba]
Эту строку (с своими диапазонами, рассчитанными как у Вас в коде w1, w2, ...) повесьте в модуль книги (а не листа, как предыдущий код) на сохранение (Workbook_BeforeSave), или открытие (Workbook_Open), или закрытие (Workbook_BeforeClose), или еще какую подходящую операцию. Вы, я вижу, любите самостоятельно разбираться, поэтому почитайте про события листа и события книги - эти темы обычно хорошо описаны.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение1. Это строка 2
3. Тогда нужно поменять 2:2 на 3:3
2. Последней строкой напишите[vba]
Код
Target.Interior.Color=8420607
[/vba]
Удалять закраску вот так
[vba]
Код
Range("A1:A3").Interior.Pattern = xlNone
[/vba]
Эту строку (с своими диапазонами, рассчитанными как у Вас в коде w1, w2, ...) повесьте в модуль книги (а не листа, как предыдущий код) на сохранение (Workbook_BeforeSave), или открытие (Workbook_Open), или закрытие (Workbook_BeforeClose), или еще какую подходящую операцию. Вы, я вижу, любите самостоятельно разбираться, поэтому почитайте про события листа и события книги - эти темы обычно хорошо описаны.

Автор - _Boroda_
Дата добавления - 10.11.2015 в 21:00
toto80 Дата: Среда, 11.11.2015, 17:50 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
_Boroda_,
удалить сообщение не могу, заработало, см след сообщение)

чуть чуть не то надо, я хочу чтобы ячейка при двойном клике на нее мигнула (цет поменяла на время) - по типу комада выполнена
вставляю такой код
по моим скудным познаниям - запоминаем цвет, меняем его, пауза, возврат цвета на место
[vba]
Код

    COLOR_CH = Cells(r_, w4_).Interior.ColorIndex
    Cells(r_, w4_).Interior.ColorIndex = 6
Sleep (500)
    Cells(r_, w4_).Interior.ColorIndex = COLOR_CH
[/vba]
ругается на Sleep
у меня ексель 2003(


Сообщение отредактировал toto80 - Среда, 11.11.2015, 17:58
 
Ответить
Сообщение_Boroda_,
удалить сообщение не могу, заработало, см след сообщение)

чуть чуть не то надо, я хочу чтобы ячейка при двойном клике на нее мигнула (цет поменяла на время) - по типу комада выполнена
вставляю такой код
по моим скудным познаниям - запоминаем цвет, меняем его, пауза, возврат цвета на место
[vba]
Код

    COLOR_CH = Cells(r_, w4_).Interior.ColorIndex
    Cells(r_, w4_).Interior.ColorIndex = 6
Sleep (500)
    Cells(r_, w4_).Interior.ColorIndex = COLOR_CH
[/vba]
ругается на Sleep
у меня ексель 2003(

Автор - toto80
Дата добавления - 11.11.2015 в 17:50
toto80 Дата: Среда, 11.11.2015, 17:56 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
заработало)))) sleep поставил в модуль
хе хе
может кто нибудь проверит простенький код на глобальные косяки?
мне вот это пока еще не понятно зачем нужно и можно ли избавиться
[vba]
Код

Dim DELTA
Dim COLOR_CH
[/vba]
К сообщению приложен файл: 4821608.xls (67.5 Kb)


Сообщение отредактировал toto80 - Среда, 11.11.2015, 17:58
 
Ответить
Сообщениезаработало)))) sleep поставил в модуль
хе хе
может кто нибудь проверит простенький код на глобальные косяки?
мне вот это пока еще не понятно зачем нужно и можно ли избавиться
[vba]
Код

Dim DELTA
Dim COLOR_CH
[/vba]

Автор - toto80
Дата добавления - 11.11.2015 в 17:56
Manyasha Дата: Четверг, 12.11.2015, 10:58 | Сообщение № 13
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
toto80, непонятно, что такое Dim или за что отвечаю эти переменные?
Dim - это объявление переменных. Ваш код будет работать и без этих 2-х строчек (почитайте что-нибудь про явное и неявное объявление переменных).

DELTA - значение, которое прибавляется к "Купили" и вычитается из "В наличии".
COLOR_CH - возвращает исходный цвет ячейки. Если у Вас все ячейки в поле Сделка и Отмена бесцветные, то можно убрать эту переменную:
[vba]
Код
    If Target.Column = w4_ Then
        Cells(r_, w1_) = Cells(r_, w1_) + DELTA
        Cells(r_, w2_) = Cells(r_, w2_) - DELTA
        Cells(r_, w4_).Interior.ColorIndex = 6
        Sleep (500)
        Cells(r_, w4_).Interior.ColorIndex = xlNo
    End If
[/vba]
косяки

Я бы убрала Cancel = True из начала макроса и поставила сюда:
[vba]
Код
    If Target.Column < w4_ Then Exit Sub
    If Target.Column > w5_ Then Exit Sub
    Cancel = True
[/vba]
Тогда можно будет редактировать остальные ячейки 2-м кликом (которые НЕ в столбцах Сделка, Отмена)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеtoto80, непонятно, что такое Dim или за что отвечаю эти переменные?
Dim - это объявление переменных. Ваш код будет работать и без этих 2-х строчек (почитайте что-нибудь про явное и неявное объявление переменных).

DELTA - значение, которое прибавляется к "Купили" и вычитается из "В наличии".
COLOR_CH - возвращает исходный цвет ячейки. Если у Вас все ячейки в поле Сделка и Отмена бесцветные, то можно убрать эту переменную:
[vba]
Код
    If Target.Column = w4_ Then
        Cells(r_, w1_) = Cells(r_, w1_) + DELTA
        Cells(r_, w2_) = Cells(r_, w2_) - DELTA
        Cells(r_, w4_).Interior.ColorIndex = 6
        Sleep (500)
        Cells(r_, w4_).Interior.ColorIndex = xlNo
    End If
[/vba]
косяки

Я бы убрала Cancel = True из начала макроса и поставила сюда:
[vba]
Код
    If Target.Column < w4_ Then Exit Sub
    If Target.Column > w5_ Then Exit Sub
    Cancel = True
[/vba]
Тогда можно будет редактировать остальные ячейки 2-м кликом (которые НЕ в столбцах Сделка, Отмена)

Автор - Manyasha
Дата добавления - 12.11.2015 в 10:58
toto80 Дата: Четверг, 12.11.2015, 11:42 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Manyasha,
большое спасибо за объяснения....я брал за исходный код тот что с сообщении №2 и подумав полтора дня, ни имеея ни малейшего опыта, сделал код который в файле сообщения №12
отсюда и получились вопросы

с DIM понятно, но пусть остается...

DELTA
COLOR_CH
эти переменные я сам вводил, исходя из того что ячейки Сделка и Отмена могут быть цветными, бесцветный это тоже цвет)
переменная дельта - это модуль счета, иногда приходится по 10 или 5 прибавлять(вычитать) - количество в коробке изделий

Cancel = True из начала макроса.......
идею понял, но мне лучше зафиксировать конкретные столбцы....
еще раз, спасибо большой


Сообщение отредактировал toto80 - Четверг, 12.11.2015, 11:43
 
Ответить
СообщениеManyasha,
большое спасибо за объяснения....я брал за исходный код тот что с сообщении №2 и подумав полтора дня, ни имеея ни малейшего опыта, сделал код который в файле сообщения №12
отсюда и получились вопросы

с DIM понятно, но пусть остается...

DELTA
COLOR_CH
эти переменные я сам вводил, исходя из того что ячейки Сделка и Отмена могут быть цветными, бесцветный это тоже цвет)
переменная дельта - это модуль счета, иногда приходится по 10 или 5 прибавлять(вычитать) - количество в коробке изделий

Cancel = True из начала макроса.......
идею понял, но мне лучше зафиксировать конкретные столбцы....
еще раз, спасибо большой

Автор - toto80
Дата добавления - 12.11.2015 в 11:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как скопировать кнопку счетчик вместе с макросом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!