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

Страницы: 1 2 След.
Именные списки через VBA из Умной таблицы
 
о, огромное спасибо!!!
Именные списки через VBA из Умной таблицы
 
JayBhagavan, вы имеете ввиду убрать изначально из название данные символы?
К сожалению это не возможно, тк это названия компаний и тут уже не мне решать как называть фирму :)
Именные списки через VBA из Умной таблицы
 
Всем привет.

Помогите решить проблемку.
Мне необходимо создавать именные списки на основании умной таблицы, для того чтобы дальше эти списки использовать.

Все работает отлично, если названия заголовков простые, но как только появляются символы -, /, !,( и тд то начинаются проблемы.
Через replace я это заменяю, но как может есть более простой способ получить какое имя будет считаться разрешенным для именного списка?

не очень мне нравиться формулы подобные
Код
Replace(Replace(Replace(Replace(Replace(Replace(Cells(1, 1).Value, " ", "_"), "/", "_"), "(", ""), ")", ""), "-", "_"), "!", "")
Сохранение копии через макрос
 
Цитата
ну а мой вариант как? не смотрели?
Честно говоря попробовал, но как-то не получилось сразу и не стал дальше разбираться.
Не могу понять по чему-то при указании типа файла он или не сохраняется или Excel просто  вылетает с критом(проверено на 3х машинах)
И ещё при подключении, ещё один Excel не выгружается :(

Код
Sub test1()
x = Application.UserName
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    On Error Resume Next
    ActiveWorkbook.Save
    f1 = "C:\test\report\" & ActiveWorkbook.Name & " test.xlsx"
    ActiveWorkbook.SaveCopyAs f1
        With Workbooks.Open(f1)
            Set ex = CreateObject("excel.application")
                ex.Workbooks.Open f1
                .SaveAs f1.xlsx, FileFormat:=51
                .Close
        End With
    On Error GoTo 0
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub
 
Сохранение копии через макрос
 
Dima S, как вариант стоит попробовать, спасибо
просто я не уверен что и при простом открытии без макросов не будет зависать файл при открытии при удаленном подключении к сети из-за плохого инета.
а при зависании блокируется файл для изменений и приходится IT просить кикать народ  :)
Сохранение копии через макрос
 
Да, такой вариант конечно же будет рабочий.
но проблема в том, что изначально то мы работаем в другом файле, закрытом для редактирования, а при сохранении через SaveAs мы плавно переезжаем в файл с общим доступом.
И после первого сохранения как результат теряем все макросы.

Есть вариант переносить все листы в новую книгу и сохранять уже новую книгу со всеми данными, но хотелось какой-то простоты, чтобы создание было не заметно для пользователя, а в случае если мы копируем большой объем данных, то это по любому приводит в задержкам.
Сохранение копии через макрос
 
Через SaveAs сохраняется основной файл и он после этого переименовывается.
А в данном случае вообще вылетает excel, тк исполняемый файл превращается в файл без макросов :(
Сохранение копии через макрос
 
Простое изменение не помогает, после этого файл просто не открывается.
Сохранение копии через макрос
 
Всем привет.

Столкнулся с небольшой проблемой.
Есть файл доступ к которому ограничен, но для общего пользования данный файл пересохраняется макросом при сохранении основного.
Но из-за того что файл имеет макросы которые запускаются и при открытии и при определенных событиях, а часть коллег работает удаленно и с фиговым интернетом, то в момент открытия, у них подвисает все.


Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    On Error Resume Next
    ActiveWorkbook.Save
    ActiveWorkbook.SaveCopyAs "X:\" & ActiveWorkbook.Name & " для Всех.xlsm"
    On Error GoTo 0
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Возможно ли как-то сохранить файл в формате без макросов? SaveCopyAs не имеет вроде бы никаких опций кроме как указания пути и имени для сохранения.
числа в массиве при выводе отображаются в двойных кавычках
 
я попробовал без трим, но как-то не пошло  :D  
то есть я правильно понимаю что мне надо просто добавить трим в сравнение ?

проверил, все работает прекрасно без добавления кавычек.
большое спасибо, чтобы я без вас делал  :)
Изменено: ZombiMan - 29.10.2013 12:21:21
числа в массиве при выводе отображаются в двойных кавычках
 
Нет конечно, просто без файла из которого тянутся данные он не очень информативен.
Если при сравнении не добавить что-то, получается что происходит сравнение 8451515 с "8451515"
Скрытый текст
числа в массиве при выводе отображаются в двойных кавычках
 
Добавил как "временное" решение кавычки, теперь данные одинакового формата :)
числа в массиве при выводе отображаются в двойных кавычках
 
