Страницы: 1
RSS
Макрос ошибочно выборочно игнорирует копирование данных
 
Доброго времени суток всем!
Помогите разобраться с задачкой.
Версия Ексель 2010 (на всех проверяемых компьютерах)
Операционная система Windows 10  (на всех проверяемых компьютерах)
Есть файл ексель с несколькими вкладками (урезанную версию с данными прикладываю)
Прописал простенький макрос, который собирает все данные в кучу, с определенными требованиями к форматированию.
Все сделал примитивно, как смог. И всегда ответы на все вопросы находил на Вашем форуме.
Но сейчас какая то мистика происходить стала.
Данный файл (точнее макрос) прекрасно работает на моем компьютере но на двух других, он работает без ошибок НО НЕПРАВИЛЬНО.
Т.е. он запускается, выполняется (но выдает некорректные данные).
когда пытаюсь скопировать целый столбец с 60тыс ячеек, он копировал только 12288 ячеек и все. (столбец копировал и вставлял, что бы просто местами поменять)
Убрал копирование целого столбца и вставил цикл, что бы он копировал ячейку за ячейкой. эта проблема ушла, но возникла другая, еще более загадочная. После выполнения макроса, он выборочно не переносит некоторые строки из первичных вкладок. Причем каждый раз разные. Этого я совсем не могу понять.
Когда запускаю макрос на своем компе, все работает отлично.
Что бы было понятно сколько строк не переносится - в каждой из 10 вкладок примерно по 5000-1000 строк в 6 столбцах всего около 65000 значений в общей вкладке получается по итогу, так вот если запускать на "проблемных" компах, то там получается всегда разное количество строк в меньшую сторону. т.е. он по каким то неведомым причинам не копирует некоторые строки из вкладок. И каждый раз разные.
Я просто даже не понимаю  в каком направлении "копать". Может вирус там какой то, который нарушает работу макроса. Может с "железом" что то. Просто раньше все работало прекрасно и требуемая задача выполнялась. А недели 2 назад начались эти "танцы с бубном".
Или все таки проблема с моими руками? Подскажите пожалуйста, в чем может быть проблема.
Может проблема в размере вкладок?
Заранее спасибо за уделенное время
 
Цитата
Urall написал:
Или все таки проблема с моими руками?
это вы в корень зрите
исправите эту проблему - наладите работу макроса
(а проблемы с Excel, вирусами, Windows, железом, с крайне неудачным прохождением Венеры над созвездием Ориона - отложите на потом)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Но ведь этот макрос, хоть он и корявый сам по себе, прекрасно работал около полугода на всех компьютерах. Я его не менял. А пару недель назад начались проблемы, причем не на всех компьютерах.....
 
чтобы кто-то другой понимал что происходит не так
нужно этому другому обьяснить ЧТО ВЫ РЕШАЕТЕ?
какую задачу должен был решить макрос
не решает?
на вашем примере показываете: должно бы получиться вот что, а получилось вот это?
не нужно обьяснять как вы решаете задачу, обьясните какую задачу пытаетесь решить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
А почему версия файла 2003?
Цитата
Urall написал:
всего около 65000 значений
Все на грани фола.
 
Urall, здравствуйте
Судя по описанию очевидно, что вы не учли все возможные варианты. Возможно, вы используете в коде формулы листа, безусловный обход ошибок On Error Resume Next или ещё что (чистый VBA не менялся очень давно и код на нём очень стабилен). Возможно, на разных компах установлены разные региональные настройки (разделители даты, чисел и прочее) и дело в них, может ещё что…

Вместо того, чтобы решать проблему ХЗ в каком коде (его нужно прикреплять под спойлер, т.к. ленивые люди типа меня даже не открывают файл, если не интересно) создайте новую тему с описанием задачи — очень может быть, что новый, написанный с нуля код, будет короче, быстрее и уж точно надёжнее/стабильнее вашего  ;)
Изменено: Jack Famous - 26.12.2020 15:00:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Ігор Гончаренко написал:  обьясните какую задачу пытаетесь решить
Нужно:
1 - Собрать все данные со всех вкладок в одну.
2 - Поменять местами столбцы (столбец B поместить в столбец G, столбец D поместить в столбец B)
3 - Добавить столбец А, где присвоить строке имя вкладки в зависимости от того откуда эта строка взята
4 - ячейкам каждой вкладки присвоить собственный (конкретный) цвет. Что бы в итоговом файле не только благодаря подписи в первом столбце было понятно из какой вкладки это подтянуто, но и цветом было выделено.

Я по сути, сначала покрасил все вкладки  и добавил столбец с именем, а потом уже всю кучу скопировал в новую вкладку "Остатки"
Итоговый результат должен получатся такой какой получается при запуске макроса сейчас. Но он почему то неправильно работает на двух других компьютерах.

Понятно, что методы, которыми я пользовался далеки от оптимальных, но это хоть как то работало. Если еще нужна какая то информация, спрашивайте пожалуйста.  
 
Цитата
doober написал:
А почему версия файла 2003?
У меня везде офис 2010, но почему то "сохранить как" предлагает только в таких вариантах как на картинке.

То, что "на грани фола" не спорю))) яж написал, что все очень примитивно, методом тыка.  
 
Urall,
а вы при каждом запуске макроса создаете лист "Остатки"?
 
