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

Страницы: 1
Печать нескольких листов одним кликом, Макрос для выбора нескольких листов для вывода на печать
 
Дорогие форумчане!
Подобные решения есть, но ни как не могу применить к моей задачи. Прошу помощи.
Есть у меня такие макросы для вывода на печать листов:
Код
Option Explicit
Dim PList1 As Worksheet
Dim PList2 As Worksheet

Sub Print_PList1()
    Set PList1 = ThisWorkbook.Worksheets("стр1")
    PList1.Calculate
    Application.Dialogs(xlDialogPrinterSetup).Show
    PList1.PrintOut
End Sub

Sub Print_PList2()
    Set PList2 = ThisWorkbook.Worksheets("стр2")
    PList2.Calculate
    Application.Dialogs(xlDialogPrinterSetup).Show
    PList2.PrintOut
End Sub
Хочу, подправить макрос, что бы он выводил на печать сразу оба листа. Но что бы не делал, выдаёт ошибку. По одному - работают отлично.
Объединение ячеек по условию, Объединение ячеек по условию с помощью макроса
 
Всем доброго времени суток!

Сталкнулся со следующей задачей, как реализовать, не знаю. Может кто подскажет, буду крайне благодарен.

Есть строка, в которой указывается дата начала, и далее все ячейки +1 к данной дате. Получается период начала и окончания. (это строка 3)
В строке 1, объединённые ячейки групируют месяц, и формулой я подгружаю из строки 3, имя месяца и год
В строке 2, в объединённых ячейках указываю периоды месяца: 1-10, 11-20, 21 - 30(31, 28, 29)
В зависимости от того, какой месяц, мне приходится в ручную переобъединять ячейки с месяцем и датами.

Вопрос, можно ли, в зависимости от месяца, по условию макросом объединять ячейки в 1 строке (1-30, 1-31, 1-28 (29)) и во второй строке аналогично?
Файл прилагаю.
Изменено: Sheriff - 08.04.2024 20:25:50
Разбить строку на 2 части по количеству символов, запустить цикл по разделению длинной строки на части
 
Всем доброго времени!

Есть три textBox. В один, скажем textbox1 записывается адрес. Если адрес более определённого количества символов (более 58), то нужно разделить текст на 2 части. До 58 символов в textbox2 и весь остаток в textbox3.

Но есть одна заковырка, если 59 символ является продолжением не законченного слова, то нужно найти начало этого слова, и перенести его в textbox3 целиком, а в textbox2 записать соответственно не 58 символов, а меньше, до начало слова.

Пример:
г. Санкт-Петербург, ул. Бухарестская, 27 корп.12, (м-н Старая Деревня)          'текст который в textbox1. Всего 71 символ
г. Санкт-Петербург, ул. Бухарестская, 27 корп.12, (м-н                                        'текст который должен попасть в textbox2 - 55 символов
Старая Деревня)                                                                                                     'остальной текст в textbox3

Мои мысли, проверить 59 символ, если пробел, то всё ОК. 58 символов в textbox2, остальное в textbox3. Если нет, то проверяем 57 символ, потом 56, 55, 54 и т.д. пока не найдём пробел. Как только пробел найден, то осуществляем деление на 2 части.
Но как это написать кодом? Подскажите пожалуйста.
Изменено: Юрий М - 30.08.2022 16:02:14
Заполнение TextBox, Значение в TextBox из таблицы в зависимости от значения в ComboBox
 
Всем доброго!
Есть умная таблица. В ней несколько столбцов. В первый я ввожу наименование организации. Во второй её ИНН
Если такая компания уже есть, то ИНН должен автоматом заполнить TextBox. Если нет, то я в ручном вводе вношу и компанию и ИНН.
Прописал в Коде к форме, по клику по TextBox, вызов функции из модуля.
Вот код в модуле:
Код
Sub AddINN() 'Заполняем textbox значением ИНН в зависимости от выбора компании
    Set ShopSheet = ThisWorkbook.Worksheets("Покупатель")
    Set ShopListObj = ShopSheet.ListObjects("UTBShop")
    
    If IfNa(Match(FormShop.CBoxGP, ShopListObj.ListColumns(1), 0), 0) > 0 Then
        FormShop.tb_INN = Application.VLookup(FormShop.CBoxGP, ShopListObj.Range, 2, 0)
    End If