Юрий, так в том то и дело, что при выгрузке из нету.
Они присутствуют только при поиске значения.
То есть имеем заказ 8451515 который присутствует в рабочем файле, так же он присутствует в файле который подтягивается и на основании которого создается массив. В обоих случаях значения числовые.
А когда я пытаюсь найти данный заказ в массиве, он не находится тк из массива результат выдается как "8451515".
числа в массиве при выводе отображаются в двойных кавычках
 
Всем привет.

Большое спасибо за помощь в прошлой теме http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=52099&MID=432688&result#message432688
но все же остался один вопрос.
числа в массиве при выводе отображаются в двойных кавычках.
через replace chr(34) они не убираются, и при выгрузке они просто отсутствуют, это по всей видимости так только хранятся.
Можно как-нибудь их при поиске убрать, ибо не хочется приписывать их к тем данным которые без кавычек.
Создавать массив или еще есть способ?
 
Большое спасибо, получилось подрубить.
Пока опробовал на маленьком массиве, всего 5т время выполнения около 2с, только почему-то сюда не включается время на подключение файла, ну субъективно это не 2с, а около 10, но терпимо.

Но у меня возникла проблема при сравнении рабочего файла с созданным массовом.
Решено было в итоге сравнивать по номеру заказа, а он естественно числовой.
Все бы хорошо, но по какой-то причине в массиве номер заказа указан в двойных кавычках и при сравнении естественно не находится. Пробовал обрезать через replace(target, Chr(34),""), не обрезается :(

100% есть какой-нибудь простой способ преобразовать данные в массиве и убрать эти кавычки.
Создавать массив или еще есть способ?
 
Цитата
оказывается что-то понял не так, или пример не такой, или объяснения...
Меня интересовала только статистика и суммирование по клиенту, заказ добавлять не надо было :)

Ещё я не очень понял по поводу словаря, я думал он может содержать только 1 ключевое поле и 1 поле, а тут выходит можно много добавлять? :)

Я так понимаю поля указываются через запятую и их может быть много, да ?
Цитата
Dim a(), t$, tt&, x&, i&, ii&
Создавать массив или еще есть способ?
 
Цитата
все данные в массив, создаём коллекцию уникальных покупателей (клиентов), цикл по коллекции - вложенный цикл по массиву: если значение совпало - суммируем данные из четвёртого столбца.

Только раза с третьего дошло :)
Только так и не дошло в каком месте суммировать ((( точнее куда писать данные, обновлять массив или сразу куда-то?
Создавать массив или еще есть способ?
 
Цитата
Не, практически код писать почему-то не хочется...   :)
Писать ничего не надо, так не интересно получается :)

Походу со сводной не только быстрее, но и в разы проще :)
Цитата
А с словарём с массивом так - заносим в словарь ключ и номер строки массива, в котором собираем суммы (можно использовать тот же исходный массив).
Я не очень понимаю где в словаре хранить суммы по заказам, ведь синтакс  - object.Add key, item
Или я что-то не так понимаю?
И что касается просто массива, то не получится его объявить как диапазон, надо циклом заполнять? Я правильно понимаю?

А если например объявить массив через диапазон и потом циклом прогонять по клиенту и суммировать, это не будет проще/быстрее?

Вообще основная мысль это подключать внешний файл без открытия и обновлять данные в работающей книге, поэтому сводную ой как не хочется делать :)
Создавать массив или еще есть способ?
 
Цитата
Такой же ответ: можно)
А можно хотя бы алгоритм озвучить?

