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

Страницы: 1 2 3 4 5 6 След.
Некорректный вывод на печать изображения
 
bigorq, У Вас исходник открылся вытянутый, а на печати стало ближе к окружности. Искажение есть.
Некорректный вывод на печать изображения
 
При попытке распечатать растровое изображение действительно плющит по вертикали. Это видно сразу на предпросмотре печати. Excel 2010.
Если конечный результат - это распечатка или pdf, то в электронном виде печать можно вытянуть по вертикали.
А если хочется перфекционизма, то перед печатью макросом подменять круглую печать на вытянутую, затем обратно.
Изменено: Михаил - 08.02.2025 14:22:46
Как заставить элемент управления формы (переключатель) работать на защищенном листе?
 
gling, Действительно, защита ячейки мешает, хотя должно бы работать UserInterfaceOnly:=True.
Спасибо.
Как заставить элемент управления формы (переключатель) работать на защищенном листе?
 
Листы защищены таким макросом:

Код
Sub Protection()
    Dim ws As Worksheet
    ActiveWorkbook.Protect Password:=123, Structure:=True
    For Each ws In Worksheets
        ws.Protect Password:=123, UserInterfaceOnly:=True: ws.EnableSelection = xlNoRestrictions
    Next
End Sub


В своствах переключателей снята отметка "Защищаемый объект".
При защите листа выбор переключателя не работает.
Возможно ли макросом сохранить новую книгу на исходную?
 
AlexDen, Чтобы удалить скрипты (как основная задача этого действа, с листами все просто) надо дать доступ к объектной модели макросов, что у других юзеров выключено. Перенести скрипты из  модулей на удаляемый лист, визуально получается каша а  также все  перестает работать.
Hugo, Я вроде ушлый, но с ходу  не представляю, как восстановить файл, перезаписанный поверх с тем же именем :).
Возможно ли макросом сохранить новую книгу на исходную?
 
Собственно, задача - затереть исходный файл.    

Код
Sub replace()
    fname = ThisWorkbook.Path + "\" + ThisWorkbook.Name
   
        ' как-то разорвать связь исходника с диском, чтоб иметь возможность записать поверх.
     
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:=fname, FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveWindow.Close
End Sub
Как отправить email через CDO?
 
Добрый день.
Пытаюсь отправить почу этим макросом, но получаю ошибку "Отказ сервера SMTP". Какая может быть причина?

Код
Sub sendMail()
    Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
    Dim oCDOCnf As Object, oCDOMsg As Object
    Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
    Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
    On Error Resume Next
    'sFrom – как правило совпадает с sUsername
    SMTPserver = "smtp-relay.gmail.com"    ' SMTPServer
    sUsername = "email_01@gmail.com"    ' Учетная запись на сервере
    sPass = "*****"    ' Пароль к почтовому аккаунту
 
    If Len(SMTPserver) = 0 Then MsgBox "Не указан SMTP сервер", vbInformation, "www.Excel-VBA.ru": Exit Sub
    If Len(sUsername) = 0 Then MsgBox "Не указана учетная запись", vbInformation, "www.Excel-VBA.ru": Exit Sub
    If Len(sPass) = 0 Then MsgBox "Не указан пароль", vbInformation, "www.Excel-VBA.ru": Exit Sub
 
    sTo = "email_02@gmail.com"    'Кому
    sFrom = "email_01@gmail.com"    'От кого
    sSubject = "Автоотправка"    'Тема письма
    sBody = "Проверка отправки"    'Текст письма
    sAttachment = "C:/Temp/Книга1.xls"    'Вложение(полный путь к файлу)
 
    'Назначаем конфигурацию CDO
    Set oCDOCnf = CreateObject("CDO.Configuration")
    With oCDOCnf.Fields
        .Item(CDO_Cnf & "sendusing") = 2
        .Item(CDO_Cnf & "smtpauthenticate") = 1
        .Item(CDO_Cnf & "smtpserver") = SMTPserver
        'если необходимо указать SSL
        .Item(CDO_Cnf & "smtpserverport") = 465 'для Gmail 465
        .Item(CDO_Cnf & "smtpusessl") = True
        '=====================================
        .Item(CDO_Cnf & "sendusername") = sUsername
        .Item(CDO_Cnf & "sendpassword") = sPass
        .Update
    End With
    'Создаем сообщение
    Set oCDOMsg = CreateObject("CDO.Message")
    With oCDOMsg
        Set .Configuration = oCDOCnf
        .BodyPart.Charset = "koi8-r"
        .From = sFrom
        .To = sTo
        .Subject = sSubject
        .TextBody = sBody
        'Проверка наличия файла по указанному пути
        If Len(sAttachment) > 0 Then
            If Dir(sAttachment, 16) <> "" Then
                .AddAttachment sAttachment
            End If
        End If
        .Send
    End With
 
    Select Case Err.Number
    Case -2147220973: sMsg = "Нет доступа к Интернет"
    Case -2147220975: sMsg = "Отказ сервера SMTP"
    Case 0: sMsg = "Письмо отправлено"
    Case Else: sMsg = "Ошибка номер: " & Err.Number & vbNewLine & "Описание ошибки: " & Err.Description
    End Select
    MsgBox sMsg, vbInformation, "www.Excel-VBA.ru"
    Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
End Sub
Как внести изменения макросом в файл с аттрибутом "Только чтение"
 
New,
Спасибо, работает.
Как внести изменения макросом в файл с аттрибутом "Только чтение"
 
Добрый день.
Есть файл с аттрибутом "Только чтение", хочу внести в него изменения и сохранить.
Макрос снимает аттрибут "Только чтение" (этот видно в Свойствах по правому клику на файле), но изменения не сохраняет и при ручном сохранении говорит, что "Файл только для чтения и т.д."
Как "разблокировать" открытый файл и сохранить его макросом?

Код
Sub checkAccess()
    
    ThisWorkbook.RemovePersonalInformation = 0
    
    Dim XMLHTTP As Object
    Dim URL$
    
    URL = "https://somelink"
    
    Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
    XMLHTTP.Open "GET", URL, False
    On Error Resume Next
    XMLHTTP.send
        If XMLHTTP.Status = 200 Then
            MsgBox "Ссылка доступна."
        Else
            MsgBox XMLHTTP.Status & " - Ссылка НЕ доступна."
            SetAttr ThisWorkbook.Path + "\" + ThisWorkbook.Name, vbReadOnly = False
            Cells(1, 1) = Time
            
            ThisWorkbook.Save ' Почему не сохраняет?
        End If
    Set XMLHTTP = Nothing
End Sub
Есть толковый форум по Google Sheets и AppScript?
 
Интересует хороший форум (аналогичный этому), где можно позадавать вопросы по макросам гугл таблиц. Шлаковерфлоу не предлагать, там ответа не дождешься.
И чтоб два раза не вставать, может здесь кто знает, как решить проблему.
У меня есть скрипт, который вставляет в гугл таблицу строку с несколькими значениями, затем суммирует эти строки по нескольким критериям.
Вставка значений на лист занимает 3-4 секунды, но скрипт суммирования уже начинает работать и суммирует пустые ячейки.

Код
function add_1() {
  var ss = SpreadsheetApp.getActive();

    ss.getActiveSheet().insertRowsBefore(9, 1);

    ss.getRange('A9').setValue(new Date());
    ss.getRange('B9').setValue(ss.getRange('B3').getValue())
    ss.getRange('C9').setValue(ss.getRange('C3').getValue())
    ss.getRange('D9').setValue(ss.getRange('D3').getValue())
    ss.getRange('E9').setValue(ss.getRange('E3').getValue())
    
    ss.getRange('D3').clearContent();

    summary()

};


Как дождаться обновления листа и затем продолжить выполнение?
Изменено: Михаил - 24.04.2024 23:37:30
Шифрование данных на листе, Есть простой скрипт, или это авторские/платные вещи?
 
По мотивам  данной темы хотел найти простой скрипт шифровки/дешифровки данных, но не удалось нагуглить ничего полезного.
Есть вариант найти что-то простое для среднего пользователя?
Сохранить документ в растровый PDF
 
Кажется, есть вариант сохранить диапазон в картинку, типа
Код
Range("A1:F20").CopyPicture

и потом выводить ее на печать в pdf
Нажатие ЛКМ по координатам
 
Почему бы не активировать книгу, сделать клик,  потом активировать исходную книгу?
Перед этим сделать Application.ScreenUpdating = False, чтоб не было мигания экрана.
Можно ли объединенные ячейки выровнять по высоте текста (макросом)?
 
irabel, Спасибо, хорошая  вещь,  но  мне надстройка не подходит.
Можно ли объединенные ячейки выровнять по высоте текста (макросом)?
 
В одной ячейке это решается  переносом текста.
Можно ли как-то выровнять объединенную ячейку?
Отправка сообщений из VBA Excel в Вайбер через бота, Отправка сообщений из VBA Excel в Вайбер через бота
 
У кого получилось?  Расскажите технологию.
Как  добавить чат бот в группу и отправлять сообщения?
Можно ли так сделать, по аналогии  с Телеграмм?
Как макросом разделить выделенный диапазон (Selection) на ячейки?
 
Msi2102, Спасибо,  работает.
Как макросом разделить выделенный диапазон (Selection) на ячейки?
 
Можно ли разделить выбранный диапазон на отдельные ячейки, для извлечения данных в разные  переменные?
Диапазон может  быть выбран на соседних ячейках (А1, А2) или через  Ctrl (A1, B3).

В результате хочу иметь переменные:
х = значение из А1
y = значение из А2 (или В3 по  второму варианту)
Изменено: Михаил - 16.11.2023 13:52:42
Как открыть книгу "только для чтения" по условию?
 
МатросНаЗебре,
Спасибо, работает.
А можно  как-то подавить сообщение, что файл занят другим пользователем и  открывается только  для  чтения?

Код
Private Sub Workbook_Open()
    Application.DisplayAlerts = False ' не подавляет системное сообщение с предложением открыть для чтения.
     If Environ("USERNAME") <> "admin" Then
        MsgBox "Файл открыт для чтения," & Chr(10) & "ИЗМЕНЕНИЯ НЕ СОХРАНЯТСЯ!"
        If Not ThisWorkbook.ReadOnly Then ThisWorkbook.ChangeFileAccess xlReadOnly
     End If
     Application.DisplayAlerts = True
End Sub
Изменено: Михаил - 21.08.2023 14:10:45
Как открыть книгу "только для чтения" по условию?
 
Есть один  пользователь с  правом редактирования книги, остальным нужен только просмотр. Иногда этот файл открывают одновременно, хочу сделать,  чтоб не мешали друг  другу, не сохраняли копии, не видели  лишних предлложений сохранить файл и т.д.
Можно ли  открыть книгу в режиме "только для чтения" по условию?
Что-то  типа:

Код
Private Sub Workbook_Open()
     If  Environ("USERNAME") <> "admin" Then (открыть только для чтения)
End Sub
Как сделать массив доступный в другой процедуре (или передать его значение)?
 
Добрый день.
Как в таком коде сделать массив, видимый в процедуре "bbb" или передать туда его значения?

Код
Sub main()
    Call aaa
    Call bbb
End Sub

Sub aaa()
    ReDim arr(1 To 3, 1 To 3)
End Sub

Sub bbb()
    x = arr(1, 1)
End Sub
Загрузка данных из веб, но не совсем.
 
Вопрос простой, но не совсем.
Если данные можно идентифицировать в тексте страницы, можно загрузить текст страницы в строковую переменную и выловить нужные данные по ключевым словам функцией InStr.
Пропадает пароль при открытии файла Excel, Пароль на файл Excel
 
New, вы расширяете список требований на ходу :) Универсальный вариант - это всегда сложно.
Пропадает пароль при открытии файла Excel, Пароль на файл Excel
 
New, Для этого можно создать чистый лист с надписью "Включите макросы". Перед сохранением книги отобразить этот лист, рабочие листы скрыть и в таком виде сохранить. А на открытие книги добавить макрос отображения рабочих листов.
Изменено: Михаил - 22.05.2023 10:50:41
Пропадает пароль при открытии файла Excel, Пароль на файл Excel
 
На открытие книги ставим:

Код
Private Sub Workbook_Open()
    Call protection
End Sub


В модуль:

Код
Public Const pass As Long = 123

Sub protection()
    Dim ws As Worksheet
    ActiveWorkbook.Protect Password:=pass, structure:=True
    For Each ws In Worksheets
        ws.Protect Password:=pass, UserInterfaceOnly:=True: ws.EnableSelection = xlNoRestrictions
    Next
End Sub


Ну и код VBA защитить паролем от просмотра. Как защита от дурака - сойдет.
Почему сортировка создает ошибку в файле?
 
Marat Ta, Действительно, так работает. Или случайно удалил, или мне она показалась не обязательной.
Почему сортировка создает ошибку в файле?
 
Marat Ta, Если интересно - костыль найден.
Создаю новый временный лист, вставляю данные, сортирую, копирую на рабочий лист.
Временный лист удаляю.
Почему сортировка создает ошибку в файле?
 
Marat Ta, Рабочий файл не секретный, но выкладывать смысла нет. В нем есть умные таблицы и в 2003 версии выходит такая ошибка (на картинке). И с названием темы порядок, файл-пример создан с нуля и макрос сортировки вызывает в нем ошибку, это не сломанная книга, а "штатная фича экселя".
Цитата
Marat Ta написал:
Если речь о файле примере с 1 сообщения, то у меня все работает без ошибок после пересохранения с формата 2003.Даже специально 2010 версию установил для проверки....)
После выполнения сортировки в 2010 ошибка возобновляется. Похоже, это так легко не обойти.
Изменено: Михаил - 21.05.2023 20:42:56
Почему сортировка создает ошибку в файле?
 
Marat Ta, Проверил уже, при возврате в версию 2010 опять ошибка. А в версии 2003 остаться не получится, не работают ссылки на умные таблицы.
Возможно, кто-то подскажет решение, кроме изобретения велосипеда самостоятельного написания сортировки.
Почему сортировка создает ошибку в файле?
 
Marat Ta, Спасибо, в формате 2003 все работает, правда показывает предупреждение.  В xlsm стабильно ошибка. Вручную ее никто не создает :)
Страницы: 1 2 3 4 5 6 След.
Наверх