Urall,
Цитата
Urall написал: 1... 2... 3... 4...
Какая конкретно задача вызывает ошибку?
 
Цитата
Kuzmich написал:
а вы при каждом запуске макроса создаете лист "Остатки"?
Да, Эта процедура делается примерно 2 раза в неделю.
Каждый раз создается новый лист "остатки", старый предварительно удаляется  
 
Urall,
И при каждом запуске в первую строку всех листов добавляется слово магазин?
 
Цитата
Urall написал:
на грани фола
это об соотношении количества данных, которые вы пытаетесь записать в колонку и количестве ячеек в этой колонке для этого предназначенных
чем ближе к 1 тем ближе к грани, если отношение больше 1 - вы пересекли грань

вам ответ нужен на ваш вопрос?
если нужен прилагайте усилия чтобы привлечь к решению максимальное количество людей
кому-то интересно по не работающему коду разгадать цель, для чего он был написан и поправить, кому-то нет
мне интересно прочитать условия задачи, а не разгадывать ребус "а что за задача скрывается за этой неработающей фигней"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
что за задача скрывается за этой неработающей фигней
поддерживаю
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
vikttur написал:
Какая конкретно задача вызывает ошибку?
Получается по моему макросу неправильно копируются диапазоны из вкладок во вкладку "остатки". Он почему то копирует не все (например из 9000 строк может скопировать и вставить только 6000, а может и 8800).
Я не смог даже логики какой то найти, к сожалению
 
Цитата
Kuzmich написал:
И при каждом запуске в первую строку всех листов добавляется слово магазин?
Да, я сделал так, что бы просто подготовить вкладки, а потом в готовом виде скопировать все данные и вставить в лист "остатки"
 
Цитата
Ігор Гончаренко написал:
прилагайте усилия чтобы привлечь к решению максимальное количество людейкому-то интересно по не работающему коду разгадать цель, для чего он был написан и поправить, кому-то нетмне интересно прочитать условия задачи, а не разгадывать ребус "а что за задача скрывается за этой неработающей фигней"
Я и рад стараться, просто у меня не получается сразу отвечать на сообщения. Форум пишет: "слишком часто отправляете сообщения, потерпите несколько минут"

Задача, как я и написал: собрать данные с нескольких магазинов с товарами и получить наглядную таблицу по остатком, чего где сколько осталось и что куда нужно дозаказать. А фигня то работала раньше, в этом вся соль. И сейчас каким то чудом на моем компе работает нормально, а на других нет(((

п.с. прошу прощения, если где то некорректно описываю вопрос или задачу. В первый раз на форуме пишу. Вроде и правила форума почитал заранее, что бы не опростоволоситься, а все равно что то коряво у меня выходит, как и с кодом макроса))  
 
Urall, написал
Цитата
Задача, как я и написал: собрать данные с нескольких магазинов с товарами и получить наглядную таблицу по остатком
Оставьте лист Остатки в вашей книге и очищайте его в начале макроса
Сделайте цикл по всем листам, кроме листа Остатки, и переносите в него нужные данные с каждого листа.
 
Цитата
Urall написал: по моему макросу неправильно копируются диапазоны из вкладок во вкладку "остатки
Так зачем здесь рассказывать о замене столбцов, заливке, добавлении?
Тему нужно создавать по конкретной проблеме
 
Цитата
Kuzmich написал:
Оставьте лист Остатки в вашей книге и очищайте его в начале макросаСделайте цикл по всем листам, кроме листа Остатки, и переносите в него нужные данные с каждого листа.
Спасибо большое. Сейчас попробую. В рабочем файле просто кроме вкладок с магазинами и остатками еще куча других. но это я постараюсь обойти
 
Цитата
vikttur написал:
Тему нужно создавать по конкретной проблеме
Если говорить про конкретный участок с кодом, то это вот эта часть:
Скрытый текст
 
Urall, свои сообщения дополнять можно, а не строчить очередями
 
Urall,
Посмотрите пример сбора данных со всех листов
На листе Остатки кнопка Сбор со всех листов
Код
Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
Dim iLR As Long
  iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Range("A2:G" & iLastRow + 1).Clear
    For Each Sht In Worksheets
      If Sht.Name <> "Остатки" Then
        With Sht
          iLR = .Cells(.Rows.Count, "A").End(xlUp).Row
          iLastRow = Cells(Rows.Count, "A").End(xlUp).Row + 1
          .Range(.Cells(2, "A"), .Cells(iLR, "F")).Copy Cells(iLastRow, "A")
          Cells(iLastRow, "G") = Sht.Name
        End With
      End If
    Next
End Sub

Удачи!
 
Цитата
Kuzmich написал:
Посмотрите пример сбора данных со всех листов На листе Остатки кнопка Сбор со всех листов
Попробовал. Спасибо большое за такой удобный метод. На моем компьютере отлично отрабатывает. А на проблемном тоже почему то не докопировал 1700 строк((( Причем я в макросе подправил код, что бы не создавалась новая вкладка, а очищалась старая, и все равно тоже самое. Попробую на том компьютере поставить свежий офис. Больше не хочу Ваше время отнимать, потому что судя по всему, я не могу корректно и точно сформулировать проблему. Всем спасибо большое, кто откликнулся и постарался помочь.  
Страницы: 1
Наверх