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

Вход

Регистрация

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

 

= Мир MS Excel/в коде заменить Val(Me.TextBox1) - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » в коде заменить Val(Me.TextBox1)
в коде заменить Val(Me.TextBox1)
AKSENOV048 Дата: Понедельник, 29.08.2011, 13:44 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Здравствуйте! подскажите чем заменить Val(Me.TextBox1) '№ после строки With Sheets(2) на значение, после строки with Sheets(1): .Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1.
Private Sub ДОБАВИТЬ_Click() 'OK
Dim iLastRow As Long
Selection.Offset(, -1).Value = Val(Me.TextBox1) '№
If Label6.Caption > 0 Then
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№
End With
With Sheets(5)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№Val(Me.TextBox1) '№
End With
End If
If Label6.Caption > 0 Then
With Sheets(1)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№
End With
Unload Me
End If
End Sub

т.е надо что то типа этого:
With Sheets(2)
.Cells(iLastRow, 2).Value = Cells(iLastRow, 1).Value (из Sheet(1))
 
Ответить
СообщениеЗдравствуйте! подскажите чем заменить Val(Me.TextBox1) '№ после строки With Sheets(2) на значение, после строки with Sheets(1): .Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1.
Private Sub ДОБАВИТЬ_Click() 'OK
Dim iLastRow As Long
Selection.Offset(, -1).Value = Val(Me.TextBox1) '№
If Label6.Caption > 0 Then
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№
End With
With Sheets(5)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№Val(Me.TextBox1) '№
End With
End If
If Label6.Caption > 0 Then
With Sheets(1)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№
End With
Unload Me
End If
End Sub

т.е надо что то типа этого:
With Sheets(2)
.Cells(iLastRow, 2).Value = Cells(iLastRow, 1).Value (из Sheet(1))

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 13:44
Hugo Дата: Понедельник, 29.08.2011, 13:52 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Не понятно, что именно нужно.
Ну просто уберите Val(), оставьте .Cells(iLastRow, 2) = Me.TextBox1 '№
Но тогда в таблицу вставится строка, а не число, что может привести к проблемам в другом месте (например, если искать Max).


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе понятно, что именно нужно.
Ну просто уберите Val(), оставьте .Cells(iLastRow, 2) = Me.TextBox1 '№
Но тогда в таблицу вставится строка, а не число, что может привести к проблемам в другом месте (например, если искать Max).

Автор - Hugo
Дата добавления - 29.08.2011 в 13:52
AKSENOV048 Дата: Понедельник, 29.08.2011, 14:08 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

блин не правильно написал немного.

Private Sub ДОБАВИТЬ_Click() 'OK
Dim iLastRow As Long
Selection.Offset(, -1).Value = Val(Me.TextBox1) '№
If Label6.Caption > 0 Then
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№
End With
With Sheets(5)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = Val(Me.TextBox1) '№
End With
End If
If Label6.Caption > 0 Then
With Sheets(1)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№
End With
Unload Me
End If
End Sub

мне надо
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№

Val(Me.TextBox1) надо заменить на значение которое получится в:
With Sheets(1)
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№
 
Ответить
Сообщениеблин не правильно написал немного.

Private Sub ДОБАВИТЬ_Click() 'OK
Dim iLastRow As Long
Selection.Offset(, -1).Value = Val(Me.TextBox1) '№
If Label6.Caption > 0 Then
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№
End With
With Sheets(5)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = Val(Me.TextBox1) '№
End With
End If
If Label6.Caption > 0 Then
With Sheets(1)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№
End With
Unload Me
End If
End Sub

мне надо
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'первая пустая строка
.Cells(iLastRow, 2) = Val(Me.TextBox1) '№

Val(Me.TextBox1) надо заменить на значение которое получится в:
With Sheets(1)
.Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 14:08
Hugo Дата: Понедельник, 29.08.2011, 14:19 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
.Cells(iLastRow, 2) = Sheets(1).Cells(sh1_iLastRow, 1).Value + 1 '№
Так что-ли попробуйте, но сперва определите по первому листу sh1_iLastRow .
Но имхо с ипользованием Max() кода было бы меньше.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение.Cells(iLastRow, 2) = Sheets(1).Cells(sh1_iLastRow, 1).Value + 1 '№
Так что-ли попробуйте, но сперва определите по первому листу sh1_iLastRow .
Но имхо с ипользованием Max() кода было бы меньше.

Автор - Hugo
Дата добавления - 29.08.2011 в 14:19
AKSENOV048 Дата: Понедельник, 29.08.2011, 18:24 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

можете предложить вариант с использованием Max()?
 
Ответить
Сообщениеможете предложить вариант с использованием Max()?

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 18:24
Hugo Дата: Понедельник, 29.08.2011, 18:28 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Так ведь вроде мой первый вариант и был с Max() - т.е. определяем максимальный номер по столбцу, прибавляем единицу.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак ведь вроде мой первый вариант и был с Max() - т.е. определяем максимальный номер по столбцу, прибавляем единицу.

Автор - Hugo
Дата добавления - 29.08.2011 в 18:28
AKSENOV048 Дата: Понедельник, 29.08.2011, 18:34 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

а. вы не поняли я добавил условие, что если при добавлении нового товара в реализации значение Label6 >0(то есть если часть товара или весь товар из реализации перемещен в магазин), то данные переносятся не только на лист в базу Реализации и журнал Реализации, но и в базу магазина вписывается что пришел новый товар и в журнал магазина, у меня заморочка с номерами, надо чтобы в Реализации и в журнале реализации был свой номер а в магазине и журнале магазина свой. с базой магазина разобрался: With Sheets(1) .Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№ , а с журналом магазин не получается, вот я и спрашиваю как это сделать?