End Sub
Если убрать "ЕСЛИ", то из списка в ComboBox я выбираю компанию, появляется в TextBox её ИНН. Но если компании в списке нет, то у меня выскакивает ошибка. Прописал условие If, вообще всё перестало работать.
Ногами сильно не бейте, просто укажите, где ошибка? Я только учусь.
Изменено: Sheriff - 06.08.2022 22:08:31
Нумерация без повторов, Нумерация строк в умной таблице без повторов
 
Всем форумчанам доброго времени суток!

Задача такая, есть форма для заполнения заказа (часть кода во вложении). При её вызове, в TextBox (№ Заказа) должен по умолчанию отображаться следующий номер из столбца (№ Order) в умной таблице.
В таблице столбцы: № Order; Data; Company и т.д.
Если заполнено к примеру 16 строк с различными данными, то при вызове формы, в TextBox (№ Заказа) по умолчанию стоит - 17...
Если же при нажатии на кнопку ввода данных в таблицу номер к примеру уже существует в таблице, то выскочить должно предупреждение типа: «Данный номер присутствует в базе, желаете его переписать?»
Соответственно если «ОК», то строка с этим номером переписывается, если «Cancel» то возврат к форме.

P.S. И у меня ошибка в работе макроса AddGp(), вроде всё правильно написал, но он ListObjects - не определяет... Не могу понять причину. Но это не особо важно, Но если кто укажет на ошибку, буду тоже крайне признателен.

Спасибо!!!
TextBox - запись / Combobox - чтение - одна форма, Запись данных и считывание в одной форме
 
Всем доброго дня.
        Не прошло и нескольких десятков лет и пришлось погрузиться в изучение VisulBasic. Но возникают конфликты и ошибки, на которые не всегда получается найти ответы в инете. В связи с чем прошу помощи у форумчан, помочь разобраться, что делаю не так.
        Итак, есть Form_1, на ней TextBox_1 и CobmboBox_1, CommboBox2, а также кнопка CommandBattom1
        На листе "List1", создана умная таблица "utb_him"

Конопке назначен макрос: а1
Код
Private Sub CommandBattom1_Click()
    Call a1
End Sub
В модуле прописываю код:
Код
Option Explicit
Dim him_1 As ListRow

Sub a1()
   Set him_1 = ThisWorkbook.Worksheets("List1").ListObjects("utb_him").ListRows.Add
   him_1.Range(1) = Form_1.TextBox_1.Value
End Sub

На этом этапе всё работает отлично. При нажатию на кнопку CommandBattom1 данные из TextBox_1 записываются в умную таблицу "utb_him". Но стоит мне добавить в свойствах CobmboBox: RowSource ссылку на умную таблицу, как возникает ошибка.

А мне нужно вносить новые данные в таблицу через TextBox, если их нет, и считывать ComboBox на этой же форме.
Подскажите как быть?
Извлечь из текста фрамент, размещенный в скобках
 
Уважаемые форумчане, всем доброго времени суток.
Как извлечь текст из скобок в ячейке, я справился без помощи, но как вытащить несколько текстов и ещё разделить их точкой с запятой... Такая задача оказалась для меня не в силах. Поэтому прошу вашей помощи. Может кто и сможет решить данную задачу.

