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

Страницы: 1
Взаимозависимое копирование ячеек на листах
 
Ребята, спасибо за варианты.
Все таки буду благодарен именно за код VBA, так как самый большой пробел именно в части поиска крайней строки.
Зайду с другой стороны :)
Есть код импорта в лист:
Код
Sub CollectAllClients()
Dim BazaWb As Workbook 'текущая книга (общий файл)
Dim BazaSht As Worksheet 'лист База покупателей в общем файле
Dim iTempFileName As String 'имя по-очерёдно открываемого файла
Dim iPath As String 'путь к папке, где лежат все файлы
Dim iLastRowBaza As Long 'последняя заполненная строка в общем файле в столбце A
Dim iLastRowTempWb As Long 'последняя заполненная строка в по-очерёдно открываемом файле в столбце A
Dim iNumFiles As Long 'количество открываемых файлов
Dim LastRow As Long, LastColumn As Integer, i As Long, j As Integer
    Sheets("Общий").UsedRange.Rows.Hidden = False
    Sheets("Общий").UsedRange.Columns.Hidden = False
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlManual
        Set BazaWb = ThisWorkbook
        Set BazaSht = BazaWb.Sheets("Общий")
        iPath = BazaWb.Path & "\"
        iTempFileName = Dir(iPath & "*.xls")
        Do While iTempFileName <> ""
            If iTempFileName <> BazaWb.Name Then
                With .Workbooks.Open _
                     (Filename:=iPath & iTempFileName, UpdateLinks:=False, ReadOnly:=True)
                     iNumFiles = iNumFiles + 1
                     'Рабочая книга не должна быть защищена паролем
                     With .Worksheets("Лист1")
                          'номер последней заполенной строки
                          iLastRowTempWb = .Cells(Rows.Count, 1).End(xlUp).Row
                          iLastRowBaza = BazaSht.Cells(Rows.Count, 2).End(xlUp).Row + 1
                          .Range(.Cells(2, 1), .Cells(iLastRowTempWb, 36)).Copy Destination:=BazaSht.Cells(iLastRowBaza, 2)
                     End With
                     .Close SaveChanges:=False
                     Name iPath & iTempFileName As iPath & "Архив\" & iTempFileName
                End With
            End If
            iTempFileName = Dir
        Loop
        .Calculation = xlAutomatic
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
   MsgBox "Информация собрана из " & iNumFiles & " файлов!", vbInformation, "Конец"
    Range("I:I,K:K,R:R,S:S,T:T,AF:AF,AG:AG,AH:AH,AI:AI,AJ:AJ,AK:AK").Select
    Selection.EntireColumn.Hidden = True
    End Sub


Вот куда тут добавить формулу, чтобы она после вставки массива производила "взаимное" копирование ячеек ума не приложу :(
Приложил файл наиболее близкий по формату к используемому в реале.
Спасибо.
Взаимозависимое копирование ячеек на листах
 
Sanja, спасибо за вариант, однако при импорте массива у меня все данные в ячейках будут съезжать, поэтому реализацию хотелось бы увидеть именно посредством VBA.

Update:
Важный нюанс. иногда в лист с кодами значения номера карты и имени будут добавляться вручную. насколько я понял, можно будет использовать формулу =IFERROR(VLOOKUP... но при этом не могу понять, как мне обозначить кодом первую свободную строку в массиве для заполнения на обоих листах.

Буду благодарен за подсказки.
Изменено: VadimVint - 03.04.2015 10:35:40
Взаимозависимое копирование ячеек на листах
 
Форумчане, подскажите, пож-та, как можно реализовать посредством VBA следующую задачу:
Что есть:
На лист "Карты" из внешнего источника копируются значения "Карта" и "Имя".
На листе "Коды" есть некий пул номеров под значениями "Код1" и "Код2"
Что необходимо:
При импорте данных на лист "Карты" в поля "Карта" и "Имя", эти параметры должны копироваться в соответствующие поля листа "Коды", откуда в свою очередь должны копироваться поля "Код1" и "Код2".
Оба листа ведутся с постоянным пополнением.

Пример выложил без макроса импорта, главное увидеть сам процесс "взаимного" копирования.

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

Код
Me.ListBox1.List = Split(Mid(s, 2), "~")

Тема закрыта :)
Автозамена значения при выборе в Listbox + окраска ячейки по условию
 
Textbox и listbox открываются в столбце V "Способ отправки после изменения"
Автозамена значения при выборе в Listbox + окраска ячейки по условию
 
Хех, и с цветом вопрос тоже решил :)
подставил в код:
Код
If Target.Cells.Count > 1 Then Exit SubIf Intersect(Target, Range("V:V") Is Nothing Then
Target.Interior.Color = 13434879
Else
Target.Interior.Color = 5296274

Но что же делать с первой пустой строчкой в listbox???  
Изменено: VadimVint - 02.04.2015 12:25:24
Автозамена значения при выборе в Listbox + окраска ячейки по условию
 
Сам нашел про автозамену.
В коде поставил:
Код
Me.TextBox1.Text = Application.VLookup(ListBox1, Sheets("Коды").Range("A:B"), 2, 0)
ActiveCell.Value = TextBox1.Text

Но остались вопросы про первое пустое значение в listbox и цвет ячейки :)

Подскажите, плз.
Изменено: VadimVint - 02.04.2015 12:25:41
Автозамена значения при выборе в Listbox + окраска ячейки по условию
 
Уважаемые Гуру, подскажите, пож-та, где ошибки в коде:
1. Необходимо, чтобы при выборе значения из listbox в столбце "V" в ячейку подставляется значение из столбца "B" таблицы на листе "Коды". Пытался реализовать через ВПР, но не получается :(
2. Как только в ячейку столбца "V" подставляется код, надо чтобы она закрашивалась цветом. При этом к общей таблице применен макрос на запись изменений и выделение цветом. Надо чтобы они не пересекались. :)
3. В Listbox первая строка выходит пустая, не могу понять, как убрать.

В VBA полный ноль, поэтому все коды понабрал на этом замечательном форуме :)

Заранее спасибо!
Сбор данных с накоплением в итоговом файле без полной перезаписи
 
Да, прикольный вариант и самое главное, что работает :)
Спасибо за помощь!

P.S. Наглость - второе счастье, поэтому хочу озвучить еще одну просьбу напоследок :)
1. Реально ли вписать в макрос условие добавления названия файла в первый столбец и даты импорта во второй?

Спасибо!
Изменено: VadimVint - 24.03.2015 11:05:56
Сбор данных с накоплением в итоговом файле без полной перезаписи
 
Добрый день!
Вопрос сбора данных из нескольких файлов решен, спасибо форумчанам! Однако не могу найти обсуждения о возможности накопления данных в итоговом файле без перезаписи данных из всех файлов.
Опишу вкратце процесс и необходимость:
1. Собрать файлы из папки
2. Сгенерить общую таблицу в итоговом файле.
3. Далее идет работа с общей таблицей в итоговом файле (заносятся комменты итп)
4. Происходит еженедельное добавление нового файла в папку
5. Необходимо добавлять в общую таблицу данные только из нового файла, чтобы вся информация по уже внесенным ранее осталась без изменений.

Как пример использован один из макросов форумчан и новый файл, который необходимо залить в папку после импорта первых в общую таблицу.

Буду благодарен за идеи.
Вадим.
Изменено: VadimVint - 23.03.2015 16:05:43
Страницы: 1
Наверх