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

Страницы: 1
Формирование таблицы на 1+ млн. строк
 
Добрый день, есть такие условия:
- 13 файлов с одинаковой структурой (артикул, название и т.д.)  от 100к до 200к строк в каждом
- эти файлы обновляются 1 раз в месяц;
- есть потребность "вытягивать" с этих файлов информацию, обычно это происходит через "ВПР".

Из-за количества файлов это долго и не удобно. Объединить в один файл не возможно (из-за ограничения в 1 млн. строк)
Прошу подсказать удобный вариант для объединения и вытягивания информации.

Возможно ли сделать на Microsoft Access и в ту ли сторону я смотрю?
Изменено: Apos - 25.12.2018 14:09:07
Вынести название всех листов в активной книге
 
Нашел код, который выводит название всех листов в активной книге.
Код
Sub List_of_sheets() Dim i As Integer
 For i = 2 To ActiveWorkbook.Worksheets.Count
 ActiveSheet.Cells(i, 1).Value = ActiveWorkbook.Worksheets(i).Name
 Next i
 End Sub
Пытаюсь отшлифовать/ изменить его.
Как сделать, что бы весь список начинался с ячейки "А5" (сейчас начинается с "А2")?
Из другой книги по уникальному номеру товара "подтянуть" дополнительную информацию о нем
 
Добрый день и подскажите!)

Не могу разобраться как с помощью макроса вытянуть данные из файла "Б" в файл "А" через формулу "ВПР"
Для выбора файла я использую функцию:
Код
Sub AttachFile_test()    ' пример использования
    Filename$ = GetFilePath()
    If Filename$ = "" Then Exit Sub
    MsgBox "Выбран файл: " & Filename$
End Sub
 
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath As String = "c:\", _
                     Optional ByVal FilterDescription As String = "Файлы счетов", _
                     Optional ByVal FilterExtention As String = "*.*") As String
    On Error Resume Next
    With Application.FileDialog(msoFileDialogOpen)
        .ButtonName = "Выбрать": .Title = Title:
        .InitialFileName = GetSetting(Application.Name, "GetFilePath", "folder", InitialPath)
        .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
        If .Show <> -1 Then Exit Function
        GetFilePath = .SelectedItems(1)
        folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "\"))
        SaveSetting Application.Name, "GetFilePath", "folder", folder$
    End With
End Function

Но как дальше ВПРить, я еще не разобрался.

Для примера вкладываю два файла
Изменено: Apos - 12.01.2018 15:53:21
Как запретить макросу редактировать ячейки в которых стоят формулы
 
Есть макрос:
Код
'CODE 1 Ставим флажок, если был одиночный щелчок по ячейке
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("g5:r70")) Is Nothing Then
Target.Font.Name = "Marlett"
If Target = "a" Then
Target = ""
Else
Target = "a"
End If
End If
End Sub

'CODE 2 Снимаем флажок, если был двойной щелчок по ячейке
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("g5:r70")) Is Nothing Then
Cancel = True 'чтобы не уйти в режим редактирования
Target.Font.Name = "Marlett"
If Target = "a" Then
Target = ""
Else
Target = "a"
End If
End If
End Sub
В диапазоне макроса находятся "ячейки с формулами" и есть большой шанс случайно на них нажать. (в таком случае макрос удалит все содержимое ячейки)
А это не очень удобно
Как запретить макросу изменять ячейку с формулой?
Изменено: Apos - 04.01.2017 14:36:25
Смена текстового формата на цифровой при помощи макроса
 
Мне постоянно необходимо выработать с выгружаемыми файлами, но в них номера артикулов товара всегда в текстовом формате.
Обычно я преобразовывал их таким методом (копируем "1"--> выделяем нужный диапазон --> "специальная вставка" --> "значение" и "умножить")

Но как это сделать макросом?
Что бы я имел возможность  выделить нужный диапазон чисел и по нажатию макроса преобразовать все данные  в числовой формат.пример файла.xls (45.5 КБ)
Изменено: Apos - 30.12.2016 13:34:47
Форматирование листа в Excel макросом
 
Есть документ, куда постоянно копируют данные с сайтов (путем Ctrl+A и вставляют в лист).
Из-за такого копирования подтягиваются дополнительные элементы (скрин прилагается ниже)

Из-за низ размер файла постепенно доходит на нескольких мб. Что затрудняет нормальную работу с документом.
Я использовал команду:
Код
Sub Удалить_данные()
    Sheets("Данные").Select
    Cells.Select
    Selection.Clear
End Sub
Но эти элементы остаются на прежнем месте.
Подскажите, как сделать полный формат листа или каким образом копировать данные, что бы не подтягивались "дополнительные элементы".

Для копированию использую команду:
Код
ActiveSheet.PasteSpecial
без дополнительных условий.
Изменено: Apos - 11.08.2015 23:17:56
Как через макросы снимать и ставить защиту листа
 
Задача такова, есть код:
Код
Sub название_макроса

    Range("L3:L5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("C3").Select
    ActiveSheet.Paste

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

Как мне сделать так, что бы перед использованием макроса он снял защиту с листа, а после выполнения ставил обратно?
Как изменить текст системного сообщения в Excel?
 
Подскажите, как сделать, что бы при нажатии на зашишенную ячейку вместо такой ошибки (см. вложеный файл)

Я мог поставить текст, который нужен мне!

Дополнительное условие:
Если это возможно, то такая ошибка должна выпадать только нажатии на одну ячейку (в остальных ячейках пусть отображается стандартный текст).
Если такое не возможно, то меня устроит и первый вариант)
Изменено: Apos - 21.07.2015 12:01:09
Не могу подобрать формулу для графика сменности сотрудников
 
Задача на первый взгляд довольно простая, но уже 2 дня ломаю голову, не могу написать правильно формулу.

Есть график сменности сотрудников, мне необходимо, что бы отображалось предупреждение если в последний день месяца у человека выпадает ночная смена "н".

Все осложняется тем, что таблица динамическая, а в каждом месяце разное количество дней. Поэтому мне нужно условие которое проверяет примерно по такому алгоритму:
Если на 31 число стоит "н" - необходимо предупредить, например словом "ахтунг!" в ячейке рядом с фамилией
Если на 31 число пусто (в данном месяце только 30 дней и 31 день пустой), то формула должна проверить 30 число и так по кругу до 28 числа.
Страницы: 1
Loading...