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

Страницы: 1 2 3 След.
Перезапись таблицы ListObject vba
 
Здравствуйте.
Поделитесь способом пожалуйста, как по нормальному перезаписать таблицу?
Проблема возникает, когда новых строк меньше, чем существующих.
Пробовал варианты:
1. Вычислить разницу между новым и старым размером, удалить лишние строки в цикле как
Код
                        Do While .ListRows.Count > rows_count
                            .ListRows(.ListRows.Count).Delete
                            Loop

При больших разницах - это долго.

2.
Код
  .DataBodyRange.Rows.Delete
  .ListRows.Add
  .DataBodyRange.Resize(UBound(rezult), UBound(rezult, 2)).Value = rezult

это быстро, но слетает условное форматирование, в котором ссылка на две строки таблицы.
Вариант с ClearContents оставляет форматирование внизу.
Вариант с удалением всей строки не подходит, так как влияет на другие таблицы на листе.
По этой же причине не подходит.Listrows(i).range.resize(dif_rows).delete
способа  удаления нескольких listrows за раз не нашел.
Динамическая выборка по критерию DAX
 
Здравствуйте.
Начинаю осваивать POWER)
В частности Power Pivot i Power BI.
Не могу сообразить как "на лету" сформировать таблицу.

Пример:
Есть таблица переездов техники, но переезды бывают не каждый день.
Нужен отчет, который показывает последнее местонахождение на конкретную дату.

Пока реализовал через CROSSJOIN справочника техники и календаря и подтягиваю местонахождение,
но такая реализация кажется мне какой то кривой.
Можно ли как то вычислить максимальную дату меньше указанной и вернуть список техники?
Спасибо.
вызываемая процедура с параметром меняет значение переменной в главной
 
Здравствуйте.
Собственно проблема в названии.
При выполнении например такого макроса
Код
Sub test()
    lr = 2
    Call subtest(lr)
    MsgBox (lr)
End Sub

Sub subtest(lr)
    lr = 3
End Sub

в сообщении будет 3, а не 2, как я ожидал.
Это так и должно быть? Я почему то думал, что lr subtest'a и lr test'a - это две разные переменные, пусть и с одинаковыми именами.
Зависимые выпадающие списки "автоматом"
 
Здравствуйте.
Есть в Приемах хорошая статья о зависимых выпадающих списках.
Но все рассмотренные в ней способы хороши, когда есть одна "главная" и одна или несколько зависимых ячеек.
А как быть, если есть, например, столбец с разными значениями (марки авто) и нужно во втором столбце выпадающие списки соответствующие значениям первого столбца (модели авто)?
Создавать для каждой марки свой список - долго и не удобно.
Мое решение возможно не самое правильно и изящное, но позволяет обойтись одним именованным диапазоном для вех выпадающих списков (см. файл) и без макросов.
Если у кого-то будут идеи как упростить формулу - можете поделиться, может Николай дополнит свою статью :)
ошибка копирования картинок в excel 2016
 
Здравствуйте, уважаемые.
столкнулся с проблемой.
копирую объект Shape из одного листа в другой
               
Код
If Not pict Is Nothing Then
                    With pict
                        .Copy
                        Worksheets("корзина").Paste Destination:=Worksheets("корзина").Cells(lr, 2)
                    End With
                End If 

в екселе 2010 работает без ошибок.
в 2016 - на одном листе все четко, на другом - метод paste из класса worksheet завершен неверно.
ошибка возникает при копировании более чем одной картинки в цикле.
первая копируется, на второй ошибка.
при этом если нажать Debug и продолжить, то все работает.
Может кто сталкивался с подобным?
если у кого есть ексель 2016 - могу выслать пример для тестирования.
Спасибо.
Excel на Android с поддержкой сводных таблиц
 
Здравствуйте.
Есть ли у кого подобный опыт?
А то таблицы от гугла совсем не поддерживают сводные, от майкрософта - только показывает, но не обновляет.
Кто либо стыкался с работающими сводными на андроиде?
Парсинг сайтов с авторизацией, а именно сайта на Битрикс
 
Здравствуйте.
использовал раньше для получения html кода функцию GetResponse, найденную в просторах интернета.

Скрытый текст


Работает все красиво, но не на сайтах с авторизацией.
Сделал авторизацию через объект InternetExplorer - появилась другая проблема:
IE.Document.Body.InnerHtml возвращает не весь html код страницы, а только его часть, описывающую, как я понял, вертикальное меню справа.
Это где то десятая часть от всего кода и к тому же - совершенно мне не нужная)

Как вернуть весь код?
Или как можно провести авторизацию без использования InternetExplorer?

Спасибо.
Мистика на форуме)
 
