Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: VBA+ Excel:помогите чайнику Добавлено: 25.03.05 12:30  

Автор вопроса:  Ztrel0cK
Встречался до этого с VBA только совсем малость и в аксессе...
Сейчас нужна помощь в следующем вопросе:
Имеем таблицу в экселе (это к сожалению принципиально, я отчетливо осознаю что задачу можно легко решить программными средствами аксесса).
Есть множество полей, но нас интересует только 2 из них.
Пусть это будет A:A - ФИО и B:B с вариантами пустое/YES/NO/HOLD (вводится ручками).

Задача: Если в поле B ставится значение YES, информация из поля А должна копироваться во второй лист (ессно добавлять последней, не замещая уже имеющуюся запись).

Буду весьма признателен за кусок кода, советы, рекомендации и вообще любую помощь =)

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 25.03.05 17:14
dim i as long

i=1
with thisworkbook.worksheets("Скопированное";)
  do until isempty(me.cells(i,1).value)
    if me.cells(i,2).value="YES" then me.cells(i,1).copy .cells(.usedrange.rows.count+1,1)
    i=i+1
  loop
end with

Ответить

Номер ответа: 2
Автор ответа:
 Ztrel0cK



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 25.03.05 17:41
Ругается, говорит что Invalid use of Me keyword.
На самом деле, поясню еще один момент в задаче:
скорее это должна быть кнопка, или, что лучше, скрипт на заполнение поля B. Т.е. всю таблицу парсить не нужно, нужно реагировать на введение/изменение значения в поле B.

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 25.03.05 18:08
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target.Column = 2 Then
    If Target.Cells.Count = 1 Then
      If Target.Value = "YES" Then
        With ThisWorkbook.Worksheets("Скопированное";)
          Target.Offset(0, -1).Copy .Cells(.UsedRange.Rows.Count + 1, 1)
        End With
      End If
    End If
  End If
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 25.03.05 18:41
Option Explicit
Sub AddTo()
  Dim i As Intrger
  Dim j As Intrger
  i = 1
  Do While Not Sheets("Лист2";).Cells(i, 1).Value = Empty
    i = i + 1
  Loop
  j = i
  i = 1
  Do While Not Sheets("Лист1";).Cells(i, 1).Value = Empty
    If Trim$(Sheets("Лист1";).Cells(i, 2).Value) = "YES" Then
      Sheets("Лист2";).Cells(j, 1).Value = Trim$(Sheets("Лист1";).Cells(i, 1).Value)
      j = j + 1
    End If
    i = i + 1
  Loop
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 HoS



ICQ: 300-596-357 

Вопросов: 3
Ответов: 1
 Web-сайт: www.hos.boom.ru
 Профиль | | #5
Добавлено: 18.04.05 15:56
SOS у меня проблемы.... я недавно занялся VBA но уже надо сотворить невероятное..... надо сделать работу очень большую..... я понятия не имею как...? Кто может помогите вот задание:

Задача:
Составить программу в рабочей книге Excel при помощи которой продавец частного магазина может отпускать или заказывать товар
Исходные данные:
Товары представлены на одном рабочем листе.
Имеют наименование, код товара, цену товара в у.е., цену товара в руб., количество доступного товара на складе, стоимость товара на складе в руб.
Требования к программе:
1. Создается ведомость продаж товара за рабочий день
2. Товары списываются со склада
3. Создается отчет по продажам за текущий период
4. Ведется анализ по самому продаваемому товару
5. Выдается предупреждение о малом количестве товара на складе
6. Создается заказ товара
7. Принимается поступивший товар
Дополнительные требования:
По команде кассира должна создаваться страховая копия данных программы.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам