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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 12:24   #1
Vit981
 
Регистрация: 20.07.2010
Сообщений: 5
По умолчанию Помогите написать простенький макрос

Доброго всем дня!
Прошу помощи в написании макроса.
Для профи задача совсем не трудная, только я не профи

Дано:
Два листа - "Квитанция" и "Клиенты"
Задача:
После того, как пользователь заполнит все данные в квитанции, по нажатию кнопки должно происходить следующее:
Данные из Листа "Квитанция" (ячейки ФИО и место жительства) добавляются в лист "Клиенты" (в ячейки ФИО и место жительства соотвественно), НО клиенты не должны повторяться! При успешном добавлении - msgbox "Добавлено", при совпадении ФИО msgbox "Клиент уже есть". Еще должен автоматически ставится номер клиента.

Заранее благодарен всем откликнувшимся!

ps за мою кнопку сильно не ругайте - ибо чайник
Вложения
Тип файла: zip Квитанция+список.zip (13.7 Кб, 19 просмотров)
Vit981 вне форума Ответить с цитированием
Старый 20.07.2010, 13:14   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

вместо своего квазимакроса подставишь этот:
Код:
Sub М1()
   Dim FIO As String, MestoJitelstva As String
   Dim i As Long, lr As Long
   
   FIO = Range("J13")
   MestoJitelstva = Range("J15")
   
   With Sheets("Клиенты")
      lr = .Range("B" & Cells.Rows.Count).End(xlUp).Row
      
      For i = 1 To lr - 3
         If FIO & MestoJitelstva = .Cells(3 + i, 2) & .Cells(3 + i, 3) Then
            MsgBox "Клиент уже есть"
            Exit Sub
         End If
      Next i
      
      .Cells(lr + 1, 1) = lr - 2
      .Cells(lr + 1, 2) = FIO
      .Cells(lr + 1, 3) = MestoJitelstva
      MsgBox "Добавлено", , "№ клиента в списке - " & lr - 2
   End With
End Sub
аналитика вне форума Ответить с цитированием
Старый 20.07.2010, 14:59   #3
Vit981
 
Регистрация: 20.07.2010
Сообщений: 5
По умолчанию

СПАСИБО ОГРОМНОЕ!!!!!!
Только небольщая проблемка - если попробовать в Open office, то после добавления курсор становиться на листе "Клиенты" в ячейку J13

А если чуть усложнить задачу!?
Добавить счетчик услуг. На пером листе услуги выбираются из списка. Надо сделать так, чтобы при нажатиии конпки "добавить" улуги приплюсовывались (например, если на первом листе выбрана услуга "Копирование документов", то при нажатии кнопки "добавить" на втором листе, в ячейки колличество услуг "копирование допументов" прибавиться 1), даже если клиент уже есть в списке

ps сам добавил кнопку "печать" - сильно за неё не ругайте, если что не так - но, кнопка работает
Вложения
Тип файла: zip Квитанция+список.zip (15.1 Кб, 13 просмотров)

Последний раз редактировалось Vit981; 20.07.2010 в 15:50.
Vit981 вне форума Ответить с цитированием
Старый 20.07.2010, 15:46   #4
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

по поводу Open office - вопрос мимо.
Выпадающий список тебе усовершенствовал - он забирает значения со 2-го листа (ч/з именованный диапазон), алгоритм точно такой же как и с клиентами:
Вложения
Тип файла: rar Квитанция+список+.rar (22.2 Кб, 22 просмотров)
аналитика вне форума Ответить с цитированием
Старый 20.07.2010, 15:58   #5
Vit981
 
Регистрация: 20.07.2010
Сообщений: 5
По умолчанию

Спасибо тебе, умный человек!
Только вот услуги непойму как работают. Нужно, что бы они считались, т.е допустим копирование - 35, если добавляем еще одного клиента, то +1, т.е 36 и т.д
Vit981 вне форума Ответить с цитированием
Старый 20.07.2010, 16:04   #6
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Цитата:
Только вот услуги непойму как работают
диспетчер имен открой, там будет имя "Услуги" - используется формула СМЕЩ + СЧЁТЗ, чтобы подтягивать все услуги.

тебе нужно знать общее кол-во услуг или пронумеровать их как клиентов?
аналитика вне форума Ответить с цитированием
Старый 20.07.2010, 16:08   #7
Vit981
 
Регистрация: 20.07.2010
Сообщений: 5
По умолчанию

Нужно колличество услуг, независимо от клиентов.
Vit981 вне форума Ответить с цитированием
Старый 20.07.2010, 16:20   #8
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

напиши в любую ячейку не столбца "E" формулу
=СЧЁТЗ($E:$E)-1
-1 - это заголовок.
аналитика вне форума Ответить с цитированием
Старый 20.07.2010, 16:25   #9
Vit981
 
Регистрация: 20.07.2010
Сообщений: 5
По умолчанию

Благодарю!
Vit981 вне форума Ответить с цитированием
Старый 21.07.2010, 14:52   #10
ALEKS2008
Пользователь
 
Регистрация: 06.08.2009
Сообщений: 33
По умолчанию Fw: Помогите написать простенький макрос

опишите где ошибка. СПАСИБО
Вложения
Тип файла: rar Квитанция.rar (34.1 Кб, 15 просмотров)
ALEKS2008 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложно ли написать простенький сниффер? TwiX Софт 3 25.01.2010 15:32
Помогите написать макрос Govard Microsoft Office Excel 20 05.07.2009 21:29
Помогите написать простенький проект на Visual C++ до среды Борменталь Помощь студентам 0 10.05.2009 18:13
Помогите написать простенький скрипт Сева Белуччи PHP 1 29.05.2008 17:31