Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка: Can't find project or library - стандартные способы решения не помогли
 
Ошибка возникает при открытии файла, т.е. макрос я даже не запускаю. Макросов на автоматические срабатывание при открытии книги у меня нет. (Кнопки на запуск  через Элементы управления формы)
Ошибка: Can't find project or library - стандартные способы решения не помогли
 
Здравствуйте! Вопрос к знатокам форума. У меня в рабочих файлах периодически возникает ошибка "Can't find project or library". При этом макросы написаны самостоятельно, работаю я на одном и том же компьютере. Ошибка возникает на разных файлах, какой-либо закономерности в причинах я не нашла. Через Tools-References -  подключены только обязательные библиотеки (проверяла). И самое интересное лечится это все тоже очень просто.  Проблемный файл я пересылаю сама себе, открываю его на другом компьютере, снова пересылаю по почте и все работает замечательным образом, никаких изменений в него не вношу. У меня единственное подозрение, что мой основной рабочий компьютер не успевает подключить нужную библиотеку. Может сможете подсказать возможные причины и как эту проблему решить. Спасибо.  
Создание отчёта на основе кросс-таблицы
 
Sanja, спасибо!! Большое спасибо!  Это то что надо, пошла учить мат.часть :D  
Создание отчёта на основе кросс-таблицы
 
Пример с исходником и как надо я вложила в первом сообщении. Если словами то так: из листа  "BP012_T_ABC" на лист "SAP"  переносим список уникальных номеров по столбцу 62 , при этом для каждого уникального значения нужно указать 12 периодов и сумму по каждому из периодов,  ну и дололнительные характеристики (Вид затрат, проект и т.д)
Создание отчёта на основе кросс-таблицы
 
Jack Famous, полностью согласна что нужно что-то другое. Вот только знания у меня в этой области поверхностные, наводочку дайте в какую сторону "копать".
Создание отчёта на основе кросс-таблицы
 

Здравствуйте!
Подскажите пожалуйста как ускорить работу этого цикла?. Очень уж медленно получается.

Код
Sub Otchet_SAP() 'начисление и касса заполнение шаблона данных
Dim CompareRange As Variant, x As Variant, y As Variant, SAPdata As Variant, lLast As Variant, kLast As Variant, jLast As Variant
Dim k As Variant, l As Variant
'
   ' jLast = Worksheets("SAP").Cells(Rows.Count, 1).End(xlUp).Row
   ' Worksheets("SAP").Range(Cells(4, 1), Cells(jLast, 21)).ClearContents'k = Worksheets("Imput").Range("h4")
'l = Worksheets("Imput").Range("h9")
Worksheets("BP012_T_ABC").Activate
lLast = Worksheets("BP012_T_ABC").Cells(Rows.Count, 62).End(xlUp).RowSet CompareRange = Worksheets("BP012_T_ABC").Range(Cells(12, 62), Cells(lLast, 62))
Worksheets("SAP").Activate
kLast = Worksheets("SAP").Cells(Rows.Count, 21).End(xlUp).RowSet SAPdata = Worksheets("SAP").Range(Cells(4, 21), Cells(kLast, 21))
     
   i = 4
  For Each x In SAPdata
  For f = 0 To 11
   For Each y In CompareRange
         If x = y Then
            
                  d = y.Offset(0, -27 + f) * y.Offset(0, -29) 'сбор суммы по начислению
                  d1 = d1 + d
                  s = y.Offset(0, 8 + f) 'сбор суммы по кассе
                  s1 = s1 + s '
         'Worksheets("SAP").Cells(i, 1) = k 'год
          Worksheets("SAP").Cells(i, 2) = f + 1 'период
         'Worksheets("SAP").Cells(i, 3) = l 'версия плана
          Worksheets("SAP").Cells(i, 4) = y.Offset(0, -35) 'МВЗ
          Worksheets("SAP").Cells(i, 5) = y.Offset(0, 1) 'Вид затрат
          Worksheets("SAP").Cells(i, 6) = d1 'сумма по начислению
          Worksheets("SAP").Cells(i, 8) = y.Offset(0, -52) ' раздел бюджета
          Worksheets("SAP").Cells(i, 9) = y.Offset(0, -31) 'проект
          Worksheets("SAP").Cells(i, 10) = y.Offset(0, -5) 'заказчик
         'Worksheets("SAP").Cells(i, 12) = k 'год
          Worksheets("SAP").Cells(i, 13) = f + 1 'период
         'Worksheets("SAP").Cells(i, 14) = l 'версия плана
          Worksheets("SAP").Cells(i, 15) = y.Offset(0, 1) 'Вид затрат
          Worksheets("SAP").Cells(i, 16) = s1 'суммы по кассе
          Worksheets("SAP").Cells(i, 17) = y.Offset(0, -52) ' раздел бюджета
          Worksheets("SAP").Cells(i, 18) = y.Offset(0, -31) 'проект
          Worksheets("SAP").Cells(i, 19) = y.Offset(0, -49) 'группа закупок
       End If '
     Next y
       i = i + 1
       s = 0
       s1 = 0
       d = 0
       d1 = 0
     Next f
     Next x
   Worksheets("SAP").Activate
  End Sub

