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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 344 След.
Как спарсить определённую строчку HTML кода в VBA, Нужно незаметно скопировать с сайта одну цифру в переменную VBA или хотя-бы в буфер обмена.
 
Цитата
Danya-asg написал:
надо именно влезть в уже открытый браузер
Можно залезть при условии, что открываете Вы страницу в Internet Explorer. Там Вам может потребоваться свойство InnerHTML полученной страницы. Но вот чтобы получить эту страницу надо знать как открыта, как называется и т.п.
Код
Sub Get_WEBPage()
    Dim oIE As Object, ShellApp As Object, OW As Object
    Dim sName$, sres$
    Set ShellApp = CreateObject("Shell.Application")
    For Each OW In ShellApp.Windows()
        If (Not OW Is Nothing) Then
            sName = OW.Name
            If sName = "Internet Explorer" Then
                If OW.Locationurl = "https://www.excel-vba.ru/" Then
                    Set oIE = OW
                    Exit For
                End If
            End If
        End If
    Next

    If oIE Is Nothing Then
        MsgBox "Страница не открыта", vbInformation, "www.excel-vba.ru"
    Else
        'получаем текст страницы в формате HTML
        sres = oIE.document.body.innerHTML
    End If
    Set ShellApp = Nothing
End Sub
Если работает в другом браузере(не IE) - ох, нелегкое это дело и неблагодарное. Даже думать не хочу как это делать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
Это особенность любых переменных - очень желательно, чтобы они не совпадали с именем имеющейся в том же модуле/проекте процедуры, формы, другого модуля.
Изменено: Дмитрий(The_Prist) Щербаков - 12 Ноя 2019 16:00:14
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
Цитата
VIZ_VIZ написал:
В вашем файле все работает. Загадка....
ответ на загадку я написал выше - что-то Вы явно делаете не так. И причина явно будет неинтересной, т.к. судя по ошибке это банальная невнимательность :) Проверьте как все скопировалось с сайта(или скопируйте напрямую с моего файла) - с сайта копируется иногда с лишними символами.
И еще можно вбить в поиск по проекту VBA(в проблемной книге) - CommandButton1_Click. Поиск - по всему проекту(Project). Скорее всего где-то остался хвостик в виде объявленной переменной с таким же именем, как процедура. Или модуль с таким же именем, или форма. Вот и проблема...
Если не поможет - создать любой комментарий и скомпилировать проект(Debug -Compile VBA Project). И приучите себя использовать Option Explicit - ошибок будет в разы меньше.
Изменено: Дмитрий(The_Prist) Щербаков - 12 Ноя 2019 15:43:56
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Загрузка данных с web сайта с автоматическим изменением даты в календаре, расположенном на сайте
 
С таким подходом Вам в Гугл и Яндекс, поиск по форуму. Задачи такие уже решались, пробуйте подстроить под свой сайт. Ибо "Как пример сайт ОАО РЖД" в данном случае вообще не катит, т.к. каждый сайт организован по своему со своими нюансами. И то, что подойдет под РЖД может не подойти под Ваш интранет ни разу. К тому же интра скорее всего будет требовать логин и блочить все автозапросы...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Путь к файлу на рабочем столе учетной записи
 
Код
environ("userprofile") & "\Desktop\BBB\Шаблон.xlsx"
Но название темы - вообще ни о чем и к задаче вообще не имеет отношения. В следующий раз ответ будет только если будет нормальное название(а то от модераторов по шапке можно получить).
Тема: путь к файлу на рабочем столе учетной записи
Изменено: Дмитрий(The_Prist) Щербаков - 12 Ноя 2019 20:29:13
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
У меня нет таких ошибок с кодами выше. Посмотрите внимательно - может скопировали до того, как я внес в коды небольшие правки. Ну и файл во вложении - чую я, что что-то не туда копируете.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
см.выше
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Мобильный офис, Использование Excel в смартфоне
 
