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

Страницы: 1
VBA. Возникает ошибка при сохранении файла. Ошибка доступа.
 
Добрый день.

При сохранении файла с помощью макроса возникает ошибка.
Код
Sub save()

un = Environ("USER")
ActiveWorkbook.SaveAs "Macintosh HD:Users:" & un & ":Desktop:Plan:test.txt", FileFormat:=36, CreateBackup:=False
end sub
Возникает ошибка "Ошибка доступа к документу test.txt, допускающему только чтение.

Если записать макрорекордером получется так:
Код
ActiveWorkbook.SaveAs filename:= "/Users/User1/Desktop/Plan/test.txt", FileFormat:=36, CreateBackup:=False
но при попытке запустить макрос и сохранить этим кодом так же возникает такая же ошибка.

Сил нет уже с этим маком...... В чем проблема?
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
DenDen,приветствую.
А можно ли сделать отправку сообещний от своего имени? То есть со своего профиля?
Выборка из таблицы и запись данных по условиям - VBA
 
V,благодарю, Ваш код очень кстати!  
Сохранить файл на рабочий стол, vba
 
Pelena,большое спасибо, разобрался
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Дмитрий Щербаков,Спасибо за совет.
так же всем спасибо за помощь, все сделал, работает!  
Меняем цены, Импортировать цены постащика (Exel) в наш файл (Exel)
 
