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

Страницы: 1
Отфильтрованные данные с другого листа в выпадающем списке
 
Цитата
Hugo пишет: Но если строка будет длинной - открыть файл с таким списком не получится (сохранить даст)  :(  
Точно из-за двумерного массива! Передалала немного заполнения массива и вроде получилось!))))))
Код
arr = Range(Cells(5, 2), Cells(iLastRow, 2)).Value
  On Error Resume Next: Dim coll As New Collection, txt$
 For i = LBound(arr) To UBound(arr)
  txt$ = Trim(arr(i, 1)): coll.Add txt$, txt$
    Next i
    ReDim newarr(1 To coll.Count)
    For i = 1 To coll.Count: newarr(i) = coll(i): Next i
    UniqueValuesFromArray = newarr

Огромное спасибо за наводку, я уже с ума сходила
Изменено: Ангелина Ткаченко - 29.07.2013 21:07:37
Отфильтрованные данные с другого листа в выпадающем списке
 
Цитата
Мотя пишет: Ведь макрос - это "программа на 1-ой ножке"!
Есть макрорекордер и "не паханные возможности" параметризации его, макрорекордера, кода.
Да в том и дело что у меня практически нет навыков, мне просто нужно это сделать очень, а не получается и я не понимаю почему, уже пол интернета обыскала.
Отфильтрованные данные с другого листа в выпадающем списке
 
Проблема в том что не могу массив newarr передать в выпадающий список. Ничего не происходит, файлы прикрепляла)

Код
 arr = Range(Cells(5, 2), Cells(iLastRow, 2)).Value
 On Error Resume Next: Dim coll As New Collection, txt$
 For i = LBound(arr) To UBound(arr)
 txt$ = Trim(arr(i, 1)): coll.Add txt$, txt$
 Next i
 ReDim newarr(1 To coll.Count, 1 To 1)
 For i = 1 To coll.Count: newarr(i, 1) = coll(i): Next i
 UniqueValuesFromArray = newarr
Отфильтрованные данные с другого листа в выпадающем списке
 
Спасибо большое, всё работает! Файлов действительно будет много, но смысл в том, что каждый раз человеку необходимо будет самому решать в каком случае, из какого файла тянуть гибриды. И заполняться будет выпадающий список не во всем столбце, а лишь в некоторых строках, где будет выполняться соответствующее условие. Но самое главное что мне просто перечисление гибридов не нужно, как у меня в примере (я это сделала для наглядности проверки - заполнился массив уникальными значениями), а нужен только выпадающий список, поэтому мне файл не совсем подошел, т.к. насколько я поняла там идет заполнение данных из именованного диапазона.

Не понимаю в чем у меня ошибка в коде - так столбец D заполняется уникальными значениями массива.
Код
Range("D1").Resize(UBound(newarr)).Value = newarr 
но почему не хочет делать выпадающий список с данными из массива?
Код
With Cells(r, 6)
        .HorizontalAlignment = xlCenter
 With Cells(r, 6).Validation
        .Delete
.Add Type:=xlValidateList, Formula1:=Join(newarr, ",") 'должен быть выпадающий список из массива newarr
       
       
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
     End With

Изменено: Ангелина Ткаченко - 29.07.2013 21:06:03
Отфильтрованные данные с другого листа в выпадающем списке
 
