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

Страницы: 1
Подсчёт уникальных строк
 
Добрый день!Вопрос я думаю избитый, но я не смог правильно сформировать запрос в гугл для ответа на него, так что пожалуйста подскажите.
Имеем таблицу в которой есть несколько столбцов с выявлеными недостатками товара и есть лист с отчётом в котором необходимо подсчитать сколько всего товара найдено с браком и отдельно сколько какого брака. Все бы ничего если бы руки работник ов всегда вносили данные верно, а именно каждый раз когда добавляли брак, добавляли его строго в первый столбец для этих целей, тогда бы просто СЧЁТЗ и всё, а тут уже не всегда работает и потому тогда ошибки. [FILE ID=558388]
Работа с csv
 
Добрый день!
Буду краток: открываю csv в эксель, среди данных есть столбцы содержащие значения с запятой ( 1.12, 2.01 и подобные). Эксель сразу отображает эти данные как дату (12.январь и т.д.).
Как сделать чтобы отображалось все нормально?
В архиве образец, данные в колонках Battery, AirCPress и другие.
Отключение автоформата ячейки
 
Добрый день. Excel 2013, не могу отключить автоформат ячеек при открытии файла.
Есть csv файлы с потоками данных. При открытии их некоторые значения автоматически отображаются как дата,  а ви поле формат ячейки стоит "(все форматы)".
изменение формата ячейки ведёт ки некорректным данным.  
Простой тест через UserForm
 
Добрый вечер.  Сразу извиняюсь за подачу, но всё материалы на ноутбуке, а пишу с телефона.
Вообщем заблудился в трех соснах. Пишу простенький тест - вся логика выполнена на двух листах: ввод и результаты. На листе ввод 4 столбца: номер пункта и варианты ответа- а,б,в,г. Нужно в требуемой ячейке поставить 1. На третьем листе контент: столбец А задача, с B по Е варианты ответа. В принципе контент распечатал на лист, и всего то надо в нужных ячейках расставить 1, но некоторым сложно. Вот и решил всё сделать макросом через UserForm - простенькую,  6 элементов: label1-задача, 4 optionalButton - варианты, и ComandButton действие.
Всего заданий 60.
Сделал процедуру которая собирает форму по принципу:
Label1.Count=Worksheet("контент").cell(1, i)
И т д. все элементы.