Цитата
BAM написал:
Есть такой опыт?
опыт есть. Нет такого офиса пока в природе для Android.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
В общем по логике вопрос напрашивается такой код(в стандартный модуль):
Код
Public komment
Sub Добавить_Комментарий111()
    flag = False

    With Sheets("Ассортимент")
        Set selectRange = Application.InputBox("Выберите клиента", "Номер Позиции", Type:=8) '''''''''Речь про этот диалог
        n_1 = Cells(selectRange.Row, 1).Text ' номер менеджера
        n_2 = Cells(selectRange.Row, 2).Text ' номер клиента
    End With
    
    ф_Добавить_Комментарий111.Show

    With Sheets("База клиентов")
        Set bk_act = .Cells.Find("Акты", , xlFormulas, xlWhole) ' ячейка с комментарием
        Set bk_n_1 = .Cells.Find("№1", , xlFormulas, xlWhole) ' ячейка с №1
        Set bk_n_2 = .Cells.Find("№2", , xlFormulas, xlWhole) ' ячейка с №2
        Set bk_find = bk_n_2.EntireColumn.Find(n_2, LookIn:=xlValues)
        If Not bk_find Is Nothing Then
            firstAddress = bk_find.Address
            Do
                If .Cells(bk_find.Row, bk_n_1.Column).Text = n_1 Then
                        flag = True
                    .Cells(bk_find.Row, bk_act.Column).Value = .Cells(bk_find.Row, bk_act.Column).Text + "  " + komment
                    If OptionButton2 = True Then
                        .Cells(bk_find.Row, bk_act.Column).Interior.Color = RGB(255, 0, 0)
                    End If
                    MsgBox "Комментарий добавлен!"
                Else
                    Set bk_find = bk_n_2.EntireColumn.FindNext(bk_find)
                End If
            Loop While Not bk_find Is Nothing And bk_find.Address <> firstAddress And flag = False
        End If
        If flag = False Then
            MsgBox "Клиент не найден в базе клиентов или активен фильтр"
        End If
    End With
End Sub
а этот в модуль формы
Код
Private Sub ф_Добавить_Комментарий111_Initialize()
    CommandButton1_Click
End Sub

Private Sub CommandButton1_Click()
    flag = False
    komment = ф_Добавить_Комментарий111.TextBox1.Text
    Unload Me
End Sub
правда так и не понял какую роль здесь играет ф_Добавить_Комментарий111_Initialize и почему она при запуске ссылается на CommandButton1_Click(и кстати, правильно процедура должна называться UserForm_Initialize). Скорее всего должно было быть что-то вроде:
Код
Private Sub UserForm_Initialize()
'вставляем в поле записанный ранее коммент
    ф_Добавить_Комментарий111.TextBox1.Text = komment
End Sub

Private Sub CommandButton1_Click()
    flag = False
    komment = ф_Добавить_Комментарий111.TextBox1.Text
    Unload Me
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 12 Ноя 2019 14:48:07
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
м-да...в этом файле вообще нет кода с Application.InputBox. Куда он делся? Где его взять? Неужели нельзя выложить адекватный файл и не заставлять додумывать за Вас что откуда надо куда воткнуть? Давайте хоть по шагам тогда:
1. Какое окно должно появиться ДО формы? Выбор диапазона?
2. Какое отношение к этому имеет переменная komment? Она берется изначально из формы: так и должно быть?
3. Какую роль имеет переменная flag? Не вижу, что у неё было значение хоть где-то, отличное от False. А нет, нашел. Вопрос отпал.
Изменено: Дмитрий(The_Prist) Щербаков - 12 Ноя 2019 14:48:41
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка 1004 ячейка или диаграма защищена
 
Цитата
Thewolf911 написал:
а можно ли сдлать чтобы
скорее всего да, только правила форума гласят, что "один вопрос - одна тема". А этот вопрос к текущей теме отношения не имеет. Но подсказку дам: ActiveCell
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
Цитата
VIZ_VIZ написал:
как заставить?
как минимум выложить свой файл, в котором можно лицезреть и форму и коды. А без этого все нужные рекомендации Вам уже даны.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
порядок вывода формы VBA и диалогового окна, нужен совет как поменять порядок вывода окна формы и диалогового окна
 
Сдается мне, что в данном случае никак, т.к. вызов диалога у Вас в модуле формы. Вынесите процедуру вызова Application.InputBox из модуля формы в отдельный модуль и потом переписывайте код с вызовом в нужном порядке.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка 1004 ячейка или диаграма защищена
 
м-да...А зачем With? И второй Sub?
В принципе, чтобы работать с макросами неплохо бы хоть какую-то теорию иметь. Хотя бы самых азов. Например, знать что такое Sub и где правильно его писать и зачем.
Код
 Sub CommandButton1_Click() 
    With ActiveSheet
        .Unprotect 'снятие защиты БЕЗ ПАРОЛЯ
        LastRow = .Cells(Rows.Count, 3).End(xlUp).Row
        With .Rows(LastRow)
            .Copy
            .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End With
            .Rows(LastRow + 1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Protect 'установка защиты БЕЗ ПАРОЛЯ и без каких-либо параметров
    End With
    Application.CutCopyMode = False
End Sub
P.S. Не надо писать мне в личные сообщения, если не хотите в личном порядке передать мне решение Ваших проблем :)  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка 1004 ячейка или диаграма защищена
 
Цитата
Thewolf911 написал:
ни чего не получилось
а что пробовалось? Вот чисто по смыслу и логике, как думаете куда надо записать строку Unprotect(снять защиту) и куда потом Protect(установить защиту)? Если снять надо перед тем как сделать что-то на листе макросом, а установить после того, как все сделали?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка 1004 ячейка или диаграма защищена
 
Как защитить лист от пользователя, но не от макроса?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отказ в редактировании макроса, Изменение структуры макроса
 
Цитата
VideoAlex написал:
Как-нибудь можно избежать постоянного скрытия-отображения книги?
Храните все свои макросы в надстройке и проблем не будет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перезапись Dictionary при инициации формы
 
У меня такое было с поздним связыванием(т.к. редко использую ранее во избежание недоразумений с MISSING). С ранним в тот момент попробовать мысли не возникло, поэтому ничего более сказать не могу. Но и RemoveAll перестал использовать, т.к. и без этого на тот момент не мог понять где косячу и битый час потратил на поиск ошибки в логике кода, а оказалось ошибка в методе RemovaAll :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как выгруженный из 1С журнал проводок в Power Query сделать плоской таблицей, Выгрузка из 1С делается по 3 строки на каждую запись в базе
 
Можете составить вручную таблицу, которую хотите видеть на выходе?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Запрет на переключение на другие приложения до окончания работы макроса в рабочей книге.
 
Цитата
mamalot написал:
на мой взгляд, не важно что делает макрос в книге
ну с таким подходом советовать Вам нечего. Делайте как Вам кажется правильно, а не как советуют.
Но учтите, что для того, чтобы пользователь не мог переключаться между книгами надо блокировать клавиатуру и мышь, что не есть лучший способ. Да и не проще он ни разу, чем замена Ваших Selection на правильные объекты.
Можете просто скрыть приложение пока код выполняется тогда:
Код
Application.Visible = False

P.S. Если пользователь ничего не должен делать - то тем более Selection там не нужен
Изменено: Дмитрий(The_Prist) Щербаков - 8 Ноя 2019 19:46:01
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Запрет на переключение на другие приложения до окончания работы макроса в рабочей книге.
 
Объект Selection относится к выделенной области на активном листе. Следовательно, его надо заменить на конкретный диапазон. А уж в случае с обработкой события Change и вовсе нелогично использовать Selection. Его скорее всего надо заменить на Target, хотя не факт - уж очень много всего у Вас собрано в кучу и когда и что должно выполняться непонятно(мне уж точно).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выделение цветом строк в smart table
 
Разделение строк с разным содержимым "зеброй"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как сделать множественный фильтр, чтобы задавать значения вручную
 
Поищите по словам: Расширенный фильтр. В том числе в Приемах
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как оставлять значение из закрытой книги
 
Цитата
Пытливый написал:
возможно ли заменить СМЕЩ () - ошибку она выдает
не только. СРЗНАЧЕСЛИ тоже не умеет работать с закрытыми книгами.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Подсчет и суммирование закрашенных ячеек
 
Цитата
Serginio написал:
чтоб просто считало, когда ячейка просто закрашена.
вот это
Код
If cell <> 0 And cell.Interior.Color = ColorSample.Interior.Color Then
        Sum = Sum + 1
    End If
заменить на это
Код
If cell.Interior.Color = ColorSample.Interior.Color Then
        Sum = Sum + 1
    End If
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Подсчет и суммирование закрашенных ячеек
 
Цитата
Serginio написал:
И я не могу вспомнить как делал макрос чтоб он работал
ну если этого не можете вспомнить Вы - как это вспомним мы, когда мы даже макроса Вашего не видели? И файла, где это не работает у нас тоже нет.
Изменено: Дмитрий(The_Prist) Щербаков - 7 Ноя 2019 11:53:58
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перезапись Dictionary при инициации формы
 
Есть такой косяк у словарей. Вместо RemoveAll используйте пересоздание словаря:
Код
Set dictTabac = New Dictionary
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA feat OutLook подпись с логотипом
 
Сергей, а код из статьи этот:
Код
'добавляем подпись к письму        'создаем новое письмо
        Set objTmpMail = objOutlookApp.CreateItem(0)
        'отображаем его - у него появится подпись
        objTmpMail.Display
        'теперь к нашему текущему(рабочему) письму просто добавляем текст из временного
        objMail.body = objMail.body & objTmpMail.body
        'удаляем временное письмо
        objTmpMail.Delete
 
        .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
тоже не работает? Он вроде как должен картинку обрабатывать без проблем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка: Недостаточно ресурсов. Выберите меньше данных или закройте другие приложения
 
Удаляйте частично. Или сделайте, как советуют: создайте с нуля новую книгу -Скопируйте из старой таблицы исключительно таблицу с данными(до столбца АХ). Перейдите в новую книгу и сделайте спец.вставку значений. Предварительно закройте все другие приложения. А после вставки закройте проблемную книгу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка: Недостаточно ресурсов. Выберите меньше данных или закройте другие приложения
 
Цитата
Сергий написал:
Я выделил все даные
ну не знаю. Я в Вашем файле выделил все столбцы после последнего заполненного(от АХ до конца) и удалил. Сохранил файл. Файл "похудел" до 5Мб. И вполне даже не тормозит.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 344 След.
Наверх