Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 380 След.
HB
 
Андрей VG, я вообще припозднился, как всегда  :D  Но и от меня поздравления от всей души! Не болеть, не грустнеть и ни в коем случае не терять ясность ума!
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отправка данных по почте - макрос
 
Цитата
Dion4 написал:
Просто значения
и как их надо вложить? Опять же - в виде таблицы вряд ли получится. Можно просто всех их объединить через, скажем, точку-с-запятой:
Код
Dim msgLink As String, sTxt As String, x
For Each x In Worksheets("Sheet1").Range("A1:D2").Value
    If sTxt = "" Then
        sTxt = x
    Else
        sTxt = sTxt & "; " & x
    End If
Next
msgLink = "mailto:" & "mail.com" & "?" & "?subject=" & "Hello" & "&Body=" & sTxt
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отправка данных по почте - макрос
 
Вообще для оформления кодов здесь используется кнопочка <...>, а не кнопка цитаты :)
Цитата
Dion4 написал:
данных из диапазона
и в каком виде? просто значения или реальная таблица? Если второе - то в том виде, какой у Вас без вариантов. Такие вещи делаются отдельными кодами отправки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Показать панель запросов Power Query при открытии книги, VBA (Visible=True)
 
Цитата
sokol92 написал:
скорее всего, и без задержек
на деле, при старте OnTime используется для того, чтобы выждать пока все внутренние процессы Excel прогрузятся. И поэтому да, можно даже не указывать размер задержки - запуск сработает как только Excel сможет нормально отвечать на события.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Взять данные из одного файла, и подставить в другой, формулой
 
Цитата
DJMC написал:
$A$2:$A$3105; - интервал
так здесь разве не диапазон из другой книги должен быть? или что Вам получить-то надо?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Изменение форматов НЕ защищенных ячеек на защищенном листе
 
Цитата
DNC написал:
при установке защиты поставить галку на пункте "Форматирование ячеек",но тогда и на защищенных ячейках появляется возможность изменения форматов
а Вы запретите выделять защищенные и тогда не будет возможности поменять им формат  ;)  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отправка графиков из таблицы на Email
 
Илья Донец, Вы сами понимаете как звучит Ваш вопрос? У Вас что-то там есть. Из этого надо что-то сделать еще и отправить. Да, это можно сделать. И темы такие были и в интернете можно это поискать. Все, больше по такому описанию предлагать нечего, т.к. нет никакой конкретики. Приложите пример данных, покажите желаемый результат, напишите что уже пробовали делать и что не получается. С радостью поможем. А пока можно только троллить...Хотя нет, можно подкинуть ссылочку для примера:
Как отправить письмо из Excel?
А вот здесь вообще можно взять готовый код(тот, который самый первый идет - через SendKeys):
Вставить в письмо Outlook таблицу Excel с форматированием
такой подход и для графиков подойдет.

Ну а создание нужных графиков при этом можно записать макрорекордером - получится готовый код.
Изменено: Дмитрий(The_Prist) Щербаков - 27 окт 2020 08:46:12
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование модуля в "ЭтаКнига"
 
Цитата
Sniaper написал:
хочу скопировать модуль3 на место "ЭтаКнига".
см. выше - дополнил сообщение чуть измененным кодом.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование модуля в "ЭтаКнига"
 