К примеру в ячейке A1 есть текст:
Дорнит ЭКО 200 (Сертификат соответствия РОСС.RU.32001.04ИБФ1.ОСП09.05293; Паспорт качества на полотно нетканное марки «Дорнит ЭКО 200»); Труба гофрированная дренажная (Сертификат соответствия № РОСС.RU.КО01.Н00093); Щебень фр.5-20 (Сертификат соответствия № RU.МСС.207.399.33959; Паспорт № 561/А от 07.12.2020 года)

В ячейке B1, нужно что бы был только текст заключённый в скобках, разделённый символом ;
Сертификат соответствия РОСС.RU.32001.04ИБФ1.ОСП09.05293; Паспорт качества на полотно нетканное марки «Дорнит ЭКО 200»; Сертификат соответствия № РОСС.RU.КО01.Н00093; Сертификат соответствия № RU.МСС.207.399.33959; Паспорт № 561/А от 07.12.2020 года
Выпадающий список со смещением
 
Всем добрый день.
Подскажите, возможно реализовать следующую задачу?

Есть таблица с данными. В первом столбце внесён код, а рядом описание.
На другом листе выпадающий список.
Задача: В выпадающем списке должен отображается КОД, но при выборе, в ячейку вносится уже описание.
Слияние Excel и Word. Отображение формата даты раздельно: День, Месяц, Год
 
Доброго времени суток уважаемые форумчане!

Облазил весь инет, не могу найти решения. Если оно таковое есть, прошу подсказать как сделать.
У меня есть файл Excel со столбцом с датами.
В Word мне нужно перенести отдельно дату и отдельно месяц
Я использую код: { MERGEFIELD Data \@ "MMMM" } и у меня результат например следующий: сентябрь
А мне нужно: сентября
Когда же использую код: { MERGEFIELD Data \@ "dd MMMM yyyy" } то месяц в записи отображается правильно: 05 сентября 2020

Вообще можно бы обойтись и не разделяя месяц от даты, но мне нужно дату заключить в кавычки, т.е. должен получиться следующий результат:
« 05 » сентября 2020 года

При выборе материалов из списка с мультивбором подставить данные из второй таблицы
 
Доброго времени суток форумчане.

У меня загвоздка не большая. Может кто уже решал такую задачу, поделитесь идеей.

У меня есть выпадающий список с мультивыбором, но мне так же нужно, что бы в соседнюю ячейку наполнялись данные из соседних столбцов заданной таблицы.
Комментарии к файлу:
В книге 2 листа, на листе «Материалы» я создал таблицу «SERT».
На первом листе, я выбираю из первого столбца таблицы «SERT[Name]» материалы, а во второй нужно чтобы выпадали данные из второй таблицы «SERT[Pass]».
Вопрос по коду VBA, Приступил к изучению VBA, не могу понять, что сделал ни так.
 
Всем привет.
Решил, что для решения моих задач формулы не помогают, нужно изучить VBA.
Написал код, и не могу понять, почему он не работает.
Если не сложно подскажите, где я допускаю ошибку?
Код
Sub анализ()
    ' Анализ условий
Dim a, b As Byte
Dim a1, b1, c As Single
a = Cells(1, 1)
b = Cells(1, 2)
c = a1 / 2 + (b1 * 18 / 100)

    If a > 0 And a <= 10 Then
        a1 = a * 100 / 2
        b1 = 7 * b
        MsgBox "Вариант I: 1.1" & " Результат вычисления = " & c & " a1 = " & a1 & " b1 = " & b1
            ElseIf a > 10 And a <= 100 Then
            a1 = a * 18 / 100
            b1 = 15 / b
            MsgBox "Вариант II: 1.2" & " Результат вычисления = " & c & " a1 = " & a1 & " b1 = " & b1
                ElseIf a > 100 And a <= 200 Then
                a1 = a * 100 / 4
                b1 = a1 * 8
                MsgBox "Вариант III: 2.1" & " Результат вычисления = " & c & " a1 = " & a1 & " b1 = " & b1
                    ElseIf a > 200 And a <= 255 Then
                    a1 = a * 25 / 100
                    b1 = a1 * 33
                    MsgBox "Вариант IV: 2.2" & " Результат вычисления = " & c & " a1 = " & a1 & " b1 = " & b1
    Else
        MsgBox "Stop"
    End If