Файлы прикрепила. Сначала нужно открывать файл 1. затем в нем нажимать кнопку "Создать список", и выбирать файл с гибридами. Столбец F должен заполняться выпадающим списком в каждой строке, но не заполняется(((
Отфильтрованные данные с другого листа в выпадающем списке
 
У меня так и было, видно когда копировала опечалась как-то. Не помогает( В чем может быть дело?  :(
Отфильтрованные данные с другого листа в выпадающем списке
 
Цитата
Igor67 пишет:
ZVI выкладывал решения по формированию уникальных для ComboBox. Посмотрите, может подойдет. тут только и надо передать функции диапазон из файла.
Спасибо, только мне немного не подходит, мне не комбобокс нужен, а выпадающий список в ячейку.

Вроде уникальные значения из столбца удалось получить, но почему-то не заполняется ValidationList... Может какая-то ошибка у меня, а я не понимаю?

Тут записываются уникальные значения в массив newarr из другого файла
Код
arr = Range(Cells(5, 2), Cells(iLastRow, 2)).Value
 On Error Resume Next: Dim coll As New Collection, txt$
 For i = LBound(arr) To UBound(arr)
 txt$ = Trim(arr(i, 1)): coll.Add txt$, txt$
 Next i
 ReDim newarr(1 To coll.Count, 1 To 1)
 For i = 1 To coll.Count: newarr(i, 1) = coll(i): Next i
 UniqueValuesFromArray = newarr

Далее хочу сделать выпадающий список

Код
With Cells(r, 6)
 .HorizontalAlignment = xlCenter
 With Cells(r, 6).Validation
 .Delete
 .Add Type:=xlValidateList, Formula1:=Join(newarr, ",") 
 
 .InputTitle = ""
 .ErrorTitle = ""
 .InputMessage = ""
 .ErrorMessage = ""
 .ShowInput = True
 .ShowError = True
 End With
 End With

но никакого выпадающего списка нет(((
Изменено: Ангелина Ткаченко - 29.07.2013 14:04:03
Отфильтрованные данные с другого листа в выпадающем списке
 
Цитата
Z пишет: ...выборка уникальных, динамические/именованные диапазоны, списки/ таблицы?
Честно, не очень поняла, вы имеет ввиду, что мне массивы не нужны? Мне хотя бы подскажите что искать, пожалуйста
Отфильтрованные данные с другого листа в выпадающем списке
 
Файлы в которые вставляла прицепила, но попытки сохранения в массив убрала, так как там у меня получился бред((
Изменено: Ангелина Ткаченко - 27.07.2013 10:31:11
Отфильтрованные данные с другого листа в выпадающем списке
 
Мешает то, что список будет постоянно обновляться, и подобных файлов будет очень много, алгоритм нужен один на все файлы, их пишу не для себя, а для пользователей, которые просто не будут обновлять динамические списки на другом листе(((

И основная проблема что это выпадающее поле должно создаваться именно макросом, т.к. оно будет протягиваться на количество заполненных смежных строк
Изменено: Ангелина Ткаченко - 27.07.2013 10:30:26
Отфильтрованные данные с другого листа в выпадающем списке
 
Уважаемые знатоки! Снова обращаюсь к вам за помощью, т.к. сама бьюсь с этим вопросом уже 2 дня, но никак не получается добиться желаемого результата. Вроде и похожие темы есть, но всё-равно не то что нужно.
Ситуация такая: есть файл, и в поле этого файла необходимо макросом создать выпадающий список с данными одного столбца из другой книги (там будут наименования гибридов), но дело в том, что в выпадающем списке должны быть только уникальные не повторяющиеся значения, а в столбце с гибридами много повторений.   :o

Я себе представляю что это должно быть так: открывается файл с данными, уникальные наименования из столбца записываются в массив (циклом) проверяя, если еще такого значения нет в массиве, а затем этот массив передается в выпадающий список уже моей книги. Но дело в том, что с массивами еще не работала, и попытки мои не увенчались пока успехом. Хочу попросить помощи - может есть уже похожая тема, но я ее не нашла, или принцип где-то описан похожий, либо я вообще неправильно представляю реализацию и подскажете как-то по другому? Заранее большое спасибо за помощь, надежда только на ваши советы  :)  :)  :)
Внешний адрес (ссылка) на ячейку
 
Супер! Огромное спасибо!! Получилось :) Использовала свойство External, всё получилось, если начнутся проблемы воспользуюсь вторым спососбом!  :)  :)  :)  :)  :)

Благодарствую
Внешний адрес (ссылка) на ячейку
 
Здравствуйте! Порыскала по форуму, не могу найти, помогите пожалуйста, возможно не там ищу.
Мне необходимо получить внешний адрес ячейки, чтобы макросом вставить значение из этой ячейки в другую книгу, при этом сделав связь с книгой-источником.
Когда просто вставляю например: Cells(i, 6).Address
получаю адрес:
$F$4
а мне нужно получить адрес вида (с путем книги и листом):
'C:\Users\ткаченкоаа\Documents\!Работа\Макросы\июль 2013 - вставка культур\папка подбора\[Ф1 Производство Победа.xlsx]Ф.1'!$F$4

Как то можно такое сделать? Помогите пожалуйста, есть ли какая то подобная формула возвращения внешнего адреса или посоветуйте пожалуйста, как лучше всего поступить с таким запросом :)
Помогите составить обработчик ошибки при открытии файла
 
Sergei_A, большое спасибо! Вроде помогло)
Помогите составить обработчик ошибки при открытии файла
 
Наткнулась на еще одну проблему, никак не могу обойти((((((((((((( Помогите, пожалуйста.
Среди моих документов на сервере, в которых мне необходимо сделать обход макросом ( более 16000 документов excel) находятся документы, при встрече с которыми макрос останавливается). Например так у меня случилось с документом "Обснование выбора по техники 2011г%D0[1].xls". При встрече с ним макрос останавливается и дальше не идет. Понимаю, что ошибка из-за имени файла и нормальные люди так файлы не называют ( при переименовании все начинает работать), но таких документов не один на сервере, поэтому переименовать все не получится(((

Уже куда только не пыталась вставить обработчик ошибок - картина та же. Я очень плохо знаю VBA, а написать этот макрос мне очень нужно. Прошу очень помочь знатоков.

Вот мой код (может где-то увидете ошибку, куда можно дописать обработчик).

For Each FileItem In SourceFolder.Files
On Error Resume Next
If FileItem.Name Like "*" & ".xls" & "*" Then
On Error Resume Next
Workbooks.Open FileItem.Path, UpdateLinks:=0, WriteResPassword:=""

If Err <> 1004 Then
If Err = 0 Then

ЭтаКнига.Activate
   
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path

Workbooks.Item(FileItem.Name).Activate

r = r + 1

ActiveWorkbook.Close SaveChanges:=False


End If

End If

End If

X = SourceFolder.Path

Next FileItem

Также прилагаю архив, в нем 2 папки. В одной рабочие файлы, в другой вышеописанный косячный файл для теста. Макрос должен открывать каждый файл из папки, записывать его имя на лист (как бы вести лог) и закрывать. Папка выбирается в файле с макросом. Помогите, пожалуйста разобраться где не хватает обработчика ошибок(
Помогите составить обработчик ошибки при открытии файла
 
Да, спасибо большое, получилось. Я писала Password = "", а у вас WriteResPassword:=""
Когда указала такое условие, тоже не запросило пароль! Спасибо!
Помогите составить обработчик ошибки при открытии файла
 
Цитата
Johny пишет:
Application.SendKeys "{ENTER}" 'Открываем книгу в режиме чтения

Не помогло, но возможно я неверно вставила в код - вот что у меня получилось:

If FileItem.Name Like "*" & ".xls" & "*" Then
On Error Resume Next
Workbooks.Open FileItem.Path, UpdateLinks:=0, Password:=""

Application.SendKeys "{ENTER}"
If ActiveWorkbook.HasPassword Then
   ActiveWorkbook.Close False
End If

If Err <> 1004 Then
If Err = 0 Then
ЭтаКнига.Activate
 
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path

Workbooks.Item(FileItem.Name).Activate

r = r + 1

ActiveWorkbook.Close SaveChanges:=False

End If
End If
End If
Помогите составить обработчик ошибки при открытии файла
 
Сделала как вы написали, всё-равно высвечивается поле для ввода пароля и пока не введешь его, или не нажмешь отмену цикл дальше не продолжается. а т.к. у меня 16 гигабайт файлов excel я хочу поставить макрос на выолнение на ночь, чтобы не нажимать в каждом файле кнопку "Отмена". Как сделать чтобы не запрашивал файл окошко с паролем?
продублировать значения ячеек
 
Файл - Параметры - Дополнительно - в настройках "Показывать параметры для следующего листа" уберите галочка с пункта "Показывать нули в ячейках, которые содержат нулевые значения"
Помогите составить обработчик ошибки при открытии файла
 
Пробовала эксперементировать с Application.DisplayAlerts - не помогло...
Помогите составить обработчик ошибки при открытии файла
 
Еще вопрос, подскажите, пожалуйста, если среди файлов которые перебирает макрос есть файл, который запрашивает пароль при открытии, как можно проигнорировать открытие данного файла и перейти к следующему?
Помогите составить обработчик ошибки при открытии файла
 
Johny, огромнейшее Вам спасибо! Помогло, я пол дня мучалась! ура, спасибо!
Помогите составить обработчик ошибки при открытии файла
 
Цитата
ber$erk пишет:
по ссылке ниже в комментариях написано, что надо добавить "On Error Resume Next"

ааа, не дочитала! спасибо :)
Помогите составить обработчик ошибки при открытии файла
 
Johny, книгу мне открывать надо, т.к. в дальнейшем необходимо будет усложнить макрос и записать все связи из этой книги в отдельный лог, буду делать на основе данного макроса. Мой макрос работает (можете посмотреть приложенный файл), просто не получается обработать именно ошибку, т.е. на 500 строке он у меня перестает работать, т.к. очередной файл не открывается,и он сам не переходит к следующему.

Z, спасибо, на основании этой статьи я как раз и написала свой макрос)))) Но ошибку мою он не обрабатывает, т.к. мне нужно обязательно именно открывать каждый файл и переходить к следующему в случае ошибки открытия. В этом и касяк, что у меня не переходит(((
Помогите составить обработчик ошибки при открытии файла
 
Здравствуйте! Передо мной стоит задача открыть файлы и перечислить список файлов  excel  в папке. Без знаний VBA  с помощью интернета составила макрос, он работает, переписывает названия файлов в папке, но если натыкается на файл, который выдает ошибку при открытии, он прекращает работу. Ошибка - например:
"В книге обнаружено содержимое, которое не удалось прочитать. попробовать восстановить содержимое книги?"

Помогите пожалуйста дописать код так, чтобы при открытии файла с ошибкой, макрос переходил к следующему файлу.

r = Range("A65536").End(xlUp).Row + 1 'íàõîäèì ïåðâóþ ïóñòóþ ñòðîêó

For Each FileItem In SourceFolder.Files

If FileItem.Name Like "*" & ".xls" & "*" Then
Workbooks.Open FileItem.Path, UpdateLinks:=0
ЭтаКнига.Activate    
Cells(r, 1).Formula = FileItem.Name
Cells(r, 2).Formula = FileItem.Path
Workbooks.Item(FileItem.Name).Activate
r = r + 1
ActiveWorkbook.Close SaveChanges:=False
End If

X = SourceFolder.Path
Next FileItem
Страницы: 1
Наверх