А что и куда Вы копируете? Где та строка, которая показывает копировать код в модуль ЭтаКнига?
Если же Вы хотите из стандартного модуля скопировать код в ЭтаКнига - изучайте код CopyVBComponent(я там вполне подробные комментарии оставил). Там есть блок, отвечающий за копирование строк кодов в модулях листов и книг.
По сути Вам нужен этот блок:
Код
If objVBComp.Type = 100 Then
.....
End If
вот, т.к. функция моя - легкая доработка и все работает:
Код
'---------------------------------------------------------------------------------------
' Procedure : CopyVBComponent
' DateTime  : 02.08.2013 23:10
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : Функция копирует компонент из одной книги в другую.
'             Возвращает True, если копирование прошло удачно
'             False - если компонент не удалось скопировать
'
' wbFromFrom             Книга, компонент из VBA-проекта которой необходимо копировать
'
' wbFromTo               Книга, в VBA-проект которой необходимо копировать компонент
'
' sModuleName            Имя модуля, который необходимо копировать.
'
' sModuleToName          Имя модуля, в который необходимо копировать.
'
' bOverwriteExistModule  Если True или 1, то при наличии в конечной книге
'                        компонента с именем sModuleName - он будет удален,
'                        а вместо него импортирован копируемый.
'                        Если False, то при наличии в конечной книге
'                        компонента с именем sModuleName функция вернет False,
'                        а сам компонент не будет скопирован.
'---------------------------------------------------------------------------------------
Function CopyVBComponent(sModuleName As String, sModuleToName As String, _
    wbFromFrom As Workbook, wbFromTo As Workbook, _
    bOverwriteExistModule As Boolean) As Boolean
 
    Dim objVBProjFrom As Object, objVBProjTo As Object
    Dim objVBComp As Object, objTmpVBComp As Object
    Dim sTmpFolderPath As String, sVBCompName As String, sModuleCode As String
    Dim lSlashPos As Long, lExtPos As Long
 
    'Проверяем корректность указанных параметров
    On Error Resume Next
    Set objVBProjFrom = wbFromFrom.VBProject
    Set objVBProjTo = wbFromTo.VBProject
 
    If objVBProjFrom Is Nothing Then
        CopyVBComponent = False: Exit Function
    End If
    If objVBProjTo Is Nothing Then
        CopyVBComponent = False: Exit Function
    End If
 
    If Trim(sModuleName) = "" Then
        CopyVBComponent = False: Exit Function
    End If
 
    If objVBProjFrom.Protection = 1 Then
        CopyVBComponent = False: Exit Function
    End If
 
    If objVBProjTo.Protection = 1 Then
        CopyVBComponent = False: Exit Function
    End If
 
    Set objVBComp = objVBProjFrom.VBComponents(sModuleName)
    If objVBComp Is Nothing Then
        CopyVBComponent = False: Exit Function
    End If
 
    '====================================================
    'полный путь для экспорта/импорта модуля. К папке должен быть доступ на запись/чтение
    sTmpFolderPath = Environ("Temp") & "\" & sModuleName & ".bas" '"
    If bOverwriteExistModule = True Then
        ' Если bOverwriteExistModule = True
        ' удаляем из временной папки и из конечного проекта
        ' модуль с указанным именем
        If Dir(sTmpFolderPath, 6) <> "" Then
            Err.Clear
            Kill sTmpFolderPath
            If Err.Number <> 0 Then
                CopyVBComponent = False: Exit Function
            End If
        End If
        With objVBProjTo.VBComponents
            .Remove .Item(sModuleToName)
        End With
    Else
        Err.Clear
        Set objVBComp = objVBProjTo.VBComponents(sModuleToName)
        If Err.Number <> 0 Then
            'Err.Number 9 - отсутствие указанного компонента, что нам не мешает.
            'Если ошибка другая - выход из функции
            If Err.Number <> 9 Then
                CopyVBComponent = False: Exit Function
            End If
        End If
    End If
 
    '====================================================
    'Экспорт/Импорт компонента во временную директорию
    objVBProjFrom.VBComponents(sModuleName).Export sTmpFolderPath
    'Получаем имя компонента из экспортированного файла
    lSlashPos = InStrRev(sTmpFolderPath, "\")
    lExtPos = InStrRev(sTmpFolderPath, ".")
    sVBCompName = Mid(sTmpFolderPath, lSlashPos + 1, lExtPos - lSlashPos - 1)
 
    '====================================================
    'копируем
    Set objVBComp = Nothing
'    Set objVBComp = objVBProjTo.VBComponents(sVBCompName)
    Set objVBComp = objVBProjTo.VBComponents(sModuleToName)
    If objVBComp Is Nothing Then
        objVBProjTo.VBComponents.Import sTmpFolderPath
    Else
        'Если компонент - модуль листа или книги -
        'его нельзя удалить. Поэтому удаляем из него весь код
        'и добавляем код из копируемого компонента
        If objVBComp.Type = 100 Then
            'создаем временный компонент
            Set objTmpVBComp = objVBProjTo.VBComponents.Import(sTmpFolderPath)
            'копируем из него код
            With objVBComp.CodeModule
                .DeleteLines 1, .CountOfLines
                sModuleCode = objTmpVBComp.CodeModule.Lines(1, objTmpVBComp.CodeModule.CountOfLines)
                .InsertLines 1, sModuleCode
            End With
            On Error GoTo 0
            'удаляем временный компонент
            objVBProjTo.VBComponents.Remove objTmpVBComp
        End If
    End If
    'удаляем временный файл компонента
    Kill sTmpFolderPath
    CopyVBComponent = True
End Function

ну а вызывать функция можно так:
Код
CopyVBComponent("Module3", ThisWorkbook.CodeName, ThisWorkbook, ActiveWorkbook, True)
Изменено: Дмитрий(The_Prist) Щербаков - 26 окт 2020 17:53:00
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как обратиться к вложениям в письмах на втором аккаунте аутлук через макрос Excel
 
А чем ответ здесь не устроил? Как обратиться к вложениям в письмах на втором аккаунте аутлук через макрос Exce
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Сортировка листов
 
Примитивно, наверное, так можно:
Код
Sub Sorting_Sheets_Ascending()      'Сортировка листов по возрастанию
    Dim i As Integer, j As Integer      'Создание 2 целых переменных i, j
    Dim ls1, ls2, s As String
    For i = 1 To Sheets.Count      'Цикл по листу i (от 1-го до последнего листа)
        For j = i + 1 To Sheets.Count    'Цикл по листу j (от i+1-го листа до последнего листа)
            s = Sheets(i).Name
            If IsNumeric(s) Then
                ls1 = CDbl(s)
            Else
                ls1 = UCase(s)
            End If
            s = Sheets(j).Name
            If IsNumeric(s) Then
                ls2 = CDbl(s)
            Else
                ls2 = UCase(s)
            End If
            If ls1 > ls2 Then      'Проверка условия по имени листа
                Sheets(j).Move Before:=Sheets(i)      'В случае выполнения условия, перенос листа j перед листом i
            End If
        Next j
    Next i
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
формула ЧИСТРАБДНИ но с учетом рабочих суббот или воскресений
 
Цитата
Wild.Godlike написал:
бывает такая формула
хм....не видал. Имеется ввиду тот момент, когда основная масса суббот выходной день, но указом есть перенос на субботу рабочего дня. Стандартно такая суббота рабочим днем считаться не будет.
Я обычно советовал делать так: т.к. рабочих воскресений я на своей памяти не помню, то можно использовать ЧИСТРАБДНИ.МЕЖД. Там есть параметр какие дни считать выходными. Выбираем 11(только воскресенье). А в список праздничных дней добавляем ВСЕ нерабочие субботы.
По другому только писать свою собственную функцию UDF.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Замена всех символов "Перенос строки", Замена всех символов "Перенос строки"
 
Цитата
Артур Идрисов написал:
Например такое вот осталось
По тексту в сообщении форума невозможно определить что там у Вас за символы. Приложите файл - тогда будет о чем говорить. Иначе не вижу смысла гадать сидеть.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Замена всех символов "Перенос строки", Замена всех символов "Перенос строки"
 
PowerQwery - вкладка Преобразование -Замена значений.
Значение для поиска: #(lf)
заменит на: пробел или другой нужный Вам символ(или пустым оставляете)
Код
= Table.ReplaceValue(source,"#(lf)","",Replacer.ReplaceText,{"Описание"})
P.S. в тексте запроса последний шаг(source) от балды, т.к. не знаю какой он у Вас.
Изменено: Дмитрий(The_Prist) Щербаков - 26 окт 2020 11:01:06
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пропадает Моя надстройка и личная книга макросов, VBA
 
Цитата
asesja написал:
как корректно открыть 3-4 документа с локального диска
так же, как из VB6. Только вместо
Код
Set NewExcel = CreateObject("Excel.Application")
пишите просто
Код
Set NewExcel = Application
это чтобы было проще код поменять. Одну строку всего измените внутри кодов VBA, зато все сразу исправите :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пропадает Моя надстройка и личная книга макросов, VBA
 
Цитата
asesja написал:
а также при выгрузке в Excel из FineReader
вот здесь вряд ли. А по первому пункту ответ дан - не создавайте новый экземпляр и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пропадает Моя надстройка и личная книга макросов, VBA
 
Цитата
asesja написал:
CreateObject("Excel.Application")
этот метод умеет подгружать только надстройки DLL или надстройки автоматизации. Надстройки типа xla и xlam, а  также файлы из папок автозагрузки не подгружаются. Документированная особенность.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Изменение размера шрифта строки в таблице по условию
 
Цитата
ГДВ написал:
Попробуйте в коде "Какое-то длинное длинное/длинное (название с пробелами)" этот пример.
ну так и текст надо в нижнем регистре для сравнения писать. Ведь сравниваете тоже с нижним:
LCase(Target)
приведите строку тоже в нижний
Код
If LCase(Target) = LCase("Какое-то длинное длинное/длинное (название с пробелами)") Then
Или замените на регистронезависимое сравнение:
Код
If StrComp(Target.Value, "Какое-то длинное длинное/длинное (название с пробелами)", 1) = 0 Then
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выпадающий список с данными из одной ячейки
 
Вы сейчас реально считаете, что только по тексту какой-то формулы, которая что-то возможно и делает(но явно не список) можно ответить на вопрос? К тому же вопрос к теме-то не относится, что противоречит правилам форума....
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выпадающий список с данными из одной ячейки
 
Цитата
Тимур Капеев написал:
все значения попадают в один пункт,
а почему у меня нет? Вы код-то мой пробовали или наугад сейчас написали? У Вас данные точно
Цитата
Тимур Капеев написал:
разделяются запятой
?
Цитата
Тимур Капеев написал:
Апельсин, Мандарин, Ананас, Банан
Цитата
Тимур Капеев написал:
Что бы появилось 5 пунктов
это как? А 5-ый откуда добавлять? :)
Изменено: Дмитрий(The_Prist) Щербаков - 23 окт 2020 08:20:12
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выпадающий список с данными из одной ячейки
 
