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

Страницы: 1
Файл эксель "заболел" без видимой причины
 
Добрый день, уважаемые!

Есть файл, который заполняется ежедневно. Каждый день создаются два новых листа с соответствующими датами и в них работают наши операторы. Не так давно я его почистила (как обычно), т.е. удалила старые даты-листы. Но примерно с того же момента файл стал жутко тормозить. Вбиваем любые данные в любую из ячеек, как он зависает, потом еще пересчитывает (правда это в лучшем случае, обычно завис и пока комп не перезагрузить ничего дальше не сделать). В целом это ооочень усложняет работу. Ведь ждать каждую ячейку по мин 10-15, а их около 100 это не дело. Проверила все. Формулы как в старой версии, макросы тоже. Никак не пойму что с файликом. Выложить не могу, к сожалению, может кто сталкивался с похожей проблемой? Есть ли методы ее решения?

Заранее всем спасибо за ответы!
Макрос для копирования всего листа из одной книги в созданную макросом книгу (error 9)
 
И снова все здравствуйте!

Последний разочек по этому макросу помогите, пожалуйста.
Макрос, который создает папку и называет ее, там создает книгу и называет ее (если такой книги еще нет) еще должен копировать с первой книги активный лист в созданную.
Код
Sub Main()
    Const strRootFolder As String = "M:\Production\Masters\2017\Normalization"
    Dim strFolder As String
    
    strFolder = "M:\Production\Masters\2017\Normalization\" & Range("folder_name").Value
    
    If Dir(strFolder, vbDirectory) = "" Then
        MkDir strFolder
    End If
    
    Dim strFileName As String
   Dim strFileTitle As String
 
 
   strFileTitle = "M:\Production\Masters\2017\Normalization\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("folder_name").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("Книга") & ".xlsm"
 
   strFileName = "M:\Production\Masters\2017\Normalization\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("folder_name").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("Книга") & ".xlsm"
 
   If Dir(strFileName) <> "" Then
      MsgBox "OK"
    Else
   Dim New_Wb As Workbook
    Set New_Wb = Workbooks.Add
    New_Wb.Activate
    New_Wb.SaveAs "M:\Production\Masters\2017\Normalization\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("folder_name").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("Книга") & ".xlsm", 52
    
    End If
   
   Windows("Расчет.xlsm").Activate 
   Dim sh As Worksheet: Set sh = ActiveSheet    
  Call Sheet_Name
    Application.ScreenUpdating = False  

    With Workbooks.Open("M:\Production\Masters\2017\Normalization\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("folder_name").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("Книга") & ".xlsm")   
        sh.Copy , .Worksheets(.Worksheets.Count) 
        .Close True   
    End With
   
   Windows("Расчет.xlsm").Activate
End Sub


Но на строке  
Код
With Workbooks.Open("M:\Production\Masters\2017\Normalization\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("folder_name").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1").Range("Книга") & ".xlsm")

Ошибка 9: subscript out of range
Почитала в интеренете, ошибка говорит о том, что нет такого пути. Но как его не может быть? Я ведь полностью указала весь путь к книге...

Буду признательна за помощь!
Макрос создания или открытия книги в папке по условию
 
Всем доброго времени суток!