Так выглядит страница Форумы "Планета Excel"(forum1)
А так (forum2) - Вопросы по Microsoft Excel.
Где тема?))

П.С. после создания этой темы появилась и та, что на скриншоте)
Наверное дело в кукис.
Изменено: Dima S - 4 Май 2016 03:46:03
Counter Strike на VBA, или против VBA))
 
Привет всем форумчанам )
Решил только что расслабиться чуток и пострелять в старом добром CS.
Но тут меня ожидал сюрприз ))
Какая тут вообще связь может быть?)
VBA пытается заставить меня работать или CS написан на VB?))

При чем после этого миготения остается окно CS, но если его свернуть, закрыть VBA и попробовать опять развернуть - VBA опять открывается)
Кто такие скрытые пользователи?)
 
Увидел внизу перечень участников на форуме. Среди прочих - двое скрытых. Стало интересно  для чего быть скрытым и кому и как можно им стать?
Вывод специфических символов
 
Доброй ночи форумчане.
Пробую парсить сайт на португальском языке (если конкретно, то olx.pt), а там есть много буков с разными хвостиками, как например São Sebastião, Sé и тп.
Проблема в том, что в результате получаю вместо "хвостатых" букв что то вроде "Mégane " (Mégane).
Кто подскажет как вылечить сию напасть?

Сайт в кодировке утф-8.
Функция для получения исходного кода
Код
Const TIMEOUT& = 3    ' ? ????????

Function GetResponse(ByVal URL$) As String
    On Error Resume Next: Err.Clear
    Static xmlhttp As WinHttpRequest
    If xmlhttp Is Nothing Then Set xmlhttp = New WinHttpRequest
 
    xmlhttp.Open "GET", URL$, True: DoEvents
    xmlhttp.Send: DoEvents
 
    If Not xmlhttp.WaitForResponse(TIMEOUT&) Then
        Debug.Print "timeout", URL: Exit Function
    End If
 
    GetResponse = xmlhttp.ResponseText
End Function
Пробовал разные танцы с кодировкой - не помогает, ибо xmlhttp.ResponseText уже с кракозябрами приходит и обратно их запихнуть не получается.
В редакторе вба эти символы прописать не получается также (хотел тупо через замену).

Спасибо.
Листбокс не отображает столбец
 
Добрый вечер.
Че то не могу понять как и почему это происходит.
Модернизирую файл по учету домашних финансов, привязал его к mysql и че то в этом варианте "психанул" листбокс.
Прикреплять файл, думаю, нет смысла, потому как глюк именно в этом файле, и вам его у себя не воспроизвести.
Прикреплю скриншоты свойств листбокса и значение массива, который должен его заполнить.

Помогите, кто может)

Рисунки удалены: превышение допустимого размера вложения [МОДЕРАТОР]
Копирование данных из сайта на лист
 
Добрый вечер всем.
Есть сайт
Скрытый текст

Хочу из него достать список всех продуктов в ексель.
Как бы список уже достал через веб запрос, но еще хотелось бы чтоб названия были с гиперссылками на страницы в интернете.
То есть так, если выделить таблицу, скопировать и вставить в ексель.
Кто может подсказать обязательно надо парсить исходный код в поиске гиперссылок или есть решения попроще?
Изменено: Dima S - 22 Фев 2015 20:14:17
При загрузке файла на форум открывается пустая книга ексель
 
В теме, собственно, вся суть вопроса и изложена)
не нашел была ли такая тема уже.
в принципе ничего смертельного, но как бы не должно такое происходить.
браузер хром, офис 2010.
Изменено: Dima S - 2 Фев 2015 00:13:10
"Органайзер" для макросов
 
Добрый вечер всем.
Вопрос наверное больше к бывалым)
Поделитесь пожалуйста опытом (или секретом) :) как можно упорядоченно хранить какие то наработки на вба (процедуры, функции)
Просто файлики раскидать по папкам, или прикрутить к базе данных?
Или может есть какая то авторская софтина, облегчающая жизнь?
Чтобы как то по описанию легко находить то что нужно, а не вспоминать в каком файлике нужный макрос.
Спасибо.
лишние колонки в листбоксе
 
доброго вечера всем)
че то не могу понять то ли у меня глюк, то ли в экселя.
в файлике есть форма, на форме лисбокс с количеством столбцов 8.
то есть размерность его я себе представляю должна быть от 0 до 7 столбцов.
при нажатии на кнопку почему то дает записать значение в lb_simia.list(0, 8) и  lb_simia.list(0, 9).
что не так я делаю?
заранее спасибо)
Передам клиента в хорошие руки :)
 
работа по созданию программ для анализа спортивных результатов.
в данное время по теннису.
понимаю что разбираться в чужом коде не сильно охота, но может у кого есть свободное время.
отдаю из-за нехватки времени.
клиент хороший, не жмот :)
большой и маленький мягкий знак
 