В файле 2 листа , исходные данные и результат как нужно собрать.
Спасибо.

Подтягивание цены со склада в другой лист
 
Здравствуйте! Уважаемый FIRST,думаю Вам для начала следует с терминами определиться, Вы называете столбец "цена" - подразумевая при этом доход от реализации.  А то что у Вас "доход" является Вашей прибылью (синоним профит). При этом % комиссии прямо ни как не завязан, хотя косвенно видно, что 80,9% это есть (100% - 19,1% (сумма комиссий) - что будет если он изменится?). Как рассчитываете продажные цены? (где зависимость от закупок?)
Заполнить таблицу с учетом условий выбора, заполнение таблицы по условию с учетом уменьшения остатка количества для выбора
 
Здравствуйте!

Уважаемые форумчане, не могу придумать макрос для заполнения данных таблицы на листе "Заявочка"

Суть вопроса следующая:
Из листа "Логистика" на лист "Заявочка" переносятся данные об остатках товаров на складах. При этом в первую очередь заполняются ячейки при совпадении склада потребности и склада наличия (на пересечении столбец/строка), учитывается также общее количество на складе наличия ( на лист "Заявочка нельзя внести больше чем есть всего по данному складу в наличии) . Этот макрос у меня получился.    (может и кривовато  :) ) .  Мне нужно вытащить в лист "Заявочка" все доступные объемы, даже находящиеся на других складах. Пример того, что должно получиться в итоге приложенном в файле. Заранее спасибо за помощь.
Код
Sub Макрос1() ' заполнение склада
Dim CompareRange As Variant, x As Variant, y As Variant, goory As Variant, z As Variant
Dim k As Integer, l As Integer
    iLast = Worksheets("Заявочка").Cells(Rows.Count, 1).End(xlUp).Row ' последняя строка в диапазоне
    jLast = Worksheets("Логистика").Cells(Rows.Count, 1).End(xlUp).Row
    Set CompareRange = Worksheets("Заявочка").Range(Cells(4, 1), Cells(iLast, 1))
      
     Worksheets("Логистика").Activate
     Worksheets("Логистика").Range(Cells(4, 1), Cells(jLast, 1)).Select
   For Each x In Selection
   For Each y In CompareRange
   If x = y Then
   If y <> 0 Then
   If y.Offset(0, 2) > 0 Then
    For g = 0 To 18
     If y.Offset(0, 3) = Worksheets("Заявочка").Cells(3, 9 + g) Then
     If x.Offset(0, 5) = Worksheets("Заявочка").Cells(3, 9 + g) Then
           z = y.Offset(0, 2)
           If x.Offset(0, 4) >= y.Offset(0, 2) Then
                     If y.Offset(0, 2) + z1 < x.Offset(0, 4) Then
                       y.Offset(0, 8 + g) = y.Offset(0, 2)
                       x.Offset(0, 6) = 1
                     Else
                       If x.Offset(0, 4) - z1 > 0 Then
                          y.Offset(0, 8 + g) = x.Offset(0, 4) - z1
                          x.Offset(0, 6) = 1
                       End If
                     End If
           Else
           
                      If y.Offset(0, 2) + z1 < x.Offset(0, 4) Then
                         y.Offset(0, 8 + g) = y.Offset(0, 2)
                         x.Offset(0, 6) = 1
                       Else
                         If x.Offset(0, 4) - z1 > 0 Then
                            y.Offset(0, 8 + g) = x.Offset(0, 4) - z1
                            x.Offset(0, 6) = 1
                          End If
                       End If
           End If
           z1 = z1 + z
                 End If
           End If
 Next g
  End If
  End If
  End If
               Next y
               z = 0
               z1 = 0
 Next x
   Worksheets("Заявочка").Activate
  End Sub
ListBox, возврат и выделение последней обрабатываемой записи
 
Спасибо!
ListBox, возврат и выделение последней обрабатываемой записи
 
Супер!!! Спасибо!! Все получилось
ListBox, возврат и выделение последней обрабатываемой записи
 
Видимо не совсем я внятно свою проблему описала  :cry:
здесь:
Код
Private Sub CommandButton5_Click()

отрабатывается поиск по условию, которое нужно ввести в Textbox - e, основной поиск в файле по "наименованию из 1С" ( если не выбрано по какому критерию ищем и что ищем то даст ошибку - )

так как несколько идентичных товаров принадлежат к одной группе и одному классу, сделала возможность заполнение полей в таблице и через форму или "ручками" в файле Excel.

здесь: я выбираю да записи в  Listbox-е группу и класс

Код
Private Sub CommandButton3_Click()
Stroka = ListBox2.List(ListBox2.ListIndex, 0)
Sheets("Таблица перехода").Cells(Stroka, 11) = ComboBox1
Sheets("Таблица перехода").Cells(Stroka, 13) = ComboBox2 Call CommandButton5_ClickEnd Sub

выбранне заначения из Combobox-сов переносятся в файл  и, повторно запускается фильтр на прежних условях, ну чтобы видеть где изменения есть

вопрос только в том как потом вернуться именно к той записи которую обрабатывали последней, в Listbox-е, подсветитить ее так сказать

Код
 ListBox2.ListIndex = ListBox2.ListCount - 1

так я к последней вернусь, а мне нужна  именно та, которую обрабатывали до запуска Private Sub CommandButton3_Click() иначе мне приходится искать среди выбранных 500 (допустим) сторок, ту для которой группа/класс не заполнен, глазами, а это не удобно
ListBox, возврат и выделение последней обрабатываемой записи
 
 

Здравствуйте! Благодаря форуму разобралась со всеми своими задумками по данной форме. Но есть вопрос, ответ на который я никак найти не могу. Суть такая: обрабатывается файл в 16тыс.наименований (строк), фильтрую по наименованию, записям в нем присваивается нужная группа и класс (выбор в Combobox), но при добавлении изменений в файл Excel и обновлении записей в Listbox-e активной становится первая запись.

 

Как сделать так, что бы запоминалась последняя запись в Listbox-e с которой работали и при обновлении она оставалась выделенной (активной). Ну, что бы по списку не искать. Спасибо.

 
Суммирование данных по условию макросом
 
Про такой цикл
Код
For Each Sht In Worksheets
  If Sht.Name <> "Лист2" Then        ' кроме листа "Лист2"
    With Sht
я тоже думала, но у меня в этой книге не только листы с одинаковым форматом, есть еще сводные консолидированные формы
и поэтому ссылку на  обрабатываемые листы  нужно по имени делать или отдельным списком где то их указывать
Суммирование данных по условию макросом
 
так как у меня данные по проектам на отдельных листах я сделала так:
Код
dd = ActiveSheet.Range("n2")' на листе с данными по проекту имя листа откуда выборку делаем, он общий для всех
  
 With Sheets(dd) ' обращение к этому листу
получается для каждого проекта нужно макрос перезапускать

или лучше все же сделать цикл по листам?
Суммирование данных по условию макросом
 
Kuzmich, спасибо!!! стоило принести ноут с работы домой и все летает. вдимо что то тормозило  :D СПАСИБО!! выручили  
Суммирование данных по условию макросом
 
Файл с Вашим кодом,
Суммирование данных по условию макросом
 
700 уникальных значений с кодами статей..  выборку делаем из 1500 строк с данными ( ну это как мин.)
Суммирование данных по условию макросом
 
Kuzmich, спасибо Вам за помощь, но на реальной моей базе этот код работает так же очень медленно ... (
Суммирование данных по условию макросом
 
Дело в том, что  данные по проектам собираются на разных листах, мне бы для начала по одному условию определиться. Эту задачу я могу решить и формулами, но хотелось бы обезопасить свои расчеты от случайных ошибок
Изменено: Marlin - 25.04.2016 11:16:54
Суммирование данных по условию макросом
 
LVL, спасибо Вам за ссылку, но к сожалению не получилось у меня под свои нужды код приспособитьэтот вот кусочек, в форме с итогом данные заносятся в 3 столбец
Код
vaTotalData(n, 3) = vaTotalData(n, 3) + Abs(vaBasicData(i, 7) + vaBasicData(i, 6))
мне нужно записать сумму не в один столбец а в 12 последовательно... здесь нужен еще один цикл для столбца? и как мне потом данные в форму с итогами вывести
Спасибо
Суммирование данных по условию макросом
 
Здравствуйте! Подскажите пожалуйста как обработать следующий запрос макросом:

Есть лист с данными (лист2) - общее количество строк изменяется (до 1500 и более)
порядок столбцов постоянный
лист(1) - форма куда собирается информация
при этом формат листа тоже постоянный (в примере я оставила только значимые поля)

требуется собрать в форму на листе 1 данные с листа 2 при выполнении условия совпадения кода статьи и номера проекта
при этом данные на листе 2  с одинаковыми параметрами могут быть внесены несколькими записями (их нужно сложить)

нарисовала вот такой макрос (все ссылки на реальные диапазоны) :
Код
Sub Макрос12() 
Dim CompareRange As Variant, x As Variant, y As Variant, g As Variant, z As Variant
Dim k As Variant, l As Variant
  z = 0
  z1 = 0
  k = 0
  g = 0
Set CompareRange = Worksheets("Лист1").Range("b15:b700")
Worksheets("Лист2").Activate
Worksheets("Лист2").Range("b3:b1125").Select
 For Each y In CompareRange
 For g = 1 To 15
  k = 1
 If g Mod 4 = 0 Then g = g + 1
       For Each x In Selection
        If x = y Then
        If y <> 0 Then
         If x.Offset(0, -1) = 10100 Then
           z = x.Offset(0, 3 + k)
           z1 = z1 + z
           y.Offset(0, 4 + g) = z1 
                End If
                End If
                End If
           Next x
         z = 0
         z1 = 0
       Next g
       k = k + 1
      Next y
 Worksheets("Лист1").Activate
  End Sub
но он очень медленный, если есть другое решение,
то Большое Вам спасибо!
Изменено: Marlin - 25.04.2016 20:19:56
Страницы: 1
Наверх