Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Несколько вопросов для прайса

23K
23 апреля 2007 года
Arkadiy_B
11 / / 22.04.2007
Добрый день.
Возникла необходимость решения задачки на vba. есть два файла, один с прайсом, второй с остатками на складе. сделать надо так, чтоб макрос перебирал коды товаров (брал их из прайса и сравнивал с остатком), если есть то судя по колличеству заносил цену. Еще такой нюанс во всем это, товар из прайса разбит по карточкам, т.е. одному и томуже товару моугт соответствовать разные коды. Подскажите как лучще сделать. я подумал что можно создать коллонку в прайсе с кодами и для одного вида товара заносит коды через точку с запятой, а потом как-то разделять эти коды и просматривать в остатках.


Цитата:
Sub Price()
Application.Workbooks.Item("050407Ïðàéñû Excel.xls").Worksheets("Ïðàéñ").Activate

Dim code As String

For i = 28 To 270
DoEvents
Application.Workbooks.Item("050407Ïðàéñû Excel.xls").Worksheets("Ïðàéñ").Activate
Range("P" & i).Select
'r = ActiveCell.Cells.Address 'ïåðåäà÷à â ïåðåìåííóþ r àäðåñà ÿ÷åéêè äëÿ äàëüíåéøåé çàïèñè
code = ActiveCell.Cells.Value
Application.Workbooks.Item("Îñòàòîê íà 090407_091858.xls").Worksheets("Îñòàòêè òîâàðîâ").Activate


Debug.Print code
Next i
End Sub



может просто подскажите как по пунктам
1) как мне сделать поиск по переменной code в файле остатков ячейку?
2) как из одной ячейки с значением "121212;222222;3232323" передать в массив отдельно каждый код товара (смотрел комманду split, но не разобрал ее синтаксис)?

Спасибо.

459
24 апреля 2007 года
gacol
273 / / 12.02.2003
1) искать можно примерно так
With Workbooks(" ").Sheets(" ")
Set c = .Range("A:X").Find(code, LookIn:=xlValues)
If NOT c Is Nothing Then
.... используй данные ячейки c ....
End If
End With

2) проверил, split работает, создает массив x
x=split("121212;222222;3232323",";")

а лучше выложи файлы, будет всем проще
23K
27 апреля 2007 года
Arkadiy_B
11 / / 22.04.2007
Спасибо за ответ, но есть неточность.
вот кусок кода
Код:
code = Split(str, ",")
With Workbooks(Filename).Sheets("Остатки товаров")
sum = 0
    For i1 = 0 To UBound(code)
    Set c = .Range("A:X").Find(code(i1), LookIn:=xlValues)
        If Not c Is Nothing Then
       sum = sum + ActiveCell.Offset(0, -3).Value
    Debug.Print sum
    Else: GoTo errormsg
    End If
    Next i1
     End With

вот здесь надо исправить, надо не только поиск, но и сделать найденную ячейку активной, чтоб можно было взять значение 3-мя столбцами левее. может конечно есть и другие варианты кроме ActiveCell.Offset(0, -3).Value

еще вопрос, я из макроса вызываю форму, как сделать кнопку "Cancel" при нажатии которой завершался макрос???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог