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

Страницы: 1 2 3 4 5 6 7 8 9 10 След.
обращение к листу с другого листа
 
Цитата
написал:
В следуйщий раз указывайте сразу где у вас лежит макрос
Принято
обращение к листу с другого листа
 
Цитата
написал:
в PERSONAL.XLSB
именно там
обращение к листу с другого листа
 
Цитата
написал:
А так?
Работает. Спасибо.
Опять это мутное ActiveWorkbook и ThisWorkbook.
обращение к листу с другого листа
 
Добрый день.

Опять в тупике.
Вот есть макрос:
Код
Sub высота_строк()

        ' Устанавливаем высоту строк на текущем листе
    With ActiveSheet
        .Rows("174:237").RowHeight = 3
    End With
    
    ' Устанавливаем высоту строк на листе "22"
    Dim ws As Worksheet
    On Error Resume Next ' На случай, если листа "22" не существует
    Set ws = ThisWorkbook.Sheets("22")
    On Error GoTo 0
    
    If Not ws Is Nothing Then
        ws.Rows("19:81").RowHeight = 3
    Else
        MsgBox "Лист с именем '22' не найден!", vbExclamation
    End If
    
    MsgBox "Готово! Высота строк установлена.", vbInformation


  
    Cells(1, 1).Select
    
End Sub
Этот код ставит высоту строк на текущем листе и на листе "22". Но почему то листа с именем 22 не находит! Хотя он есть (см. прилагаемый файл).
Подскажите пожалуйста как установить высоту строк с 19 по 81 на листе 22 равной 3, не выбирая этот лист (22)?
Спасибо.
Форматирование диапазона ячеек
 
Сделал так:
Код
Range("A1:A3000").Select
    Selection.Font.Bold = False
Форматирование диапазона ячеек
 
Добрый день.
Подскажите, пожалуйста, как в диапазоне ячеек убрать выделение жирным шрифтом? Ну т.е. в диапазоне ячеек некоторые рандомно отформатированы, так, что шрифт  жирный и перед началом работы требуется этот жирный шрифт убрать.

Делаю так:
Код
ThisWorkbook.Sheets("гр_тех_обслуж_срс").Range("A1:A3000").Style = "Normal"
Выдает ошибку: Subscript out of range.
Спасибо.
Изменено: john22255 - 07.02.2025 08:20:53
Копирование диапазона с одного листа на другой
 
Цитата
написал:
Спасибо!
Копирование диапазона с одного листа на другой
 
Добрый день.
Подскажите пожалуйста, почему такая конструкция выдает ошибку:
Код
Sub Макрос1

Range(Sheets("декабрь").Cells(10, 4), Sheets("декабрь").Cells(17, 4)).Copy Range(Sheets("январь").Cells(10, 5))
 
End Sub

Пытаюсь скопировать диапазон с одного листа на другой в приложенном файле, но получаю ошибку "Method 'Range' of object '_Global' faled."
Спасибо
Изменено: john22255 - 22.01.2025 11:02:39
узнать код цвета ярлычка страницы
 
Цитата
написал:
Хорошее
Спасибо, интересно
узнать код цвета ярлычка страницы
 
Цитата
написал:
в коде из сообщения №1 сразу ошибки
Цитата
написал:
Для желтого цветаColorIndex = 6
Цитата
написал:
Пишете .ColorIndex, а ищете .Color
Спасибо всем за подсказки. Cмешал в кучу Color и Colorindex. Понятно
узнать код цвета ярлычка страницы
 
Цитата
написал:
?
показывает 65535.

Не срабатывает, как будьто цвет другой у ярлычков.
Самое интересное что поменялся офис - стал 2016. До этого на 2007 все работало. Больше ничего не менялось.
Изменено: john22255 - 06.05.2024 17:00:51
узнать код цвета ярлычка страницы
 
Цитата
написал:
посмотрите
получаю цвет ярлычка таким образом:
Код
MsgBox ActiveSheet.Tab.Color

показывает 65535.
но по условию не срабатывает:
Код
If Sheets(b).Tab.ColorIndex = 65535 Then

не могу понять почему
Цитата
написал:
отделять желтые ярлычки
ну по условию работать только со страницами с желтым  ярлычком. Но почему-то  не срабатывает!
Код
If Sheets(b).Tab.ColorIndex = 65535 Then
...
узнать код цвета ярлычка страницы
 
Цитата
написал:
ActiveSheet
поправил:
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
Sheets(b).Select
If Sheets(b).Tab.ColorIndex <> 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
работает. Спасибо.
А если я меняю условие, то не получается отделять желтые ярлычки:
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
Sheets(b).Select
If Sheets(b).Tab.ColorIndex = 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
т.е. макрос перебирает все странички, но с ярлыком цвета 65535 не находит. Не могу понять почему.
Изменено: john22255 - 06.05.2024 13:20:46
узнать код цвета ярлычка страницы
 
Добрый день.
Подскажите пожалуйста как получить цвет ярлычка активной страницы?
У меня такой код всегда возвращает  цвет 65535 независимо от цвета ярлычка. (Excel 2016).
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
If Sheets(b).Tab.ColorIndex <> 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
файл на котором тестировал прилагаю
Спасибо
настройка макросов vba после переустановки системы
 
