Всем привет! Столкнулся со следующей проблемой. Вроде пустяк, но расчёт excel почему то делает не верный, а как исправить, не могу понять.
Вот в чём вопрос: Есть формула, внутри которой условие, если остаток от деления 0, то выполнять действие такое-то, в противном случае иное. Но при вычислении деления 2 / 0,4 — остатка быть не должно. Делиться ровно на 5 частей, но формула:
Код
=ОСТАТ(2;0,4)
выдаёт остаток 0,4, и дальнейший расчёт летит в трубу. В чём подвох, и как его исправить???
Дорогие форумчане! Подобные решения есть, но ни как не могу применить к моей задачи. Прошу помощи. Есть у меня такие макросы для вывода на печать листов:
Код
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)) и во второй строке аналогично? Файл прилагаю.
Есть три 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 части. Но как это написать кодом? Подскажите пожалуйста.
Всем доброго! Есть умная таблица. В ней несколько столбцов. В первый я ввожу наименование организации. Во второй её ИНН Если такая компания уже есть, то ИНН должен автоматом заполнить 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, вообще всё перестало работать. Ногами сильно не бейте, просто укажите, где ошибка? Я только учусь.
Задача такая, есть форма для заполнения заказа (часть кода во вложении). При её вызове, в TextBox (№ Заказа) должен по умолчанию отображаться следующий номер из столбца (№ Order) в умной таблице. В таблице столбцы: № Order; Data; Company и т.д. Если заполнено к примеру 16 строк с различными данными, то при вызове формы, в TextBox (№ Заказа) по умолчанию стоит - 17... Если же при нажатии на кнопку ввода данных в таблицу номер к примеру уже существует в таблице, то выскочить должно предупреждение типа: «Данный номер присутствует в базе, желаете его переписать?» Соответственно если «ОК», то строка с этим номером переписывается, если «Cancel» то возврат к форме.
P.S. И у меня ошибка в работе макроса AddGp(), вроде всё правильно написал, но он ListObjects - не определяет... Не могу понять причину. Но это не особо важно, Но если кто укажет на ошибку, буду тоже крайне признателен.
Всем доброго дня. Не прошло и нескольких десятков лет и пришлось погрузиться в изучение 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 мне нужно перенести отдельно дату и отдельно месяц Я использую код: { MERGEFIELD Data \@ "MMMM" } и у меня результат например следующий: сентябрь А мне нужно: сентября Когда же использую код: { MERGEFIELD Data \@ "dd MMMM yyyy" } то месяц в записи отображается правильно: 05 сентября 2020
Вообще можно бы обойтись и не разделяя месяц от даты, но мне нужно дату заключить в кавычки, т.е. должен получиться следующий результат: « 05 » сентября 2020 года
У меня загвоздка не большая. Может кто уже решал такую задачу, поделитесь идеей.
У меня есть выпадающий список с мультивыбором, но мне так же нужно, что бы в соседнюю ячейку наполнялись данные из соседних столбцов заданной таблицы. Комментарии к файлу: В книге 2 листа, на листе «Материалы» я создал таблицу «SERT». На первом листе, я выбираю из первого столбца таблицы «SERT[Name]» материалы, а во второй нужно чтобы выпадали данные из второй таблицы «SERT[Pass]».
Всем привет. Решил, что для решения моих задач формулы не помогают, нужно изучить 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. Залил сюда урезанную версию файла. Задача не простая, сам не справлюсь. Вознаграждение готов обсудить в личке.
Всем доброго времени суток! Уже мозг плавится. Не могу поймать мысль, может кто нибудь поможет. Есть таблица "A1:B60". В столбец "A", данные берутся из другой таблицы, которая расположена в столбце "D".
А вот в столбец "G", нужно внести все уникальные данные, которые могут соответствовать Контрагенту внесённому в ячейку F2 из столбца "B" таблицы "A1:B60"
Т.е. если я ввожу в ячейку F2 - СпецТранс (ООО), то в столбце G, должен появится список: ОХР; Ш.6; Ш.25 если в ячейке F2 - Бонус (ООО), то список состоит из одной позиции: Ш.25
Короче, из таблицы "A1:B60" выдёргиваются все уникальные данные столбца "B", если они соответствуют параметру ячейки F2 в столбце "A".
Может криво объяснил, но посмотрите таблицу из примера. Надеюсь сообразите, что мне нужно...
Проблема в следующем. Нужно установить фиксацию времени на выполнение задачи. Описываю идею: запускаю кнопкой начало выполнения заданий. Как только задание выполнено правильно и в соответствующей ячейки у меня появляется смайл, то рядом показывается время в минутах и секундах затраченное на выполнение примера. По правильном завершении второго задания, происходит такой же процесс и т.д. По завершении всех заданий, отображается общее затраченное время. Пробовал через функцию =ТДАТА(), т.е обновлял функцию нажатием кнопки. Думал, что она будет фиксированной, но к сожалению данные в ячейке меняются после внесения любых данных в любую из ячеек. Ни чего другого придумать не смог. С VBA - не знаком, поэтому если есть возможность формулами достичь нужного результата, подскажите. Большое спасибо.
Доброго времени суток. Пытаюсь сделать, но формула получается очень длинная. Да ещё приходится добавлять дополнительные столбцы. Может кто нибудь сможет предложить решение попроще. Итак сама задача. Есть четыре столбца с данными. Когда в столбце «МАТ.» прописывается: М или К, то нужно решение: 1. Произвести поиск в столбце «Хар.» и вставить данные столбца «Кол-во» в столбец «ИТОГ» напротив строк с М или К. 2. При этом если М или К соответствуют какому-то коду, то что бы поиск происходил только к рамках этого кода.
По ходу косоязычно объяснил.... , надеюсь, что в прикреплённом файле всё понятно. Я даже стрелочками указал и цветами, что на что влияет. Голова кругом. Не могу найти нормального решения. Спасибо.
Задача оказалась не такая простая как я думал изначально. Своих решений не описываю, так как они не привели к нужному результату.
Вопрос в следующем, как в столбце 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. Я уже не только excel перезапустил, но и всю винду. Макрос на это сочетание не назначал. Все остальные сочетание работают как часы.
Уважаемые форумчане! я не специалист в программировании. Методом проб и ошибок, пытаюсь что то сваять. Но задача, которую мне нужно решить, оказалась для меня не по зубам. Помогите написать код. Задача такая: В первой колонке фамилии сотрудников, во второй время их работы. В основном они работают с 8:00 до 17:00, но иногда бывает и задерживаются или отпрашиваются раньше с работы. Но суть не в этом. Мне нужно при клике на кнопку, заполнить столбец данными 8:00 и ниже 17:00. Естественно с последующим редактированием. Ещё было бы не плохо, что бы если фамилий нет, то там данные не заполнялись. То что я смог сделать во вложении. Но там формула, кликом я вставляю формулу, а мне нужны только данные. Плиз.