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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2009, 15:34   #1
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию перенос данных

Добрый день!!
Помогите, пожалуйста, с макросом в путевом листе:
В Putevka -лист путевки, где в D6-выбираю месяц, в D8-выбираю машину(если в конце стоит G-машина на газу , если В- на бензине . Есть машины газ-бензин, соответственно путевки надо на одну и ту-же машину но отдельно на газ и на бензин
Я попытался сделать лист Toplivo, в котором указал расход топлива за определенные месяцы (может таблицу надо сделать по-другому?)
Что мне нужно- в листe Putevka, выбрав месяц и машину, макросом в F14 перенести (из листа Топливо) кол-во топлива(газ или бензин) а в М24- сумму по данному топливу
Заранее благодарю
Вложения
Тип файла: rar put list.rar (5.1 Кб, 22 просмотров)
Romuald вне форума Ответить с цитированием
Старый 19.02.2009, 08:01   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Т.к. Вы разрешили переделывать таблицу,то я переделал ее так, как на мой взгляд удобнее. Так же, при выборе месяца и машины, дополнительно в ячейку "G14" пишется вид топлива. Если это нужно - в коде макроса измените адрес ячейки на требуемый, если не нужно - удалите (закомментируйте) блок с кодом, который делает этот сервис. В коде есть примечание.
Вложения
Тип файла: rar put list_2.rar (11.8 Кб, 19 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 19.02.2009, 10:26   #3
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Не хочет идти макрос в листе Celazime
Вложения
Тип файла: rar Putevka.rar (36.8 Кб, 17 просмотров)
Romuald вне форума Ответить с цитированием
Старый 19.02.2009, 11:04   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. В коде макроса Вы заменили имена листов на требуемые. Это правильно. А вот названия месяцев в листе "Degviela" не поменяли на те, которые в диапазоне списка на листе "Dannie".
2. По событию изменения значения в ячейке листа запускается одна определенная процедура, в которой мы должны самостоятельно "разруливать" выполнение тех или иных действий.
Пример во вложении.
Вложения
Тип файла: rar Putevka_2.rar (34.0 Кб, 30 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 19.02.2009, 13:28   #5
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

СПАСИБО ОГРОМНОЕ!!!!!
Romuald вне форума Ответить с цитированием
Старый 22.02.2009, 22:34   #6
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Добрый вечер!
Добавил в форму TextBox2 , в котором при просмотре в форме Vibor Marshruta (Combobox 1) , показывался остаток километров, попытался добавить в макрос Private Sub ComboBox1_Change формулу но....
1. Не могу сделать в (TextBox2) чтобы было два знака после запятой
2. Как только в форме Vibor Marshruta выбираешь пустое поле, макрос вылетает(дебажит)
Помогите, пожалуйста !!!
Romuald вне форума Ответить с цитированием
Старый 22.02.2009, 22:36   #7
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

Забыл!!
Во приложил файл
Вложения
Тип файла: rar Putevka_Vers3.rar (36.6 Кб, 26 просмотров)
Romuald вне форума Ответить с цитированием
Старый 23.02.2009, 00:00   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Во-первых, не надо сравнивать текст с числом: If ComboBox1 > 0 Then
Если ты хочешь проверить наличие текста в комбобоксе, пиши так: If ComboBox1 <> "" Then

Во-вторых, складывать текст с числом тоже нежелательно: ((Cells(41, "E") + Me.TextBox1))
особенно когда в TextBox1 находится не числовое значение.

В крайнем случае можно так: ((Cells(41, "E") + val(Me.TextBox1)))
Так мы предварительно преобразуем текст в число.

Попробуй такой вариант:
Код:
Private Sub ComboBox1_Change()
    Me.TextBox2 = "": Me.TextBox2 = ""    ' стираем значения в обоих текстбоксах
    Set x = Sheets("Marshruti").Columns("A").Find(Me.ComboBox1)    ' ищем на листе значение из списка
    If Not x Is Nothing Then    ' если нашли
        Me.TextBox1 = x.Next    'берём значение из ячейки справа
        t2 = [f14] / [d14] * 100 - (([e41] + Val(Me.TextBox1)))    ' вычисляем значение
        Me.TextBox2 = FormatNumber(t2, 2)    ' запись в новый текстбокс (с 2 знаками после запятой)
    End If
End Sub
Не забудь туда же добавить код активации нужного листа при запуске формы:
(поскольку ты обращаешься к ячейкам активного листа, а активным в момент запуска формы может быть любой лист, а это повлёчет ошибку)
Код:
Private Sub UserForm_Initialize()
    Sheets("Celazime").Activate
End Sub

Насчёт первой пустой строки в ComboBox1 - она тебе нужна?
Если нет, то исправь немного код макроса RemoveDuplicates:
Код:
...
    'заполняем коллекцию элементами без повторений
    On Error Resume Next
    For Each rCell In AllCells
        If Trim(rCell.Value) <> "" Then NoDupes.Add rCell.Value, CStr(rCell.Value)
    Next rCell
    On Error GoTo 0
...
Так мы обрабатываем только непустые ячейки диапазона.

Последний раз редактировалось EducatedFool; 23.02.2009 в 00:38.
EducatedFool вне форума Ответить с цитированием
Старый 23.02.2009, 12:40   #9
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

СПАСИБО!!!!!!!!!!!!!!!!!

С Праздником МУЖИКИ!!!!!!!!!!!!!!!!!!
Romuald вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных Nesta1384 Microsoft Office Excel 4 19.01.2009 02:28
перенос данных Viento Microsoft Office Excel 10 16.01.2009 00:13
Перенос данных из ячеек gavrylyuk Microsoft Office Excel 2 05.08.2008 14:24
Сравнение и перенос данных miheus Microsoft Office Excel 1 29.11.2007 16:42
Перенос данных. Victor Microsoft Office Excel 8 01.09.2007 21:02