Написал в личку, обсуждаем.
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Pelena,спасибо )) буду пробовать
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Цитата
Pelena написал:
Вывод неутешительный. Этот макрос не будет работать в Mac Excel
печально(((
Подскажите, пожалуйста, данный макрос не будет работать только из за объекта? Если даже убрать CreateObject (который Вы выделили на скрине), я знаю как его заменить другим способом уже сталкивался с этим.... Нельзя никак сделать  что бы макрос запустился по событию?(
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
vikttur,как быть тогда в этой ситуации? Можно как то обойти?
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Цитата
Юрий М написал: А на  Мас в редакторе в КомбоБоксе модуля листа вообще есть это событие?
не совсем понимаю о чем речь, у меня нет возможности на маке это всё делать и смотреть, я делаю на винде, этот код в модуле книги, и все норм рабтает. Потом это файл открывается в ексель на мак и ничего не работает. Можете подробнее где нужно посмотреть ? Если же а модуле книги, то я проверял там этот код есть. Я даже ставил прерыв что бы увидеть вызывается ли он вообще но ничего не происходит .
то есть нужно попробовать написать это все на самом маке?
Изменено: Lucifer - 28.04.2018 18:21:10
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Всем привет. Имеется вот такой код:
Код
Option Explicit
Public sValue As String
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name = "LOG" Then Exit Sub
    Dim sLastValue As String
    Dim lLastRow As Long

    With Sheets("LOG")
        lLastRow = .Cells.SpecialCells(xlLastCell).Row + 1
        If lLastRow = Rows.Count Then Exit Sub
        Application.ScreenUpdating = False: Application.EnableEvents = False
        .Cells(lLastRow, 1) = CreateObject("wscript.network").UserName
        .Cells(lLastRow, 2) = Target.Address(0, 0)
        .Cells(lLastRow, 3) = Format(Now, "dd.mm.yyyy HH:MM:SS")
        .Cells(lLastRow, 4) = Sh.Name
        .Cells(lLastRow, 5).NumberFormat = "@"
        .Cells(lLastRow, 5) = sValue
        If Target.Count > 1 Then
            Dim rCell As Range, rRng As Range
            On Error Resume Next
            Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
            If Not rRng Is Nothing Then
                For Each rCell In rRng
                    If Not IsError(Target) Then sLastValue = sLastValue & "," & rCell Else sLastValue = sLastValue & "," & "Err"
                Next rCell
                sLastValue = Mid(sLastValue, 2)
            Else
                sLastValue = ""
            End If
        Else
            If Not IsError(Target) Then sLastValue = Target.Value Else sLastValue = "Err"
        End If
        .Cells(lLastRow, 6).NumberFormat = "@"
        .Cells(lLastRow, 6) = sLastValue
    End With
    Application.ScreenUpdating = True: Application.EnableEvents = True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name = "LOG" Then Exit Sub
    If Target.Count > 1 Then
        Dim rCell As Range, rRng As Range
        On Error Resume Next
        Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
        If rRng Is Nothing Then Exit Sub
        For Each rCell In rRng
            If Not IsError(rCell) Then sValue = sValue & "," & rCell Else sValue = sValue & "," & "Err"
        Next rCell
        sValue = Mid(sValue, 2)
    Else
        If Not IsError(Target) Then sValue = Target.Value Else sValue = "Err"
    End If
End Sub

В двух словах, при изменении любой ячейки в книге на лист LOG производится запись действий. (Нашел данный код в интернете).
Так вот на виндовсе все работает как надо, на маке он даже не вызывается... Как решить эту проблему ?  
Поиск в книгах и заполнение данных путём есть\нет
 
Exarch,мой вариант с обычной формулой, поиск по штрих коду: =ЕСЛИ((СУММЕСЛИМН('[Шаблон 2.xlsx]Лист1'!$B:$B;'[Шаблон 2.xlsx]Лист1'!$D:$D;F$3;'[Шаблон 2.xlsx]Лист1'!$C:$C;$E7))>=1;1;"")
Вставляете в файл "Шаблон 1" в ячейку F7 и скопируйте потом на все остальные ячейки
- моей формулы: файл Шаблон 2 так же должен быть открыт...
P.S. штрих коды действительно разные, на шаблоне 1 в шттрихкодах на один 0 больше.
Изменено: Lucifer - 05.04.2018 15:52:20
Звуковой сигнал при выполнении условия в столбце с числовыми данными.
 
Цитата
Alemox написал:
Работать можно в файле во время выполнения макроса. (Lucifer на заметку, если что)
взял на заметку, спасибо. Цикл задержки знаком, но как то никогда не использовал его и соответственно думал что в момент выполнения макроса нельзя что либо делать).
Alex323, если Вам нужно еще что то делать в других файлах тогда необходимо немного дополнить код.
По поводу аудио вопрос остается открытый. Я использую 2016 екскель, у меня по крайней мере звук воспроизводится. Вы пробовали воспроизводить звуки которые прописаны были изначально в коде?  
Звуковой сигнал при выполнении условия в столбце с числовыми данными.
 
Alex323,во время выполнения любого макроса Вы не сможете параллельно работать в ексель, к сожалению...
Звуковой сигнал при выполнении условия в столбце с числовыми данными.
 
Alex323, проверьте, то ли что нужно. Запуск макроса через "Вид" - "Макросы" макрос test. Если нужно можно сделать кнопку.
Постарался максимально объяснить код с помощью комментариев в редакторе. Если есть вопросы или что то не так, готов ответить и исправить.
Правда еще не понятно как должен вести себя код в случае выполнения условия во всех трех рамках...Есть идея разбить задержку 40 сек на 3 для проверки каждой рамки. Жду Ваших комментариев по этому поводу,  
Всех благ
Изменено: Lucifer - 22.03.2018 14:54:11
Сохранить файл на рабочий стол, vba
 
Pelena, понял, спасибо. А есть ли какая то альтернатива кода который работает на винде.
Код
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
На маке он не работает, можно ли как то получить путь на рабочий стол таким способом? Учетки то могут быть разные
Сохранить файл на рабочий стол, vba
 
Что никто не подскажет?
Сохранить файл на рабочий стол, vba
 
Всем доброго времени суток.
Необходимо сохранить файл на рабочий стол на маке.
К сожалению нет возможности сделать это на маке, пишу макрос на винде. И честно говоря понятия не имею какой там путь.
В винде например путь получаю так:
Код
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Как такое сделать на маке?  
Изменено: Lucifer - 10.03.2018 01:26:28
Разница чисел с определением статуса
 
Цитата
Yuppi написал: Гениально )  
я написал это практически на ходу. вот немного лучший вариант
если ячейка пустая то статус не будет отображается и так можете формулу протянуть на весь диапазон даже если есть пустые строки слева.
Разница чисел с определением статуса
 
не знаю правильно ли понял Вашу мысль
Доработка макроса который вытаскивает данные с таблицы по условиям и формирует другую таблицу, Необходима помощь в доработке макроса (если такое вообще возможно)
 
Цитата
Ігор Гончаренко написал: были бы описаны правила вычислений, было бы решение под эти правила...
дата окончания командировки есть она во втором столбце "Возврат с командировки" - эта дата вносится тогда когда сотрудник вернулся, изначально не известно и нельзя заполнить 2 ячейки "поехал" - "вернулся" одновременно. Они заполняются следующей записью в таблице.
Например запись 1. поехал дата                 дата возврата пустая
                             2. дата поехал пустая     дата возврата
правила вроде были описаны на рисунке который в файле, там 5 линий ( то есть 5 вариантов ) когда сотрудник попадает в диапазон дат а когда нет, но ладно).
Спасибо Вам за заготовку!)
Изменено: Lucifer - 13.02.2018 16:50:40
Доработка макроса который вытаскивает данные с таблицы по условиям и формирует другую таблицу, Необходима помощь в доработке макроса (если такое вообще возможно)
 