Каждое нажатие ComandButton вызывает эту процедуру с новым ааргументом i, а так же должна заносить ответ в результаты (немного тоже туплю, вместо одной 1 она ставится во все 4 варианта(.

никак не соображу куда именно прикрутить цикл:
For i=1 to 60
Список из значений ячейки с со всех листов
 
Добрый день!
Извините сразу за название темы,  не смог более точно сформулировать.
В прикреплённом файле часть некой "автоматизированной системы" обработки анкет оценки качеств рукодителей. И есть в ней один недостаток чтобы посмотреть результат по конкретному руководителю нужно его фамилию имя отчество вводить в ячейку А2 листа "Анализ", а на других листах с сырыми данными в ячейки А1 этот руководитель ищется. Хочу для себя, а может и для коллег сделать выбор руководителя из выпадающего списка. Хотелось бы сделать это без макроса, собрав соответственно список из ячеек А1 всех листов.
Вот собственно и вопрос, а возможно это реализовать формулами, и если да то как?
Сравнение двух таблиц и подстановка недостающих данных
 
Всем добрый день!
Вопрос наверное достаточно избитый, но как то у меня не получилось сформировать поисковый запрос на поиск решения, потому прошу помощи здесь.
Заранее извиняюсь за отсутствие образца, рабочий компьютер не имеет доступа вм интернет и подключать внешние устройства к нему категорически запрещено.
есть две таблицы, первая полный список сотрудников отсортированный по подразделениям, а второй список сотрудники которые прошли вакцинацию отсортированный по дате вакцинации. Задача скопировать данные о вакцинациииз вакцинации из первого списка во второй, оставив порядок (сортировку) первого списка.
Повторное выделение ячейки с зажатым ctrl.
 
Добрый день!
Суть темы просто интерес вм решении вопроса на который не нашёл ответа, так что прошу не удаляйте.
Если зажать клавишу ctrl и выделить любую ячейку,  а затем клацнуть её ещё раз то выделение с ячейки не снимается,  а ячейка поменяет цвет. Интересно для чего именно ячейка меняет цвет. Есть какой либо особый смысл в этом?
Заранее спасибо за ответ.  
Выбрать последние три слова из текста
 
Задача: из исходного текста (старший сержант Иванов Иван Иванович) оставить только последние три слова, то есть Иванов Иван Иванович. Сложность (лично для меня) в том что перед этими фио может быть и два и три и четыре слова, а вот после точно ничего нет.  
Сравнение и слияние двух таблиц
 
Извиняюсь за столь банальный вопрос, но гугл не сломался, просто срочно нужно.
Суть проблемы: с напарником заканчиваем в две руки заполнять таблицу в эксель. То есть, имеется одна таблица с уже заполненными данными и часть данных (которая имеется у меня) дополняю я в нее, другую часть данных вносит мой напарник. Теперь как ни будь бы побыстрее их объединить. В прикрепленном файле образец как бы заполненный мной, то что не заполнен я предоставлено напарником.

Дополнение:
забыл указать не маловажный момент, некоторые данные могли внести и я, и напарник.
Изменено: Kulibinslovoru - 13.01.2021 23:02:59
"Тихое" обновление внешних связей книги
 
Суть проблемы автоматически обновлять внешнии связи книги при установки обновления надстройки, кроме кода в ней хранятся константы для таблиц. Некоторые пользователи напрочь не понимают как обновить внешнии связи и соответствующие сообщения выгоняют их в ужас.

Решил сделать процедуру, которая будет запускаться после установки обновления и без участия пользователя обновлять связи

Код
Sub chTWBLNK()     Dim InstFold As String 
    Dim oFD As FileDialog 
    Dim WB As Workbooks 
    InstFold = Replace(Application.UserLibraryPath & "\", "\\", "\") 
    Set oFD = Application.FileDialog(msoFileDialogFilePicker) 
    With oFD 
        .AllowMultiSelect = False 
        .Title = "Выбирите книгу." 
        .Filters.Clear 
        .Filters.Add "Excel files", "*.xls*" 
        .InitialView = msoFileDialogViewDetails 
    If oFD.Show = 0 Then Exit Sub 
    For j = 1 To .SelectedItems.Count 
        x = .SelectedItems(j) 
        WBName = Right(x, Len(x) - InStrRev(x, "\")) 
        With Application 
            .EnableEvents = False 
            .ScreenUpdating = False 
            .Visible = False 
            .Calculation = xlCalculationManual 
'            Set WB = CreateObject(x) 
            Workbooks.Open Filename:=x, UpdateLinks:=True, Password:=376376 
            iLinks = Workbooks(WBName).LinkSources(xlExcelLinks) 
            If IsArray(iLinks) = True Then 
                For Each i In iLinks 
                    IName = Right(i, Len(i) - InStrRev(i, "\")) 
                    yName = IIf(InStrRev(IName, "."), Left$(IName, InStrRev(IName, ".") - 1), IName) 
                    If yName = "OOPROMPO" Then WB(WBName).ChangeLink IName, _ 
                        NewName:=Replace(Application.UserLibraryPath & "\", "\\", "\") & "OOPROMPO.xla", Type:=xlExcelLinks 
                Next 
                Call MsgBox("Связи обновлены!", vbOKOnly + vbInformation, ""): Exit Sub 
            End If 
            .EnableEvents = True 
            .ScreenUpdating = True 
        End With 
'        WB.Windows(1).Visible = False 
        Workbooks(WBName).Save 
        Workbooks(WBName).Close 
    Next 
    End With 
End Sub

Но на строке
Код
WB(WBName).ChangeLink IName, _ 
                        NewName:=Replace(Application.UserLibraryPath & "\", "\\", "\") & "OOPROMPO.xla", Type:=xlExcelLinks
появляется ошибка 91. В чем причина

Перехват системных событий о невозможности обновить связи книги
 
Доброго вечера!
Подскажите пожалуйста возможно ли как то средствами VBA перехватить сообщение о невозможности обновить связи книги (как в прикрепленном скрине).  А так же иных сообщений на тему внешних связей книги.
Задать константу имени книги
 
Всем привет 👋
Собственно сабж: как более выгодно задать константу  "имя книги", что бы не бояться переименования файла. Для работы с книгой используется надстройка, которая должна работать только с одной из копий данной книги, реализовано это через проверку имени книги. А если по каким либо причинам конечный пользователь переименовал файл... В голову пришло задать константу "имя книги", а как это более выгодно сделать объявить ее в модуле ThisWorkbook или создать отдельный модуль?
Ну и в догонку ещё идея: реализовать функцию "бекапа" книги, закончился месяц нажатием кнопки пользователь сохраняет бекап текущей книги и а вот тут хотелось бы переобъявлять константу с номером бекапа. Как это реализовать програмно?
Если нет листа с нужным именем, копировать лист-образец и переименовать
 
Всем привет 👋, извините, но тупо не могу догнать, никак не построю конструкцию: нужно пробежаться по всем листам книги и если среди них нет листа с именем, допустим "имя_1" выполнить условие (скопировать лист "образец" и назвать его "имя_1"). Как скопировать и переименовать лист не проблема, а вот как не допустить задвоения листов 🤯. Делать через ошибку? А как? Или есть более изящный способ.
[ Закрыто] Некоторые вопросы по надстройкам
 
Всем привет 👋, сильно не пинайте.
Есть проект, который хочу сделать надстройкой. Суть проекта автоматизация заполнения таблиц через форму. Сейчас для вызова формы используется двойной клик по первому столбцу любой из таблиц. А на скрытом листе книги хранятся некоторые исходные данные, так сказать константы, которые как раз используются для заполнения различных Combobox'ов. Данный проект используется разными сотрудниками, не только мной, а веду его я.
Теперь к вопросам:
1. Как сохранить возможность вызова формы по двойному клику по столбцу. Как сделать и настроить кнопку в ленте понял, но пользователи (а из много) привыкли к двойному клику и это опять будет эпопея с обучением.
2. Как в надстройку загнать лист с исзодными данными. Иногда приходится изменять эти данные, а это значит обновлять файл у всех пользователей, переносить данные, а так кинул им новую версию надстройки, они ее установили и радуются.
Вот собственно то все.
Объединение столбцов в один список
 
Всем доброго времени суток.
Мне нужно формулой объединить столбцы с разных листов, в один большой столбец. Данные в исходных столбцах постоянно пополняются, следовательно генерируемый столбец динамический. Можно даже создать именованный диапазон, но отдельный столбец предпочтительнее. Сделать это нужно формулой, PQ и макрос к задаче не подходят, да и не спршивал бы. И ещё, это несли уж совсем идеально исключить дубли.
Копирование листов без связей
 
Всем привет!
Я знаю как макросом скопировать лист, или несколько листов, одной книги в другую, так же знаю как их переименовать нужным мне образом. Но вот как это сделать не копирую допустим имена в новую книгу я не знаю. Есть у меня книга одним из достав которой является учёт мероприятий по отдельному сотруднику. Данный лист заполняется автоматически из других листов и потом приходится его копировать в другую книгу, где все эти листы ведутся.
Что, единственный способ это открывать нужную книгу и в уже в ней производить копирование, т.е. уже в ней иметь исходный лист для копирования, а потом его опять же макросом заполнять? Или есть способ скопировать лист без связей с материнской книгой и имён?
Изменено: Kulibinslovoru - 08.06.2020 14:40:02
Добавление новых данных по дате
 
Всем привет 👋
В прикреплённом файле таблица данные в которую добавляются через форму. Хотелось бы несколько улучшить эту функцию, а именно что бы новые данные добавлялись не в конец таблицы, а по дате. Или автоматически после добавления данных применялась сортировка данных в таблице. Самое главное что бы нумерация в столбце с номером (на всех листах он разный) продолжалась по порядку. Надеюсь на понимание.
VBA. Путь к файлу получается с неправильной кодировкой
 
Добрый день!
Суть нужно открыть файл по двойному клику по ячейке, гиперссылка не подходит из-за возможности случайных нажатий. В целом задача не сложная и в общем-то решена на ура за исключением одного: не всегда уверен в расширении файла, doc или docx.
Как то уже спрашивал, но тогда ответа не получил. Собрал небольшой костыль, где то коряво, где то косо, сильно не ругайте. Но в костыле есть проблема, путь к файлу получается с неправильной кодировкой, с "кракозябрами".
Изменено: Kulibinslovoru - 13.03.2020 15:49:11
Обобщение нескольких книг
 
Всем привет.
Тема конечно избитая, плюс есть PQ и иные средства, но не совсем это то что нужно.
Цель: объединить данные из нескольких книг в одну.
Условия: все книги под паролями (поэтому не PQ), тягать данные только с определённого листа (совпадает с именем текущего листа в общей книге), собирать данные начиная со второй строки (первая шапка), игнорировать столбец D (в большинстве случаев, где он имеет имя номер по порядку). Исходя из последнего условия будет требоваться заполнить этот столбец нумерацией, но пока можно оставить его пустым.
Нашёл подходящий макрос, подправил под свои нужды (раньше он каждый раз создавал новый лист), и теперь он что то не работает, не вставляет данные. Плюс ещё так и не понял как заставить его пропускать лист D.
Подсчитать количество строк отвечающих заданному набору условий
 
Для статистики необходимо произвести подсчёт ячеек в зависимости т набора условий. С одной стороны всё легко, есть функции счётеслимн и суммеслимн, но сложность кроется в столбцах H и I из примера, условие проверяется, в том числе, по любому из них. Т.е. в эти столбцы заносятся данные вида: а), б), в) и т.д. Данные в этих столбца не
могут повторятся (не может стоять два раза "а)"  или "б)" ), или в столбце I данных может не быть вовсе. Первое условие взято из столбца Е, в Н и I втрое условие. Необходимо  подсчитать количество строк удовлетворяющих условию: Е=1 и Н=а) или I=а).
Перепробовал кучу вариантов, не пробовал только создание "служебных" столбцов для подсчёта значений в этих столбцах, не очень устраивает подобный вариант. Что можно попробовать?
Изменено: Kulibinslovoru - 11.02.2020 15:40:37
[ Закрыто] Что не правильно?
 
Доброго дня.
Использую макрос который открывает мне документы Word из таблицы Excel по двойному клику по ячейки. В принципе всё работает за исключением "Но". Я наверняка знаю имя файла, но не всегда знаю расширение doc или docx. Конечно ещё в принципе может быть двойное название файла ("фирма и Ко.doc"), но это редко.
Код
Sub Zapusk_Word()
    Dim iFile, iPath As String, i As Long
    iFile = Split(Cells(ActiveCell.Row, ActiveCell.Column))
    iPath = Range("FILE_PATH").Value & "\" & ActiveSheet.Name & "\"
    If Len(Range("FILE_PATH").Value) = 0 Then
        MsgBox "Путь не найден"
 
    Else
        i = MsgBox("Открыть файл:" & vbNewLine & iPath & iFile(0), vbOKCancel)
    
        If i = 1 Then
            Dim objWrApp As Object
            Dim objWrDoc As Object
            On Error Resume Next
            Set objWrApp = GetObject(, "Word.Application")
                If objWrApp Is Nothing Then
                    Set objWrApp = CreateObject("Word.Application")
                    Set objWrDoc = objWrApp.Documents.Open(iPath & iFile(0) & "*.doc*")
                    objWrApp.Visible = True
                End If
    
            Set objWrDoc = objWrApp.Documents.Open(iPath & iFile(0) & "*.doc*")
            Set objWrDoc = Nothing
            Set objWrApp = Nothing
        

        End If
    End If
    

End Sub

Окружаю расширение файла звёздочками, что бы код подставлял любые символы файл не открывается, звёздочки убираю все работает. Что не так делаю?
[ Закрыто] Помогите оптимизировать код
 
Добрый день!
Прошу подсказки и помощи в оптимизации кода. Есть книга с десятком листов, 9 сбор данных и 1 статотчет. Ввод данных в книгу реализован через форму с 9 MultiPage, там же предусмотрено редактирование/удаление введённых данных. Кнопка добавить запись работает следующем образом:  
Скрытый текст

Аналогично работает кнопка редактировать, за исключением переменной ILstRow, для нее используется значение выбранной строки. Можно ли как то сократить код, или это оптимальный вариант?
Зы. В связи с правилами корпоративной этики файл не могу приложить предварительно не очистив названия всех элементов формы, а это очееенб большой объем, больше сотни лейблов .
Редактирование динамического диапазона с использованием ListBox, Извините не могу понять, готовый пример не смог найти
 
Доброго времени суток!
Нужна Ваша помощь. Имею базовые навыки в программировании, и некоторые задача естественно мне не под силу.
И так есть Книга в которой ведется учет работы подразделения по филиалам. Ответственные сотрудники самостоятельно ведут эту, так ее назовем, базу для своего подразделения. С целью сохранения работоспособности книги, доступ к определенным диапазонам листов, и листов в целом, ограничен. Администрированием базы занимаются два сотрудника.
У книги есть лист содержащий некоторые исходные данные: названия филиалов, фамилии сотрудников, клиенты и т.д. Данный лист скрыт, точнее применен метод VeryHide, с целью защиты данных. Все данные с этого листа для удобства работы содержатся в диспетчере имен, среди которых есть и динамические диапазоны, реализованные через формулу =СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A:$A);1).
Иногда возникает необходимость редактировать эти данные. Для удобства администрирования создана форма (что бы не тратить время на делание видимым листа). Добавить данные в диапазон для меня оказалось простой задачей, а вот удалить из диапазона значение, при этом не оставив пустой ячейки, я не смог.
В прикрепленном файле пример реализации формы для редактирования диапазонов, так как ее вижу. Интересует как можно удалить данные с листа нажав кнопу "-" на форме предварительно выделив эти данные в ListBox.
Заранее благодарен!
Изменено: Kulibinslovoru - 18.01.2020 16:27:03
Страницы: 1
Наверх