End Sub

Во первых переменную "c" не вычисляет, и если задаю диапазон выше 100, то ошибка...

P.S. возможно есть пути решения более простые, но мне нужно для изучения. И если кто ещё подскажет как выводить данные не в форме а в ячейки, например в B1 - результат a1, в В2 - b1 и т.д, буду крайне признателен.
Копирование данных в новую строку по условию, При условии сегодняшней даты обновить данные, если дата другая, то добавить строку
 
Всем доброго!

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

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

Пример выкладываю с макросом, без условия. В примере только лист, в который я собираю условно данные с других листов книги.
Смена картинки по условию, Изменение изображения в зависимости от смены данных в ячейке
 
Ребята, помогите.
Уже даже в архиве нашёл решение, которое мне более чем может подойти, но не могу в нём разобраться, что бы адаптировать под свою задачу...

Суть проблемы: Заполняю форму, и в конце формы заполненной, в зависимости от данных в ячейке, должна произойти смена картинки. В архиве я нашёл решение, но как его применить ко мне? Во первых не понятно где там сами картинки в прикреплённом файле post_29533.xls и что отвечает за их смену...
Короче вопросов больше, чем ответов.

По задумке, если в ячейке L2 значение 1, то в конце формы картинка одна со второго листа, если 2, то соответственно другая.
Ежедневный сбор данных из таблиц и объединение в одну
 
Всем доброго!

Так как я не силён в VBA, то вопрос к знатокам. У меня есть файл с листами в которые вносятся данные по выполнению. На одном листе ведется учёт уложенного бетона, на другом установка сборных конструкций, на третьем что то ещё и т.д.
Ежедневно я обновляю данные, сколько выполнено. Допустим на вчера было уложено 1245 м³ бетона, сегодня ещё уложили 140 м³, и я записываю уже в ячейку - 1385 м³.
На другом листе так же вношу другие данные.

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

В прикреплённом файле-примере:
На первых трёх листах я вношу данные. Нижних таблиц в реальности не должно быть. Т.е. я ежедневно вношу новые данные в таблицу.
На следующий день я обновляю данные, на следующий день, опять новые данные и т.д.

А на вкладке «Сбор данных» я хочу собирать разницу, какой объём выполнили за предыдущий день, т.е. разницу между датами.
Данные должны вноситься в таблицу на против даты обновления.

Ух... вроде всё логично рассказал, что сделать нужно.
[ Закрыто] Сбор данных, Собрать данные с листов и занести их на отдельный лист.
 
Всем доброго!

Так как я не силён в VBA, то вопрос к знатокам. У меня есть файл с листами в которые вносятся данные по выполнению. На одном листе ведется учёт уложенного бетона, на другом установка сборных конструкций, на третьем что то ещё и т.д.
Ежедневно я обновляю данные, сколько выполнено. Допустим на вчера было уложено 1245 м³ бетона, сегодня ещё уложили 140 м³, и я записываю уже в ячейку - 1385 м³.
На другом листе так же вношу другие данные.

Нужен макрос, который по клику на листе, должен собрать информацию с листов с данными, сколько выполнено на данный момент (на сегодня). Завтра, после внесения данных, кликнув на кнопку происходит опять сбор данных с листов, но заполняются они в ту же таблицу, но строкой ниже.

Получается, что потом можно проследить динамику выполнения, построить график и пр.

Если некорректно объяснил, то могу накидать книгу с листами для образца что нужно и из чего.
Совмещение таблиц, Перенос данных из одной таблицы в другую по условию
 
Всем доброго времени суток!