Ігор Гончаренко,
Цитата
Lucifer написал:
Это лишь на тех которые не возвращаясь с командировки сменили город и об этом не было записи.
детально протестировал, так на всех записях. Если сотрудник поехал в ровно 01.01.2018 и вернулся домой 05.01.2018 а мы выберем анализируемый диапазон дат с 06.01.2018 то макрос все равно покажет почему то этого сотрудника(  хотя он уже давно дома и 06.01.2018 никуда не ездил.
Вот как раз в этом и был вопрос(. Пока не разбирался в Вашем коде, а какие условия Вы задавали?  
Доработка макроса который вытаскивает данные с таблицы по условиям и формирует другую таблицу, Необходима помощь в доработке макроса (если такое вообще возможно)
 
Ігор Гончаренко,огромное Вам спасибо за оперативный ответ. Я та понял Вы используете словарь.
Я так понял это Вы полностью реализовали весь функионал этим кодом.
Протестировал на первый взгляд вроде все так как нужно но есть небольшой изъян который и портит всю картину(.
Если выбрать дату с 03.12.2017 по 03.12.2017 то мы все равно видим иванова ивана который был отправлен в коннико с 01.10.2017 а потом переместился в ровно от куда поехал домой  01.12.2017. То есть с 03 он уже не в командировке и явно не в коннико, но макрос его показывает(((
Тоже самое с иванов петр показывает что он в киеве, хотя он приехал в киев 01.10.2017 и перемещался в берлин (это всего пример) и от туда вернулся домой 15.11.2017.
В целом еще Вам огромное спасибо, остальные вроде показывает правильно. Это лишь на тех которые не возвращаясь с командировки сменили город и об этом не было записи.
Возможно пересмотрим сам процесс внесения исходных данных.  
Доработка макроса который вытаскивает данные с таблицы по условиям и формирует другую таблицу, Необходима помощь в доработке макроса (если такое вообще возможно)
 
Уважаемые гуру VBA. Посмотрите, пожалуйста, файлик. А файле пример как должно быть, пример как есть сейчас и само описание.
Это вообще возможно сделать? Сколько разных вариантов проскакивает в голове, но никак не могу написать это кодом.
Выборка из таблицы и запись данных по условиям - VBA
 
По поводу макроса, кажется нашел решение, позже выложу что бы могли другие использовать!  
Выборка из таблицы и запись данных по условиям - VBA
 
Цитата
V написал: на втором листе как должно получиться?
да
Цитата
a.i.mershik написал: ну формулами кстати быстро можно)
формулами можно, но нужно именно макрос который потом будет привязан к кнопке для формирования этого списка. Потом таблица будет очищаться,
формул не должно быть в файле вообще.
Я формулами делал не удобно....(((
Цитата
a.i.mershik написал: ну полагаю что за определенный период с такой даты по такую которые есть на 1 листе....
да, все правильно Вы поняли :)
Цитата
Андрей VG написал: Доброе время суток.Версия на Power Query.Успехов.
спасибо большое Ваша версия то что нужно, а реально ли это перевести как то на макрос? что бы не было запросов
Выборка из таблицы и запись данных по условиям - VBA
 
Всем привет, ситуация такова:
Есть таблица на листе1 с датой, именем и городом. Есть вторая "таблица" на листе 2 в которой столбцы подписанные как все существующие города в таблице на листе 1.
На листе2 так же есть поля для ввода начальной даты и конечной даты. (сейчас там указан весь диапазон).

Вопрос как проще всего макросом перекинуть данные с столбца Name в соответствующий столбец города на листе 2 учитываю диапазон дат.
Например выбрав только 01.01.2018 по 01.02.2018 что бы закинулись только данные которые есть в этот период на листе1.

P.S. знаю как сделать формулой, но формула не пойдет, файл делается полностью без формул. Да и формула массива при большом объеме данных повесит файл...

Думал изначально сделать через словарь, (начал даже писать код) но потом вспомнил что в словаре не может быть одинаковых ключей.
Предполагаю что нужно как то через массивы, но, к сожалению, пока еще не освоил работу с массивами на должном уровне.

Пример во вложении (сделал как должно быть), заранее спасибо за подсказку.
Думаю если в тексте что то не понятно в файле все поймете.

P.S. писал уже на нескольких форумах, за 3 дня ни одного ответа. Может хоть тут есть добрые люди АСЫ vba.
Изменено: Lucifer - 25.05.2018 18:30:22
Страницы: 1
Наверх