Цитата
Тимур Капеев написал:
как сделать выпадающий список средствами VBA
А как пробовали уже? Запись макросом дала бы основной код, а дальше только нужное подставить. Т.к. пример приложить Вы не решились - прикручивайте под свои данные сами:
Код
ActiveCell.Validation.Add xlValidateList, Formula1:=ActiveCell.Value
Но помните: после 255 символов в ячейке выпадающий список превратиться в тыкву :)
Изменено: Дмитрий(The_Prist) Щербаков - 23 окт 2020 08:15:21
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Вставка рисунка размером с ячейку
 
Цитата
exclim написал:
при вставке картинки из буфера обмена
НИКАК. Нет никакого события, которое отвечало бы за вставку из буфера картинки на лист.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Цитата
Светлана Приходько написал:
как все таки соединить две мои формулы
Я же Вам готовую формулу выложил еще в сообщении #10
Приглядитесь - там две формулы: одна на текущую дату, другая на дату приема....
Изменено: Дмитрий(The_Prist) Щербаков - 22 окт 2020 13:46:32
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Цитата
Светлана Приходько написал:
почему нельзя определить пол по такой формуле: =ЕСЛИ(ПРАВСИМВ(D3)="А";"Ж";"М")
потому что есть и иностранные сотрудники вроде Абибова Рафика Гульназ кызы - уже нестыковка. Или Герман Греф, например. У тех даже отчества нет :)
Но у Вас явно учебная задача и в Вашем случае все верно. Просто сразу надо обозначать - учебная или реальная для работы. Для работы эта формула никак не подойдет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Цитата
Светлана Приходько написал:
у меня получилось определить,
И в чем была проблема выложить свои наработки - что пробовали, что уже получилось, что не получается? Вы же осилили и РАЗНДАТ и определение пола - это уже 80% решение задачи. Неужели так сложно было задать вопрос именно по той проблеме, которую не удалось решить(именно совмещение уже сделанного Вами)?
Изменено: Дмитрий(The_Prist) Щербаков - 22 окт 2020 13:38:20
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Функция разделения содержимого ячейки по три знака
 