Всем привет.
Столкнулся сегодня с такой ситуацией в экселе: Прикольно<>ПРИКОЛЬНО, но Приколно=ПРИКОЛНО.
То есть сравнение всех символов не зависит от регистра, а мягкого знака - зависит.
Почему так?
Все цвета стилей - оттенки серого
 
Всем привет.
Столкнулся с такой ситуацией - в одном файле все цвета стилей таблиц - оттенки серого.
В других файлах все норм.
Если скопировать таблицу из другого файла в этот - она тоже стает в оттенках серого.
Как вернуть цвет?)
Спасибо.
Глючит вба?
 
Всем привет.
Добавил в строку запроса два поля
Код
IIF(Подача='Подача','Прием','Подача') AS [Подача_соп], IIF(Результат='Победа','Поражение','Победа') AS [Результат_соп]
после чего начал глючит ексель.
Например меняю в вба Прием на Подача - на листе по прежнему остется прием.
Хочу пошагово выполнить процедуру - должно выполнятся условие Else - курсор выделяет Else желтым, потом перепрыгивает на End If не выполняя условие.

Как видно на скриншоте - в окне переменных тоже отображаются не переменные процедуры, а какая то непонятная штука...
При этом запрос выполняется с прежней строкой запроса.
После нескольких таких манипуляций ексель вырубылся.
Неужели причина в IIF?
Код
Sql_S = "SELECT Результат, Счет, SUM(IIF(Игрок='" & ig1 & "' AND Подача='Подача', SUMA))  AS [" & ig1 & "], SUM(IIF(Игрок='" & ig2 & "' AND Подача='Прием', SUMA))  AS [" & ig2 & "] FROM [счет$] WHERE Результат <> '' GROUP BY Результат, Счет  "
Else
Sql_S = "SELECT IIF(Подача='Подача','Прием','Подача') AS [Подача_соп], IIF(Результат='Победа','Поражение','Победа') AS [Результат_соп], Подача, Результат, Счет, SUM(IIF(Игрок='" & ig2 & "', SUMA))  AS [" & ig2 & "] FROM [счет$] WHERE Результат <> '' GROUP BY Подача, Результат, Счет  "
End If
Изменено: Dima S - 1 Апр 2014 13:31:16
медленный рекордсет
 
Добрый день всем.
Есть некая MS Sql база данных из которой с помощью вба запросом достаю данные.
При этом нужно слепить содержимое рекордсета с уже существующим массивом.
При этом на передачу данных из рекордсета в массив (циклом или через GetRows) уходит почти 20 секунд.
Как то многовато для массива 6тыс. строк и 9 столбцов.
При этом такой же массив при запросе к книге ексель передается гораздо быстрее.
В чем может быть причина и зависит ли это от строки подключения?

Код
ConnectionString = "Provider=SQLOLEDB.1;Data Source=

Пока использую метод CopyFromRecordset и уже диапазон листа заганяю в массив - гораздо быстрее почему то.
Спасибо.
Изменено: Dima S - 26 Мар 2014 13:58:28
логин и праольсервера в ConnectionString
 
Добрый день всем.
Есть ConnectionString вида

Код
ConnectionString = "Provider=SQLOLEDB.1;Data Source=мой_сервер;Database=моя_база;User Id=айди;Password=пароль"

проблема в том, что такая строка работает только когда файл с макросом находится во внутренней сети предприятия.
То есть надо по RDP зайти на удаленный сервер и запустить там файл.
Проблема в том что на сервере нет много нужных библиотек, а на некоторых серверах вба вообще отключено.
Данная строка при попытке выполнения дает ошибку - доступ на сервер запрещен - оно и понятно - логин  и пароль тут только к базе
Вопрос - как в этой строке подключения (или не в этой) указать логин и пароль для севера?
Возможно ли это вообще?
Спасибо.
квадратные скобки в Like VBA
 
