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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2013, 22:41   #1
runik
Пользователь
 
Регистрация: 05.11.2012
Сообщений: 22
По умолчанию простой макрос

Есть ячейки A1 и B1 .В А1 пишутся любые значения (например 1; 2.. или 5)
В ячейке В1 пишутся 1 или 2.Вопрос как прописать чтоб при вводе в B1=2 в ячейке А1 прописывался 0 (А1=0). Если прописать формулой в А1 , то при вводе цифр в А1=1 или 2... -формула удаляется.Нужен макрос
runik вне форума Ответить с цитированием
Старый 16.12.2013, 06:21   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Код:
Sub ololo()
If (ThisWorkbook.ActiveSheet.Cells(1, 2) = 2) Then: ThisWorkbook.ActiveSheet.Cells(1, 1) = 0
End Sub
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 16.12.2013, 09:01   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Вот так будет правильнее:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([B1], Target) Is Nothing Then
    If IsNumeric([B1]) Then
      [A1] = Choose([B1], [A1], 0)
    End If
  End If
End Sub
з.ы. вставлять в код листа
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 16.12.2013, 11:37   #4
runik
Пользователь
 
Регистрация: 05.11.2012
Сообщений: 22
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Вот так будет правильнее:
А как совместить этот код с этим:
PHP код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If 
Target.Count 1 Then Exit Sub
  
If Not Application.Intersect(Range("F1"), TargetIs Nothing Then
     
If Target.Address "$F$1" Then
        
If Range("F1") = Range("E1"Then
           MsgBox 
"Проверьте ДАТУ наряда"
          
        
End If
     
End If
   
End If
End Sub 
если они вместе в корне листа то выдаёт ошибку
runik вне форума Ответить с цитированием
Старый 16.12.2013, 20:36   #5
runik
Пользователь
 
Регистрация: 05.11.2012
Сообщений: 22
Печаль

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([B1], Target) Is Nothing Then
    If IsNumeric([B1]) Then
      [A1] = Choose([B1], [A1], 0)
    End If
  End If
 If Target.Count > 1 Then Exit Sub 
  If Not Application.Intersect(Range("F1"), Target) Is Nothing Then 
     If Target.Address = "$F$1" Then 
        If Range("F1") = Range("E1") Then 
           MsgBox "Проверьте ДАТУ наряда" 
           
        End If 
     End If 
   End If 
End Sub
Так тоже ошибка
runik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
PasteLink - простой макрос на VBA для Excel для вставки в ячейку гипперссылки на файл в буфере обмена. wyfinger Microsoft Office Excel 4 22.05.2013 14:10
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51
помогите упростить простой макрос frantic150 Microsoft Office Excel 2 23.06.2009 04:55