Цитата
dim284 написал:
Не могли бы Вы эту формулу переделать в функцию?
Без обид, но это далеко не первая Ваша тема про макросы, а Вы упорно не хотите даже элементарно НАЧАТЬ делать самостоятельно простейшую функцию. На VBA она будет почти такая же, как Ваша ПСТР. Только там вместо ПСТР - Mid. Начните хоть что-то и спрашивайте что именно не получается. Иначе так и будете любую элементарную вещь просить сделать за Вас.

Плюс Вы забыли кое-что важное написать: функцию для чего? Где Вы её хранить собрались? В своей надстройке? Я, например, это помню. Но только потому, что участие в той теме принимал. А остальные участники форума не в курсе и сейчас наполучаете ответов "ни к селу".
Изменено: Дмитрий(The_Prist) Щербаков - 22 окт 2020 13:30:26
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Цитата
Светлана Приходько написал:
да или нет ОДНОЙ ФОРМУЛОЙ
для начала надо еще 100% пол определить. А я такой возможности в Вашем файле не вижу.
Цитата
Светлана Приходько написал:
Достиг ли сотрудник пенсионного возраста
тут тоже надо уточнить: достиг на текущий момент или на какой?
если на текущий - не вижу сложностей добавить в мою формулу ЕСЛИ:
Код
=ЕСЛИ(РАЗНДАТ(E3; СЕГОДНЯ(); "y")>=ЕСЛИ(ПРАВБ(D3;1) = "А";55;60);"ДА";"НЕТ")
если на дату приема:
Код
=ЕСЛИ(РАЗНДАТ(E3;H3; "y")>=ЕСЛИ(ПРАВБ(D3;1) = "А";55;60);"ДА";"НЕТ")
Изменено: Дмитрий(The_Prist) Щербаков - 22 окт 2020 13:24:39
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Код
=РАЗНДАТ(ссылка на ячейку с Датой рождения; СЕГОДНЯ(); "y")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Достиг ли сотрудник пенсионного возраста формула,
 
Цитата
Светлана Приходько написал:
возрастом на дату приему на работу
в чем выражен этот возраст? Дата рождения есть в этой таблице?
Я к чему: если есть, например, на дату 21.10.1980 года сотрудник и у него проставлен возраст на дату приема 20 лет. Это не значит, что сегодня его можно отправлять на пенсию. Вдруг у него ДР 20.12.1960? Ему еще нет 60 - только будет через два месяца.
В общих случаях это делается через формулу РАЗНДАТ. Для стажа и вычисления корректного возраста самое оно.Вот здесь есть краткое описание этой функции: Функции даты и времени
Изменено: Дмитрий(The_Prist) Щербаков - 22 окт 2020 12:27:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Вставка номера текущей строки в формулу (VBA)
 
Цитата
MrOldFox написал:
через .Cells(iRow, 4)
а надо через
Код
.Cells(iRow, 4).FormulaR1C1 = 
.Cells(iRow, 4) - здесь по умолчанию используется свойство Value, которое не будет корректно обрабатывать вставку формул.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 380 След.
Наверх