Всем привет.
Есть массив данных вида 0-0 [0-0] 1-1 [*1-1] -( именно строкой в ячейке)
Хочу с помощью оператора LIKE отобрать [0-0]  [*1-1], но и [ и * являются служебными в вба.
как задать маску типа [*] ?
Если написать LIKE "[*]" , то не выдает ни одной записи.
Хотя я думал что должно бы выдать все.
Изменено: Dima S - 17 Янв 2014 19:58:37
Дата последнего изменения файла на скайдрайв
 
Здравствуйте.
Подскажите пожалуйста как узнать дату последнего изменения файла на скайдрайв?
Пробовал
Код
Dim fpath As String 
fname = Sheets("Форма".Range("R1")  
fpath = "https://d.docs.live.net/ ... /Документы/база_" & fname & ".xlsb"
Код
datime = FileDateTime(sFileName)
Ошибка - Invalid procedure call or argument
и
Код
Dim fso As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile(sFileName)
File not Found
Я так понял оно не понимает такой тип адреса?
Изменено: Dima S - 12 Дек 2013 13:50:53
отжать ToggleButton в классе
 
Здравствуйте все.
Подскажите пожалуйста в такой ситуации.
Есть форма, на которой динамически создаются контролы ToggleButton
Код
Private Sub UserForm_Initialize()
'...
For i = LBound(kiarr) To UBound(kiarr)
cbn = cpt & "_"
Set ctrad = frm.Controls.Add("Forms.ToggleButton.1", cbn & i)
  Set aoTglBtn(n).oTglBtn = uf_buget.Controls(cbn & i)
Next
'... 
End Sub

в модуле
Код
Public aoTglBtn(0 To 115) As New clsmTglBtn 
Public coun As Integer 
В модуле сласса
Код
Public WithEvents oTglBtn As MSForms.ToggleButton

Private Sub oTglBtn_Click()
If oTglBtn = True Then coun = coun + 1
If coun = 2 Then 
For each TglBtn in aoTglBtn 
TglBtn = False
Next
coun = 0
End If
End Sub
идея такая чтоб при нажатии второй кнопки все тагглы на форме отжимались.
Данный код почему то не работает - кнопки и дальше в нажатом состоянии.
То есть как правильно реализовать
Код
For each TglBtn in aoTglBtn  
TglBtn = False 
Next

Спасибо.
Событие клика на срезе сводной
 
Добрый день всем.
Подскажите пожалуйста, можно ли перехватить событие клика на срезе сводной в вба?
Хочу под это дело подвязать свой макрос с параметрами выбранных элементов среза.
Как определить выбранные и передать в макрос разобрался, а на какое событие повешать - не пойму.
Worksheet_SelectionChange  реагирует если сначала выбрать элементы, а потом кликнуть на другую ячейку, но это как то коряво.
Помогите :)
Итог, не зависящий от фильтра в сводной
 
Добрый день всем.
Подскажите пожалуйста, возможно ли в сводной как то отобразить общую сумму для отфильтрованного поля, не учитывая критерия фильтра?
То есть если есть 12 яблок, из них 7 спелых, чтобы при фильтровке спелых все равно было 12.
Или это я уже чего то захотел нереальное?
Спасибо.
Очистка фильтров таблиц
 
Доброй ночи, кто еще не спит  :)
Подскажите пожалуйста как на vba очистить все фильтры, если на листе несколько диапазонов, форматированых как таблица.
ShowAllData не канает, ибо он очищает, если курсор на таблице.
Бежать селектом по всех таблицах и ShowAllData?
Или есть какой то нормальный способ?
Спасибо.
замена с подстановкой или маска для RegExp
 
Здравствуйте все.
Хочу написать функцию (ибо формулами не могу реализовать) для замены с использованием подстановочных символов.
Использую заготовку с RegExp но не могу разобраться с критерием.

Код
Public Function zam(Строка As String, ШаблонПоиска As String, ШаблонЗамены As String)
    Dim regex As New RegExp

    With regex
        .Global = True
        .IgnoreCase = True
        .MultiLine = True
        .Pattern = ШаблонПоиска
    End With

    zam = regex.Replace(Строка, ШаблонЗамены)
End Function


Есть строка вида
Код
блаблабла [бла]+блаблабла [бла]
. Мне надо убрать все в квадратных скобках вместе с ними (длина текста разная в скобках). То есть надо оставить блаблабла+блаблабла.
Использую маску
Код
"\s\[.+\]" - убирает все между первой и последней скобкой.
А если через найти и заменить [CODE][*]
то все корректно заменяет.
Помогите составить маску для RegExp или как реализовать такую замену не трехэтажной формулой.
Спасибо.
параметры функции ЯЧЕЙКА на разных локализациях офиса
 
Добрый день.
Может кто подскажет как решить проблему использования формулы ЯЧЕЙКА на разных локализациях офиса?
У меня на работе украинская локализация но формулы английские, соответственно формуля у меня выглядит как =CELL("адреса" ;) . Дома же - русская, и формула выглядит как =ЯЧЕЙКА("адреса" ;)  (дложно быть ("адрес" ;) .
То есть параметр формулы не переводится и формула не работает.
Че то мелкие просчитались или я чего то не знаю?

Здесь вопрос не о том чтобы использовать формулу АДРЕС вместо ЯЧЕЙКА, а о том, как сделать рабочей ту формулу.
Спасибо.
Страницы: 1 2 3 След.
Наверх