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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2012, 15:32   #1
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию Подправьте код

Добрый день, уважаемые форумчане!
Подправьте код, который не срабатывает. Причем, в другой юзерформе этого же файла проблем нет. Что я тут сделал не так?

Код:
Private Sub CommandButton2_Click()    'Добавить строки
    Application.ScreenUpdating = False
    
    If TextBox18 = "" Then MsgBox "Нет номера ваучера", vbCritical, "Ошибка": Exit Sub
    
    If TextBox18.Value = en Then 
    Sheets("Voucher").Cells("AJ16").Value = TextBox11
    ElseIf TextBox18.Value = ru Then
    Sheets("Ваучер").Cells("AP17").Value = TextBox11
            
    Application.ScreenUpdating = True
        
    MsgBox ("Информация добавлена")
    
End Sub


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.08.2012 в 09:13.
strannick вне форума Ответить с цитированием
Старый 15.08.2012, 15:54   #2
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Val ue
\\\\\\\\\\
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 15.08.2012, 16:07   #3
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Это оно так скопипастилось. Конечно, же там пробелов нету. Причем пробовал и .Value b .Text и без них в разных вариациях
strannick вне форума Ответить с цитированием
Старый 15.08.2012, 16:09   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Подправьте код, который не срабатывает
Что значит - не срабатывает?
Ошибку какую выдаёт?
Если да - то на какой строке?
EducatedFool вне форума Ответить с цитированием
Старый 15.08.2012, 17:25   #5
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

В том-то и дело, что никакой не выдает. Проходит и сообщение выдается, что "Информация добавлена". А в искомых ячейках на этих двух листах ничего не появляется.
strannick вне форума Ответить с цитированием
Старый 16.08.2012, 09:08   #6
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

замени Cells("AP17") на Range("AP17") или Cells(17,42) или просто [ap17]
И видимо отключены предупреждения об ошибках. Выполни
Код:
Application.DisplayAlerts = True
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru

Последний раз редактировалось alex77755; 16.08.2012 в 09:17.
alex77755 вне форума Ответить с цитированием
Старый 16.08.2012, 13:15   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Кажется, Вы End If где-то потеряли...
Код:
Private Sub CommandButton2_Click()    'Добавить строки
    Application.ScreenUpdating = False
    
    If TextBox18 = "" Then MsgBox "Нет номера ваучера", vbCritical, "Ошибка": Exit Sub
    
    If TextBox18.Value = en Then 
    Sheets("Voucher").Cells("AJ16").Value = TextBox11
    ElseIf TextBox18.Value = ru Then
    Sheets("Ваучер").Cells("AP17").Value = TextBox11
    End If
    Application.ScreenUpdating = True
        
    MsgBox ("Информация добавлена")
    
End Sub
Возможно просто так скопировалось. Еще я посоветовал бы проверить какие значения у переменных en и ru. Может быть забыли присвоить? Сравнение происходит, но в обоих случаях результат False. А может это текст? Тогда записывать надо так:
Код:
If TextBox18.Value = "en" Then 
ElseIf TextBox18.Value = "ru" Then
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 16.08.2012 в 13:19.
The_Prist вне форума Ответить с цитированием
Старый 16.08.2012, 13:17   #8
Virtuallab
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 38
По умолчанию

1. Второй if не закрыт.
2. Если ru и en не переменные, то их надо бы взять в скобки.

И как советовал alex77755 заменить Cells на Range.

Последний раз редактировалось Virtuallab; 16.08.2012 в 13:27.
Virtuallab вне форума Ответить с цитированием
Старый 16.08.2012, 19:55   #9
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Спасибо всем откликнувшимся. Разобрался с утра сам.

If TextBox18.Text = "en" Then

Вот такой вариант сработал. Честно говоря, вчера проверял этот вариант тоже - не срабатывал. Сам удивился, почему сюда и написал. А сегодня все прошло нормально. Мистика какая-то. Это меня донимают тени убиеннных макросов.

Спасибо еще раз всем!
strannick вне форума Ответить с цитированием
Старый 17.08.2012, 07:48   #10
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Код:
Sheets("Ваучер").Cells("AP17").Value =
Странно!? У меня такое обращение вызывает ошибку!
Кто что скажет?
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подправьте код! naboman Microsoft Office Excel 3 03.06.2011 01:03
подправьте код задачи С++ kochet-kov Помощь студентам 0 23.12.2010 21:58
подправьте коротенький код... MyLastHit Общие вопросы Delphi 22 06.08.2010 22:54
подправьте код Delphi 7 savra Помощь студентам 0 14.12.2009 10:41