Сообщение отредактировал AKSENOV048 - Понедельник, 29.08.2011, 18:34
 
Ответить
Сообщениеа. вы не поняли я добавил условие, что если при добавлении нового товара в реализации значение Label6 >0(то есть если часть товара или весь товар из реализации перемещен в магазин), то данные переносятся не только на лист в базу Реализации и журнал Реализации, но и в базу магазина вписывается что пришел новый товар и в журнал магазина, у меня заморочка с номерами, надо чтобы в Реализации и в журнале реализации был свой номер а в магазине и журнале магазина свой. с базой магазина разобрался: With Sheets(1) .Cells(iLastRow, 1).Value = .Cells(iLastRow - 1, 1).Value + 1 '№ , а с журналом магазин не получается, вот я и спрашиваю как это сделать?

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 18:34
Hugo Дата: Понедельник, 29.08.2011, 21:10 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Я думаю, если в этих журналах номера - это числа, а не текст, то в каждом листе можно найти Max() столбца и прибавить единицу.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЯ думаю, если в этих журналах номера - это числа, а не текст, то в каждом листе можно найти Max() столбца и прибавить единицу.

Автор - Hugo
Дата добавления - 29.08.2011 в 21:10
AKSENOV048 Дата: Понедельник, 29.08.2011, 22:17 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

да как в журнале можно прибавить к последнему единицу, там же все не по порядку?!
 
Ответить
Сообщениеда как в журнале можно прибавить к последнему единицу, там же все не по порядку?!

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 22:17
Hugo Дата: Понедельник, 29.08.2011, 22:31 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Так когда определяешь Max() - всё равно, по порядку или нет.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак когда определяешь Max() - всё равно, по порядку или нет.

Автор - Hugo
Дата добавления - 29.08.2011 в 22:31
AKSENOV048 Дата: Понедельник, 29.08.2011, 22:34 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

простите, я не знал. (если честно и не понял). подскажите как это сделать с Max()? с этим еще не разобрался.)


Сообщение отредактировал AKSENOV048 - Понедельник, 29.08.2011, 22:36
 
Ответить
Сообщениепростите, я не знал. (если честно и не понял). подскажите как это сделать с Max()? с этим еще не разобрался.)

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 22:34
Hugo Дата: Понедельник, 29.08.2011, 22:37 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Вот, в файле из первой темы http://www.excelworld.ru/_fr/7/1310435.v02.xlsm
в форме добавления нового товара:
Code

Me.TextBox31 = Application.Max(Columns(1)) + 1


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВот, в файле из первой темы http://www.excelworld.ru/_fr/7/1310435.v02.xlsm
в форме добавления нового товара:
Code

Me.TextBox31 = Application.Max(Columns(1)) + 1

Автор - Hugo
Дата добавления - 29.08.2011 в 22:37
AKSENOV048 Дата: Понедельник, 29.08.2011, 22:48 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

получилось, Ура: .Cells(iLastRow, 2) = Sheets(1).Application.Max(Columns(1)) + 1 '№ СПАСИБО огромное!
 
Ответить
Сообщениеполучилось, Ура: .Cells(iLastRow, 2) = Sheets(1).Application.Max(Columns(1)) + 1 '№ СПАСИБО огромное!

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 22:48
AKSENOV048 Дата: Понедельник, 29.08.2011, 23:11 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

а нет, вот так получилось. единицу в конце надо было удалить. .Cells(iLastRow, 2) = Sheets(1).Application.Max(Columns(1))
 
Ответить
Сообщениеа нет, вот так получилось. единицу в конце надо было удалить. .Cells(iLastRow, 2) = Sheets(1).Application.Max(Columns(1))

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 23:11
AKSENOV048 Дата: Понедельник, 29.08.2011, 23:17 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

НЕТ НЕ ПОЛУЧИЛОСЬ!(
 
Ответить
СообщениеНЕТ НЕ ПОЛУЧИЛОСЬ!(

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 23:17
Hugo Дата: Понедельник, 29.08.2011, 23:20 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Если вместо цифр - текст, то не посчитает.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЕсли вместо цифр - текст, то не посчитает.

Автор - Hugo
Дата добавления - 29.08.2011 в 23:20
AKSENOV048 Дата: Понедельник, 29.08.2011, 23:21 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

там цифры, не считает!
 
Ответить
Сообщениетам цифры, не считает!

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 23:21
Hugo Дата: Понедельник, 29.08.2011, 23:27 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Не может быть!
Ну конечно, так нужно:
.Cells(iLastRow, 2) = Application.Max(Sheets(1).Columns(1))


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе может быть!
Ну конечно, так нужно:
.Cells(iLastRow, 2) = Application.Max(Sheets(1).Columns(1))

Автор - Hugo
Дата добавления - 29.08.2011 в 23:27
AKSENOV048 Дата: Понедельник, 29.08.2011, 23:31 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

ну вот какой я глупый. только в конце еще надо +1. и все работает. спасибо большое.
 
Ответить
Сообщениену вот какой я глупый. только в конце еще надо +1. и все работает. спасибо большое.

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 23:31
AKSENOV048 Дата: Понедельник, 29.08.2011, 23:58 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

я правильно понимаю, что Application.Max значит последнюю строку со значением и работает только с диапазоном цифр?
 
Ответить
Сообщениея правильно понимаю, что Application.Max значит последнюю строку со значением и работает только с диапазоном цифр?

Автор - AKSENOV048
Дата добавления - 29.08.2011 в 23:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » в коде заменить Val(Me.TextBox1)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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