Абстрактный пример во вложении :) Но суть он дает понять.
И если предполагаемый размер массива будет 700т-900т значений, на сколько это будет быстро работать вообще ? может и не стоит даже делать?
Создавать массив или еще есть способ?
 
Добрый день.

Вопрос больше абстрактный.
Например есть таблица клиентов и их закупки за определенный период.
Но 1 клиент за этот период может совершить больше 1 покупки.

Не хочется создавать сводные таблицы и работать с ними.
Можно как-нибудь поместить эти данные в массив в уже просуммированном виде по клиенту?
Workbooks.Open
 
Цитата
При чем тут перезапуск... Ваш макрос по очереди открывает все файлы и ничегошеньки с ними не делает. Поэтому Вам кажется, что он открывает сразу все. Вставьте обработку каждого файла и закрытие его же в тот же цикл и будет счастье.

не могу сказать причем тут перезапуск, видать система такая убитая у меня тут.

Я не стал нагружать пост куском кода который обрабатывал файлы.
Проблема наблюдалась именно из отладчика при пошаговом проходе. В момент когда доходила очередь до открытия первого файла, происходило открытие всех файлов сразу и так же  отключался цикл for.

глюк какой-то был, по другому не объяснить.
Workbooks.Open
 
Тему можно закрывать.

перезапуск Excel решил проблему
Workbooks.Open
 
Цитата
Работать/обрабатывать будет макрос, этот же макрос? То логика подсказывает - по очереди...

Вот и я тоже думал что будет обрабатывать по очереди, тк если формировать список, то обарабывается именно по очереди.
Зато при попытке открыть, открываются разом все файлы.

Да, обрабатывать будет этот же макрос, после завершения, закрывать и брать в обработку следующий.
Workbooks.Open
 
Имеется ввиду что необходимо открывать все файлы ко определенному типу(в нашем случае год_месяц).
И открывать их по очереди, открыть первый - обработать и закрыть, открыть второй - обработать и закрыть и тд

как вариант конечно можно создать список файлов подходящих по условиям и потом уже открывать все по порядку, но не хочется делать два действия вместо одного
Изменено: ZombiMan - 12.08.2013 16:57:00
Workbooks.Open
 
Друзья, помогите.

Имеется задача, открывать все файлы что могут присутствовать в определенной папке.
Но возникает проблема, файлы открываются все сразу по заданной маске и прерывается макроса.


Код
Sub test()
xDate = Mid(Date, 7, 4) & "_" & Mid(Date, 4, 2)
mySourcePath = "C:\"
    
    
Set MyObject = CreateObject("Scripting.FileSystemObject")
Set mySource = MyObject.GetFolder(mySourcePath)
On Error Resume Next
For Each myFile In mySource.Files
    If myFile Like mySourcePath & "MM_Alloc_" & "*" & xDate & ".xls" Then

        Workbooks.Open Filename:=myFile, UpdateLinks:=0

    End If
Next
End Sub
Работа между книгами *.XLS и *.XLSX/*.XLSM в 2010
 
это разве не обратный пакет совместимости? для владельцев 2003
Работа между книгами *.XLS и *.XLSX/*.XLSM в 2010
 
Всем доброго утра.

Помогите найти решение возникшего затруднения.
В данный момент у меня установлен 2010 Excel, у части коллег стоит 2003 Excel и полный переход всех на 2010 будет ещё ой как не скоро.
Суть проблемы заключается в следующем, при открытии файлов *.XLS они открываются в режиме совместимости и из-за этого я не могу использовать формулы между книгами созданными 2003 и 2010 Excel.
Каждый раз пересохранять не вариант, уж очень много файлов будет.

Есть какие-то способы решения данной проблему?
Расчет разницы по датам
 
=А2-А1
ну и поменять формат ячейки на время выше 24х часов
VBA excel, добавление подписи
 
Вам удалось прикрутить картинку в подпись?
Вообще это реально сделать хоть каким-то способом ?
VBA excel, добавление подписи
 
Я не думаю что кто-то будет в аутлуке формировать письма макросом.
В подавляющем большинстве этим пользуются из экселя или из аксесса, поэтому и задал вопрос тут.
Страницы: 1 2 След.
Наверх