Я все еще мучаюсь с одним макросом первую часть, которого мне помогли написать здесь. Совсем я еще чайник в VBA(((
Вот есть код
Код
Sub Main()
     
    Const strRootFolder As String = "M:\Production\Мастера\2017\Нормализация"
    
    Dim strFolder As String
    
    strFolder = "M:\Production\Мастера\2017\Нормализация\" & Range("имя_папки").Value
    
    If Dir(strFolder, vbDirectory) = "" Then
        MkDir strFolder
    End If
    
 Dim New_Wb As Workbook
    Set New_Wb = Workbooks.Add
    New_Wb.Activate
    New_Wb.SaveAs "M:\Production\Мастера\2017\Нормализация\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("имя_папки").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("Книга") & ".xlsm", 52
    
    Папка = "M:\Production\Мастера\2017\Нормализация\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("имя_папки").Value & "\"
Имя = Dir(Папка & "*.xls*")
Do While Имя <> ""
If Имя <> "M:\Production\Мастера\2017\Нормализация\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("имя_папки").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("Книга") & ".xlsm" Then MkDir New_Wb Else Workbooks.Open Filename:="M:\Production\Мастера\2017\Нормализация\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("имя_папки").Value & "\" & Workbooks("Расчет.xlsm").Worksheets("1 норм").Range("Книга") & ".xlsm"
Имя = Dir
Loop
   
   Windows("Расчет.xlsm").Activate
    
End Sub


Суть в том, что по макросу создается папка с определенным названием, а затем в этой папке создается книга, куда потом будут копироваться листы из первоначального файла, тоже с определенным названием. Но эта книга должна создаваться, если такой (с таким названием) еще нет...
Но он не работает((
Выдает окошко с вопросом: файл с таким названием уже есть, заменить? Я нажимаю нет, и дальше ошибка на строку New_Wb. Save As

Помогите, пожалуйста :oops:

P.S. Такая тема уже есть вот здесь. Я просто думаю, может и здесь какие идеи будут)))
Изменено: Honey - 23.06.2017 12:00:21
1004 runtime error Method visible of object worksheet failed только на определенном компьютере
 
Всем доброго времени суток!

Столкнулась с такой вот проблемой: ошибка 1004 Method visible of object worksheet failed выходит при открытии файла только на одном компьютере. Этот же файл на других компьютерах работает также. Везде стоит офис 2016. Надстройки и параметры макросов одинаковые. В чем может быть причина? Причем даже кнопка debug не нажимается, чтобы посмотреть где конкретно сидит причина ошибки...
Сталкивался кто-нибудь в таким?

Заранее благодарю всех на любые ответы!
Макрос создания папки и подпапок
 
Добрый день, уважаемые!

Такая вот задачка: нужно прописать макрос, который в определенной папке, путь которой можно менять вручную, создавать другую папку с названием месяца. Если такая папка уже имеется пропускать этот шаг и ...
С созданием папок с условиями вообще не знаю((( Получается что-то ужасное...

Помогите, пожалуйста. Буду премного благодарна!!
Файл-пример во вложении...
Макрос копирования диапазона в первую пустую ячейку на другом листе
 
Всем доброго вечера!

Имеется макрос:
Код
Sub Sheet_to_sheet()
'
'
Application.ScreenUpdating = False
Sheets("Лист2").Select
    Range("Данные").Select
    Selection.copy
    lastrow = Worksheets("Лист4").Range("A10000").End(xlUp).Row
    Worksheets("Лист4").Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Sheets("Лист4").Select
    'ActiveCell.Select
     'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'Selection.NumberFormat = "0.00"
 Application.ScreenUpdating = True
End Sub⁠


Но он копирует данные в следующие строки на листе ЛИСТ4, даже если тот диапазон (таблица Данные) был пустой. А я никак не могу добиться того, чтобы копировался в следующую пустую строку... Перепробовала втиснуть в этот макрос различные варианты поиска первой пустой строки.
Но не получается.

Прошу у Вас помощи...(((

P.S. В примере использую формулу из надстройки Plex...

С уважением,
Два разных диапазона для одного критерия, по которому ведется расчет
 
Добрый вечер!

Модераторы, название темы скорее всего не очень. Заранее прошу прощения! Конец рабочего дня, даже изъяснится трудно...

Тут такое дело. Есть критерий-код. Его я ищу в двух разных диапазонах (так уж вышло, если очень нужно, потом опишу как так и зачем). И вот по совпадению критерия высчитываю сумму. Но если в первом диапазоне и во втором диапазоне критерии совпадают ( и там и там есть), то он соответствующее значение суммирует дважды. А это неправильно.
Файл-пример во вложении. В своей версии я использую формулу СУММПРОИЗВ, но знаю, что и СУММЕСЛИ и СУММЕСЛИМН тоже подходят. Просто оригинальная формула включает слишком много различных критериев, и у меня с ними только СУММПРОИЗВ справляется.
Прошу помочь!

Заранее спасибо!

С уважением,
Изменено: Honey - 16.11.2016 13:33:26
Формула СУММПРОИЗВ в разных книгах считает по-разному
 
Здравствуйте, форумчане!

Такая вот странная штуковина... Я для расчетов использую формулу СУММПРОИЗВ, но заметила, что она как-то странно считает. Для проверки, где же я могла допустить ошибку, попробовала с другими значениями, но по тому же принципу. В новой книге она считает все верно, хотя формула абсолютно идентична! Я в тупике. Как такое может быть? Есть кто сталкивался с такой проблемкой?
Во вложении файл-пример...

Заранее спасибо всем за ответы!

С уважением,
Защита листа при поиске решения
 
Всем доброго времени суток! :)
В итоге большинство моих тем сливаются в одну)
Есть 3 макроса поиска решения:
Скрытый текст
И четвертый макрос, который по условию запускает их:
Код
Sub Расчет2()
    If Range("D11") = Range("O26") Or Range("D11") = Range("O29") Or Range("D11") = Range("O46") Then
        Call Макрос21
    End If
    If Range("D11") = Range("O28") Or Range("D11") = Range("O34") Or Range("D11") = Range("O35") Or Range("D11") = Range("O38") Or Range("D11") = Range("O39") Or Range("D11") = Range("O40") Or Range("D11") = Range("O41") Or Range("D11") = Range("O42") Then
        Call Макрос22
    Else
        Call Макрос2
    End If
End Sub
У меня на листе есть ячейки с формулами, которые нужно защитить. Но при защите листа поиск решения (а соответственно и макросики) не срабатывает.
Поэтому я попыталась сделать так, чтобы при запуске макроса защита листа снималась. Т.е. лист не защищен только при работе макроса, а потом снова блок. А именно вначале и конце каждого из трех первых макросов приписала вот что:
Код
'ActiveSheet.Unprotect Password:=""
здесь макрос (один из тех 3-х)
'ActiveSheet.Protect Password:=""
Но ничего не выходит...
Помогите, пожалуйста!

Заранее спасибо!

С уважением,

P.S. Все макросы выше помогли мне составить как раз на этом форуме! Спасибо Вам огромное! :*
Модераторы, не смогла справиться с макросами... В виде кода их и в спойлеры может? У меня не получилось... Заранее извиняюсь :oops:

 
Код функции ИЛИ для макроса
 
Всем добрый день!

Если честно, даже не знаю как правильно сформулировать вопрос... Да и корректное ли название у темы.
Короче у меня есть определённые макросы (2шт), которые замечательно работают. Мне нужно написать макрос условия, в котором будет прописано что если, например, А1="текст" или "работа" или "много", то сработает макрос 1, если условие не соблюдается то другой макрос. С макросом условия вроде разобралась. Не знаю как прописать "или" в макросе. Есть ведь обычная функция эксель: ИЛИ(значение1;значение2;...) с помощью которого мы даем выбор ячейке... Можно ли такое же макросе прописать?

Заранее всем спасибо!

С уважением,
Макрос выдает ошибку 53 (поиск решения)
 
Всем еще раз здравствуйте!

Вопрос по той же теме почти, что и в предыдущей теме.
Имеется макрос поиска решения:
Код
Sub M_Resoudre()
'
' M_Resoudre Macro
'
On Error Resume Next
'ActiveSheet.Unprotect Password:=""
'
    SolverOk SetCell:="$AI$34", MaxMinVal:=3, ValueOf:=0, ByChange:="$AI$24:$AI$33", _
        Engine:=2, EngineDesc:="Simplex LP"
    SolverOk SetCell:="$AI$34", MaxMinVal:=3, ValueOf:=0, ByChange:="$AI$24:$AI$33", _
        Engine:=2, EngineDesc:="Simplex LP"
        
    SolverSolve UserFinish:=True
    On Error Resume Next
'ActiveSheet.Protect Password:=""

End Sub



Суть в том, что макрос не срабатывает. Все макросы включены, надстройки, библиотеки... А если пробую запустить вручную: данные - поиск решения - найти решение - выдает ошибку 53 Can't find SOLVER32.dll
Читала, что этот сис.файл можно до установить. Но эта ошибка выходит не у всех за одним компьютером! Зайду я под своей учеткой с общего диска ошибки нет и все шикарно. Зайдет кто-то другой - уже есть ошибка. Компьютер тот же. Разные учетные записи. Эксель я так поняла не влияет, у меня и в 2016, и в 2013 может и не может выходить эта ошибка... В общем идей не осталось. Причин логичных, каких-либо зависимостей уже не вижу. Помогите, в чем проблема???

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

У меня вопрос о надстройке поиск решения. Возможно ли его многократное использование на одном листе? Т.е. чтобы не одно целевое значение было, а несколько; диапазон изменений не один, а несколько, в соответствии с целевыми значениями... и также с условиями. Везде принцип один, но разные диапазоны. Я конечно понимаю, что можно просто обновлять значения для поиска решений, но это неудобно для работников. Поиск решения срабатывает после нажатия кнопочки, завязанной макросом (solver).
На просторах интернета ничего подобного не встречала... Мне бы знать возможно ли вообще такое?

Заранее спасибо всем за ответы!

С уважением,
Поиск соответствия условиям в нескольких диапазонах разных листов
 
Все здравствуйте!

Есть такая проблемка... Соответствие условию в формуле СУММПРОИЗВ я должна искать по всей книге, т.е. если нет соответствия в первом листе переходить на второй и т.д.
Пробовала через формулу ИЛИ()
Код
=СУММПРОИЗВ(ИЛИ('Лист1'!$J$239:$KR$239;'Лист2'!$I$239:$GI$239;'Лист3'!$I$239:$KT$239;'Лист4'!$I$239:$DR$239;'Лист5'!$I$239:$IS$239)=D5*(ИЛИ('Лист1'!$J$4:$KR$4;'Лист2'!$I$4:$GI$4;'Лист3'!$I$4:$KT$4;'Лист4'!$I$4:$DR$4;'Лист5'!$I$4:$IS$4)>=D2)*(ИЛИ('Лист1'!$J$4:$KR$4;'Лист2'!$I$4:$GI$4;'Лист3'!$I$4:$KT$4;'Лист4'!$I$4:$DR$4;'Лист5'!$I$4:$IS$4)<=F2)*(ИЛИ('Лист1'!$J$82:$KR$82;'Лист2'!$I$82:$GI$82;'Лист3'!$I$82:$KT$82;'Лист4'!$I$82:$DR$82;'Лист5'!$I$82:$IS$82)))

Не получается(((
через ЕСЛИ-не вариант...
Помогите, что я не так делаю?

Заранее спасибо!

С уважением,
Альтернатива формулы ЕСЛИ при бесконечных условиях
 
Доброго времени суток, форумчане!! :)

Тут такое дело... Есть таблица с оглавлением и данными. Оглавления - названия дней в неделе, данные просто числа. При условии что в такой-то день и такой-то день были числа совместить названия дней недели как из таблицы через знак суммы - "+".

Файл, где все более или менее понятно, во вложении...
Прошу помочь мне найти некую альтернативу, которая при всем  еще и работать будет как надо =))
Заранее спасибо!

С уважением,
Изменено: Honey - 19.07.2016 08:03:18
Расчет по соответствиям: СУММПРОИЗВ или заменитель
 
Доброго времени суток, уважаемые!

Такая проблемка: есть таблица с данными. Нужно, чтобы при выполнении нескольких условий формула возвращала расчет по соответствиям (надеюсь в примере более понятно :)) Если условий два - все работает хорошо. Такое уже проделывала. Но теперь я застряла и никак не могу додумать, что делать...
Прошу о помощи...

Заранее спасибо!

С уважением,
Сводная таблица в нескольких диапазонах консолидации (имена полей)
 
Добрый всем день!

Создала сводную таблицу из нескольких листов в  книге. Для этого воспользовалась функцией создания сводных таблиц в  нескольких диапазонах консолидации. Идеально! То, что нужно! НО!! Никак  не получается в фильтре "страница 1" названия "Объект 1, Объект 2 ..."  заменить на реальные имена листов...
В приложении пример.

Очень прошу помочь мне в этом вопросе.

Заранее спасибо!
Защита листа снимается в его копии
 
Всем здравствуйте!
Во-первых, хочу поблагодарить всех на форуме! Много чего узнала, многому научилась. А главное всегда есть возможность продолжать расширение своих знаний. Всем огромное спасибо! Замечательный форум!
А теперь к делу)) В книге есть лист. С него работники должны копировать и работать в уже копиях листа. Чтобы они не запороли оригинал, я хочу поставить защиту листа на любое редактирование и т.д. Но как только с этого листа делается копия, последняя должна быть уже без защиты, готовая для работы. Возможно ли такое и, если да, то как это сделать?
Заранее спасибо за ответы!
Автоперемещение листа в книге в конец
 
Всем доброго времени суток!
У меня есть файл. В нем первый лист - Образец. С него менеджеры копируют и уже в скопированном листе работают. Но проблема в том, что если один менеджер ошибся и сохранил изменения в своем листе, то другие копируя его лист работают в уже неправильных таблицах. А идти в начало книги, чтобы взять с Образца они не могут... Поэтому я пыталась записать макрос: Если копируется один лист, то лист Образец автоматически передвигается в конец, напоминая о себе... Получилось нечто:
Код
Sub Move_sheet()
'
' Move_sheet Ìàêðîñ
    If (ActiveSheet.Buttons.Add(146.25, 660, 171.75, 33).Select ActiveSheet.Copy After:=Sheets(1)Then Sheets("Îáðàçåö"). Value = Sheets("Îáðàçåö").Select Sheets("Îáðàçåö").Move After:=Sheets(4)
End Sub
Прошу помочь разобраться что к чему.
Заранее благодарю!
Макрос для автоматического переименовывания листа по значению из ячейки с формулой
 
У меня есть макрос:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("А1") Then
        If Target.Value <> "" Then
            If Len(Target.Value) < 30 Then
                Target.Parent.Name = Target.Value
            End If
        End If
    End If
End Sub
То есть когда изменяется ячейка А1, название соответствующего листа меняется автоматически. Но у меня в А1 не просто текст или числа. Применяется формула. И пока я не нажму снова на эту ячейке в формулу не нажму ентер, название листа не меняется. Макросу нужно вручную показывать что расчет произошел и теперь его значение другое. Пробовала сама получилось примерно вот это:
Код
Sub Ìàêðîñ1()

    Range("А1").Select
    ActiveCell.FormulaR1C1 = "=TEXT(RC[-10],""ää.ÌÌ.ãããã"")&R[1]C[-1]"
    Range("А2").Select
End Sub
Но совместить их правильно я не смогла. Чего-то не работает да и как совмещать правильно не знаю.
Во вложении есть файл с примером.
Z в макросах не бум бум. Надеюсь на Вашу помощь! Заранее спасибо!

P.S. В примере макрос находится: Исходный текст  -  контекстное меню листа
Изменено: Honey - 07.09.2015 13:36:09
Как развернуть комбинацию чисел, написанных через тире
 
В ячейке числа вводятся через тире : 40-45 (так быстрее и удобнее) Нужно, чтобы в другой это раскрывалось в 40,41,42,43,44,45.
Функция ПОДСТАВИТЬ: два старых текста на один новый.
 
Добрый день!

в функции ПОДСТАВИТЬ(текст;стар.текст;нов.текст;номер вхождения) я хочу два старых заменить на один новый. Пишу с телефона, поэтому с примером сложности сейчас. Но попробую объяснить : введите в ячейку А1 Числа как написано «37/3». В В1 «46-89». Мне нужно чтобы знаки "/" и "-" заменялись на ",". При этом значения а А1 и В1 могут поменяться. .
В моем случае это так: ПОДСТАВИТЬ(А1;"-";ПОВТОР(",";1)) или ПОДСТАВИТЬ(А1;"/";ПОВТОР(",";1)) по отдельности. А нужно, чтобы все сразу в единой формуле. Словно по условию если в ячейке "-" то "-" меняет на ",". Если же "/" то его на один",". Если и то и другое то все меняет на один","...
Макрос для авторазбивки текста по столбцам
 
Суть в том, что если в ячейке данных нет, то "установить" разбивку по столбцам не получается. Нужно, чтобы как только в ячейке появляются данные, они тут же разбивались по столбцам в самые последние двадцать столбцов листа эксель. Помогите написать макрос...

Заранее благодарю!
Изменено: Honey - 08.02.2015 08:12:11
Считываение нескольких данных из одной ячейки по отдельности, считать разные числа через запятую или тире.
 
В одной ячейке разные числа через запятую или тире. Каждое число должно считываться по отдельности.

Например в ячейке А1: 12,13-16,28
В ячйку В1 нужно: (12+13+16+28 ) из А1.
АВ
112,13-16,2869
Заранее благодарю за ответы-помощь!
Изменено: Honey - 06.02.2015 08:23:23
Страницы: 1
Наверх