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

Страницы: 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
но при попытке запустить макрос и сохранить этим кодом так же возникает такая же ошибка.

Сил нет уже с этим маком...... В чем проблема?
Вызов макроса по событию (при изменении ячейки), Не работает вызов макроса по событию
 
Всем привет. Имеется вот такой код:
Код
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 производится запись действий. (Нашел данный код в интернете).
Так вот на виндовсе все работает как надо, на маке он даже не вызывается... Как решить эту проблему ?  
Сохранить файл на рабочий стол, vba
 
Всем доброго времени суток.
Необходимо сохранить файл на рабочий стол на маке.
К сожалению нет возможности сделать это на маке, пишу макрос на винде. И честно говоря понятия не имею какой там путь.
В винде например путь получаю так:
Код
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Как такое сделать на маке?  
Изменено: Lucifer - 10.03.2018 01:26:28
Доработка макроса который вытаскивает данные с таблицы по условиям и формирует другую таблицу, Необходима помощь в доработке макроса (если такое вообще возможно)
 
Уважаемые гуру VBA. Посмотрите, пожалуйста, файлик. А файле пример как должно быть, пример как есть сейчас и само описание.
Это вообще возможно сделать? Сколько разных вариантов проскакивает в голове, но никак не могу написать это кодом.
Выборка из таблицы и запись данных по условиям - 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
Наверх