Ситуация в двух словах. Получили задание для тендера, заполнили, отправили... Они его просмотрели, говорят, что у нас трошки поменялось, мы вам уточнёнку сбросим и сбросили. Какие то работы добавили, какие то убрали... сейчас 15'000 с лишним позиций за два дня просто не реально перелопатить.
Нужна помощь, пожалуйста.

Задача следующая, из листа первого взять цены и перенести на второй лист в те строки, которые соответствуют первому листу. Если позиций на первом листе нет, а на втором они появились, то ячейки оставить пустыми.

P.S. Залил сюда урезанную версию файла. Задача не простая, сам не справлюсь. Вознаграждение готов обсудить в личке.
Изменено: Sheriff - 27.02.2018 23:01:14
Использование подстановочных знаков, Использование символа *
 
Всем доброго времени суток!

Сломал голову с подстановочными знаками, они у меня не везде работают. Обясните, что я делаю не так?

Создание списка из таблицы, Создать список РАСХОДОВ из таблицы с данными
 
Всем доброго времени суток!
Уже мозг плавится. Не могу поймать мысль, может кто нибудь поможет.
Есть таблица "A1:B60".
В столбец "A", данные берутся из другой таблицы, которая расположена в столбце "D".

А вот в столбец "G", нужно внести все уникальные данные, которые могут соответствовать Контрагенту внесённому в ячейку F2 из столбца "B" таблицы "A1:B60"

Т.е. если я ввожу в ячейку F2 - СпецТранс (ООО), то в столбце G, должен появится список: ОХР; Ш.6; Ш.25
      если в ячейке F2 - Бонус (ООО), то список состоит из одной позиции: Ш.25

Короче, из таблицы "A1:B60" выдёргиваются все уникальные данные столбца "B", если они соответствуют параметру ячейки F2 в столбце "A".

Может криво объяснил, но посмотрите таблицу из примера. Надеюсь сообразите, что мне нужно...
Подсчёт затраченного времени, Работа с временем
 
Доброго времени дорогие форумчане!

Проблема в следующем. Нужно установить фиксацию времени на выполнение задачи.
Описываю идею: запускаю кнопкой начало выполнения заданий. Как только задание выполнено правильно и в соответствующей ячейки у меня появляется смайл, то рядом показывается время в минутах и секундах затраченное на выполнение примера. По правильном завершении второго задания, происходит такой же процесс и т.д. По завершении всех заданий, отображается общее затраченное время.
Пробовал через функцию =ТДАТА(), т.е обновлял функцию нажатием кнопки. Думал, что она будет фиксированной, но к сожалению данные в ячейке меняются после внесения любых данных в любую из ячеек. Ни чего другого придумать не смог.
С VBA - не знаком, поэтому если есть возможность формулами достичь нужного результата, подскажите.
Большое спасибо.
Изменено: Sheriff - 07.02.2017 17:20:28 (Приложил файл)
Поиск по нескольким столбцам
 
Доброго времени суток. Пытаюсь сделать, но формула получается очень длинная. Да ещё приходится добавлять дополнительные столбцы. Может кто нибудь сможет предложить решение попроще.
Итак сама задача. Есть четыре столбца с данными. Когда в столбце «МАТ.» прописывается: М или К, то нужно решение:
1. Произвести поиск в столбце «Хар.» и вставить данные столбца «Кол-во» в столбец «ИТОГ» напротив строк с М или К.
2. При этом если М или К соответствуют какому-то коду, то что бы поиск происходил только к рамках этого кода.

По ходу косоязычно объяснил....  8-0, надеюсь, что в прикреплённом файле всё понятно. Я даже стрелочками указал и цветами, что на что влияет. Голова кругом. Не могу найти нормального решения.
Спасибо.
Выполнить запись диапазона в текстовом формате
 
Доброго времени суток, форумчане!

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

Вопрос в следующем, как в столбце F сделать текстовую запись диапазона? Дело в том, что пункты и подпункты могут меняться, тогда и диапазон должен соответственно изменяться.
Например в строке 28 я ставлю "5" и ниже пошли подпункты: 5,1; 5,2 ... - и в ячейке F28 должна появиться запись диапазона B29:D35.