Цитата
написал:
не доступен
так точно.
Спасибо
настройка макросов vba после переустановки системы
 
видимо действительно нет принтера pdf
настройка макросов vba после переустановки системы
 
Дальше ошибка
invalid procedure call or argument
в
Код
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:="C:\Users\kols0875\Desktop\водосчётчик\2024\для отправки в СетиНикеля\показания на " & Date & ".pdf", _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
настройка макросов vba после переустановки системы
 
Цитата
написал:
If Dir(ActiveWorkbook.Path & "\" & REPORTS_FOLDER, 16) = "" Then
  MkDir ActiveWorkbook.Path & "\" & REPORTS_FOLDER
End If
заменил на Ваш вариант - норм
настройка макросов vba после переустановки системы
 
Цитата
написал:
папка такая уже существует.
уже существует такая папка
настройка макросов vba после переустановки системы
 
Цитата
написал:
уберите(или закомментируйте)
сразу вылезла ошибка в строке
Код
MkDir ActiveWorkbook.Path & "\" & REPORTS_FOLDER

PAth/file access error
настройка макросов vba после переустановки системы
 
Код
Sub Передача()


'
'

'
  Dim k As Integer, i As Integer, z As Integer, Mass As Variant

    
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Const REPORTS_FOLDER = "для отправки в СетиНикеля"
    ' создаём папку для файла, если её ещё нет
    'On Error Resume Next
    MkDir ActiveWorkbook.Path & "\" & REPORTS_FOLDER
    
    ' выбираем стартовую папку
    ChDrive Left(ActiveWorkbook.Path, 1): ChDir ActiveWorkbook.Path & "\" & REPORTS_FOLDER
 
    ' вывод диалогового окна для запроса имени сохраняемого файла
    
    
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:="C:\Users\kols0875\Desktop\водосчётчик\2024\для отправки в СетиНикеля\показания на " & Date & ".pdf", _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
    

    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
 
    Application.ScreenUpdating = False
    'On Error Resume Next
    Shell ("OUTLOOK")
    Application.Wait (Now + TimeValue("0:00:10"))
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
    
    sTo = "@mail.ru"   
    sSubject = ""   
    sBody = ""   
    sAttachment = "C:\Users\kols0875\Desktop\водосчётчик\2024\для отправки в СетиНикеля\показания на " & Date & ".pdf"  '
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        .CC = "" 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .Body = sBody 'текст сообщения
        '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
        .Display 'Send, если необходимо  отправлять без просмотра
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
    
    End Sub
настройка макросов vba после переустановки системы
 
Цитата
написал:
имя пользователя не менялось
неа
настройка макросов vba после переустановки системы
 
Цитата
написал:
у него обход ошибок
ну есть, да.
А как выложить код на форум, чтобы кирилические символы нормально отображались?
настройка макросов vba после переустановки системы
 
Вроде нет никаких Missing/
Да и наверное ошибку бы выдавал макрос, а так ничего нет , бесшумно завершается, но без результатов. ни pdf не создает, ни outlook не вызывает.
настройка макросов vba после переустановки системы
 
Добрый день.
После установки Win10 много чего в макросах перестало работать .Не знаю за что хвататься.  Поэтому прошу подсказки уважаемых форумчан, почему вот такая конструкция перестала создавать pdf ?
Ничего не происходит никакой ошибки не выдает, просто не появляется pdf:
Код
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:="C:\Users\kols0875\Desktop\показания на " & Date & ".pdf", _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
Также перестал вызываться Outlook вот таким кодом:
Код
Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
 
    Application.ScreenUpdating = False
    On Error Resume Next
    Shell ("OUTLOOK")
    Application.Wait (Now + TimeValue("0:00:10"))
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение

нужно сказать, что установлена win 10, но офис установлен 2007, соответственно версия vba тоже та которая шла с 2007 офисом. Но Outlook установлен 2016.
Заранее спасибо
некорректная работа надстройки Поиск решения в Excel 2007
 
Цитата
написал:
посмотреть книгу
Принято. Спасибо
некорректная работа надстройки Поиск решения в Excel 2007
 
Цитата
написал:
проверил на 2016-м офис
ясно. спасибо
некорректная работа надстройки Поиск решения в Excel 2007
 
Цитата
написал:
Вот одно из возможных решений
Здравствуйте.
Спасибо что откликнулись, но я бы хотел разобраться как работает Поиск решения. Сама по себе задача с фазировкой просто из примера автора.
У меня просто не получается, а функция как мне кажется, полезная, я ее раньше не встречал и хотел бы разобраться.
некорректная работа надстройки Поиск решения в Excel 2007
 
А Вы не могли бы подсказать, что я делаю не так? Почему Поиск решения заполняет диапазон G4:G19 единицами и все на этом стоп.  
Изменено: john22255 - 11.01.2024 16:46:25
некорректная работа надстройки Поиск решения в Excel 2007
 
Цитата
написал:
ЕСЛИОШИБКА
Одевал в ЕСЛИОШИБКУ - результат тот же
Цитата
написал:
исходные данные таковы, что решения просто нет
сейчас попробую посмотреть, понять - интуитивно не вижу.
Спасибо
Страницы: 1 2 3 4 5 6 7 8 9 10 След.
Наверх