И вопрос ни к теме  сами же знаете, что не к теме - зачем нарушать правила?

Спасибо.
Ввод массива из данных ячейки
 
Доброго времени суток, форумчане!

Возникла проблемка небольшая, но не могу сообразить как её решить, может кто нибудь сталкивался.
И так что мне нужно: есть некий массив из которого я выбераю данные посредством функции ВПР, но он (массив), динамичный. Например, я выборку делаю из массива B6:D9,  потом из B11:D15 и т.д. Значение массива я прописываю в ячейке, но как записать функцию, что бы она считывала запись в ячейке?

Сама функция:
Код
 =ВПР($H5;B6:D9;3;ЛОЖЬ)
я в ячейке к примеру F6 делаю запись: B6:D9.
Возможно ли указать в формуле: =ВПР($H5;B6:D9;3;ЛОЖЬ) ссылку на F6, что бы вместо F6 распознавалась запись B6:D9 ?
Заполнение данными из верхней строки
 
Необходимо до заполнить таблицу данными из другой таблицы с заполнением пустых строк. Сложно описать, что нужно, легче показать. Поэтому прикрепил файл, где две таблицы. В первой заполняют в ручную, а вторая должна копироваться с небольшой поправкой. Не могу перенести с указанным заполнением столбцы A и B.
Какую применить функцию?
Бланк ОПИСИ, подсчёт ценности, Распределить равными частями объявленную ценность предметов
 
Доброго времени суток!

Сделать решил бланк описи. Всё вроде хорошо, но с формулой ценности в столбце «F», полная засада. 1 рубль я делю на равные части, т.е. два предмета: 50 + 50 копеек, 3 предмета: 34 + 33 + 33 копейки, 4 предмета: 25 + 25 + 25 + 25 и т.д.

И тут возникает 2 проблемы: 1-я, поделить на 6, уже не получается, у меня выходит 16*6=96, а это уже в сумме не 1 рубль. И так далее. Проблема сохраняется при внесении 6, 7... наименований.
2-я проблема - в ячейке «F19» - циклическая ссылка.
Перенос данных с одного листа в другой
 
Попробовал решить задачу с помощью формул, но понял, что это не реально.
В первом листе ведётся отчёт по контрагентам и по группам. А в листе "Реестр" нужно сделать выборку из 1-го листа. При чём если на 1-м листе стоит отметка "оплачено", его в реестр вносить не нужно.
Я во 2-м листе выделил цветом, что нужно взять из 1-го листа.
Если кто сможет помочь, или подскажет идею, буду крайне признателен.
Спасибо.
Пропало сочетание клавиш Ctrl+D
 
Дорогие форумчане, доброго времени суток!
У меня возникла проблема, перестало работать сочетание клавиш Ctrl+D. Я уже не только excel перезапустил, но и всю винду. Макрос на это сочетание не назначал. Все остальные сочетание работают как часы.  
Кнопка авто заполнения данными, VBA в EXCEL
 
Уважаемые форумчане!
я не специалист в программировании. Методом проб и ошибок, пытаюсь что то сваять. Но задача, которую мне нужно решить, оказалась для меня не по зубам. Помогите написать код.
Задача такая: В первой колонке фамилии сотрудников, во второй время их работы. В основном они работают с 8:00 до 17:00, но иногда бывает и задерживаются или отпрашиваются раньше с работы. Но суть не в этом. Мне нужно при клике на кнопку, заполнить столбец данными 8:00 и ниже 17:00.
Естественно с последующим редактированием.
Ещё было бы не плохо, что бы если фамилий нет, то там данные не заполнялись.
То что я смог сделать во вложении. Но там формула, кликом я вставляю формулу, а мне нужны только данные.
Плиз.
Страницы: 1
Наверх