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

Страницы: 1
Число из ячейки выписать в Textbox
 
sivet, спасибо работает. А как теперь сделать не нажатию отдельной кнопки вызов UF, а по двойному клику на определенной ячейке
Число из ячейки выписать в Textbox
 
Добрый вечер всем. В процессе работы возник вопрос, каким образом можно выбрать число из ячейки и записать его в определенный TextBox.
Потратив N-ное количество времени был найден макрос который выбирает из ячейки числа и записывает их в другую ячейку. Но как решить вопрос что бы данные числа попадали в TextBox, я не понимаю.

Пы.Сы. В примере ниже прописана конкретная ячейка, из которой данные попадают в TextBox, а хотелось бы, что бы попадали из разных
Изменено: Михаил Б - 02.12.2023 09:13:35
При изменении оператора, макрос перестает полноценно работать
 
Дмитрий(The_Prist) Щербаков, Прошу прощения. Сам затупил. Изменил в первой строчке "рога" на "копыта"... в строчке в которой условие и так не выполнялось. Сейчас в другой строчке поменял и все норм. Еще раз прошу прощения.
При изменении оператора, макрос перестает полноценно работать
 
Дмитрий(The_Prist) Щербаков, значит флаг, получается, необходим.  Понял, спасибо.
Правда еще вопрос возник. При изменении имени в 18 столбце "перерасчет" условий не происходит и макрос так же продолжает считать по старому. Т.е. если "рога" сменить на "копыта" макрос почему то считает что там "рога". почему так и как это исправить?
При изменении оператора, макрос перестает полноценно работать
 
Цитата
Дмитрий(The_Prist) Щербаков, написал:
Вы лучше поясните, что именно кодом добиться хотите
эта таблица является копией оригинальной рабочей таблицы. Допустим есть ряд компаний, есть дата заказа и дата поставки, и срок поставки в днях (на другом листе)
Смысл работы макроса, по задумке такой:  при нажатии на кнопку макрос должен сверить название компании на Листе1 с Листом2, если находится совпадение, то путем разницы дат он должен оставить строки в которых поставка осуществлена раньше сроков (указаны на листе 2), а так же пустые строки.
Например: Например компания Рога должна поставить в течении 90 дней. Заказали, допустим 01.02.2023, а поставили 04.04.2023 (т.е за ~60 дней) что является не соответствием 90 дней. Вот эту строчку он и должен оставить.
Если например поставка была через 95 дней, то ее он должен скрыть.
При повторном нажатии на кнопку, данный фильтр должен быть сброшен (отображены все строки)
При изменении оператора, макрос перестает полноценно работать
 
Дмитрий(The_Prist) Щербаков, так я и пытался изменить проверку условия, заменив Rows®.Hidden = False на Rows.EntireRow.Hidden = False, по логике (как минимум моей) указав, что если строки видны, то делай проверку и необходимое скрывай. Т.е выглядело это так:
Код
If Rows.EntireRow.Hidden = False Then    
      Do While Not IsEmpty(Cells(r, 1))
      iK = Cells(r, 18) ' название компании
      fk = FindVal(iK)
      ddiff = Cells(r, 24) - Cells(r, 14)
      If Not IsEmpty(Cells(r, 24)) And ddiff >= fk Then
          Rows(r).Hidden = True  ' FindVal(iK) - это число связанное на втором листе с названием компании iK
      End If
      r = r + 1
    Loop
Но эффекта 0 и даже меньше. Скорее всего, я не понимаю, что мне нужно исправить, что бы оно заработало :) И если честно с vba дружу чуть-чуть
При изменении оператора, макрос перестает полноценно работать
 
Дмитрий(The_Prist) Щербаков, я пробовал условие, по которому скрывать изменять строки на  Rows.EntireRow.Hidden, но эффекта не последовало
Изменено: Михаил Б - 11.09.2023 18:00:36
При изменении оператора, макрос перестает полноценно работать
 
Экс-экс-экс, даже если поменять в двух строчках с "<=" на ">=" , то макрос все равно работает некорректно
При изменении оператора, макрос перестает полноценно работать
 
Всем добрый день! Знатоки эксель, подскажите. Имеется часть кода, которая работает как часы (т.е при первом нажатии на кнопку оставляет строки которых значение ВЫШЕ заданного значения и оставляет пустые строки. При повторном нажатии все сбрасывает до изначального вида)
Код
Dim r&, k&, iK As String
  
  r = 3
  ThisWorkbook.Worksheets("Лист1").Select
  
  If Rows(r).Hidden = False Then
  Do While Not IsEmpty(Cells(r, 1))
    iK = Cells(r, 18) ' название компании
    If Not IsEmpty(Cells(r, 24)) And Cells(r, 24) - Cells(r, 14) <= FindVal(iK) Then Rows(r).Hidden = True  ' FindVal(iK) - это число связанное на втором листе с названием компании iK
    r = r + 1
  Loop
  
  Else
    If Rows(r).Hidden = True Then
        Do While Not IsEmpty(Cells(r, 1))
          iK = Cells(r, 18) ' название компании
          If Not IsEmpty(Cells(r, 24)) And Cells(r, 24) - Cells(r, 14) <= FindVal(iK) Then Rows(r).Hidden = False
          r = r + 1
        Loop
    End If
  End If
Но! При изменении оператора "<=" на ">=" в этой строчке (т.е что бы при первом нажатии на кнопку оставлялись строки которых значение НИЖЕ заданного значения  и оставлялись пустые строки)
Код
If Not IsEmpty(Cells(r, 24)) And Cells(r, 24) - Cells(r, 14) <= FindVal(iK) Then Rows(r).Hidden = False
перестает выполнятся условие Else (при повторном нажатии на кнопку отображаются только скрытые столбцы)
не могу понять в чем проблема и почему так происходит.

P.S. Работа макроса специально завязана на одну кнопку
Обработка (фильтр) таблицы при сравнении дат
 
вопрос решен, тему можно закрыть
Обработка (фильтр) таблицы при сравнении дат
 
вопрос актуальный
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, или другие знатоки подскажите пожалуйста, во время переноса данного макроса на основную книгу, он перестал работать и я пытаюсь понять почему?

UPD. понял что ошибка появилась и перестал работать макрос после того, как я переименовал значения в 18 столбце, убрав числа. Как исправить код не пойму- не хватает знаний
Код
Sub FilterCells() 'выделение и отображение ячеек не выполняющих условие и отображение пустых ячеек

  Dim r&, k, iK&
  
  k = ThisWorkbook.Worksheets("Лист2").Cells(1, 13).CurrentRegion: r = 3
  
  If Rows(r).Hidden = False Then
  Do While Not IsEmpty(Cells(r, 1))
    iK = Val(Right(Cells(r, 18), 1)) + 1
    If Not IsEmpty(Cells(r, 24)) And Cells(r, 24) - Cells(r, 14) <= k(iK, 2) Then Rows(r).Hidden = True
    If Cells(r, 24) - Cells(r, 14) > k(iK, 2) Then Cells(r, 24).Interior.Color = RGB(255, 204, 204)
    r = r + 1
  Loop
  Else 'сброс фильтра при повторном нажатии кнопки
  If Rows(r).Hidden = True Then
  Do While Not IsEmpty(Cells(r, 1))
    iK = Val(Right(Cells(r, 18), 1)) + 1
    If Not IsEmpty(Cells(r, 24)) And Cells(r, 24) - Cells(r, 14) <= k(iK, 2) Then Rows(r).Hidden = False
    If Cells(r, 24) - Cells(r, 14) > k(iK, 2) Then Cells(r, 24).Interior.Color = xlNone
    r = r + 1
  Loop
  End If
  End If
  
End Sub
Изменено: Михаил Б - 07.09.2023 00:12:01
Обработка (фильтр) таблицы при сравнении дат
 
Выпив и рассудив трезво, у меня получилось решить вопрос по фильтру с условиями указанными выше, а так же сделать сброс фильтра на одну кнопку. Если кому понадобится, прилагаю файл. Если у профи появятся предложения или замечания по работе макроса, приму к сведению
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, прошу прощения, но вынужден снова обратится за помощью. Я попытался добавить в фильтр на выделение ячеек, не выполняющих условие, так же и фильтр на их отображение и отображение пустых ячеек. Но при выполнении макроса отображаются только пустые ячейки.

Так же не смог понять как сделать, что бы при повторном нажатии на кнопку, фильтр сбрасывался полностью (показывал все ячейки и снималось выделение). Получилось понять как это сделать только со столбцами
Изменено: wit4er32 - 06.09.2023 13:41:35
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, спасибо огромное! я разобрался. Буду дальше решать задачи
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, внес данный код, и теперь он все ячейки, кроме пустых заливает красным. Даже если условие выполняется. Либо так и должно быть по коду, либо я ничего не понял
Изменено: wit4er32 - 01.09.2023 13:43:34
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, сейчас выделяется вся строка красным при найденном несоответствии, а хотелось бы что бы вместо строки выделялась только ячейка, например в столбце 5  
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, прошу прощения не правильно выразился, Имелось ввиду, конкретная ячейка, где было выявлено нарушение. И как можно сделать что бы обработка прошла заново если, например, компания 1 поменять на компанию 4?
Изменено: wit4er32 - 31.08.2023 17:07:30
Обработка (фильтр) таблицы при сравнении дат
 
Ігор Гончаренко, огромное спасибо. Только попрошу объяснить, что означает r = 6, и как можно сделать что бы выделялась не вся строка, а только конкретная ячейка?
Обработка (фильтр) таблицы при сравнении дат
 
Всем добрый день. Перелопатив кучу ссылок в интернете и не найдя ответа на свой вопрос, обращаюсь к вам. Не могу понять как прописать на кнопку макрос, который бы при нажатии,  сравнивал между собой указанные даты, проверял заданное условие, и если оно не выполняется, то отображал только те строки где найдено нарушение и выделял иным цветом.

например: Компания 1 поставляет товар в течении 3 дней. В графе дата заказа указано :01.07.2023 а в графе дата поставки 07.07.2023, Если сроки в 3 дня не нарушены, то после обработки эта строка исчезает, а если нет, то подсвечивается красным (например)
[ Закрыто] Волшебный Combobox
 
Всем профессионалам и гуру Exsel, привет! Подскажите, пожалуйста, новичку (5 день в vba exsel).  Имеется задача, а как решить мозгов не хватает.
Итак, имеется Combobox. по задумке надо вручную вносить в этот Combobox данные ФИО, которые впоследствии в нем сохранялись и, в случае повтора ввода аналогичных данных, выдавалось предупреждение. При чем эти данные должны хранится продолжительное время.

Пока я моих догадок хватает на то, что данные из Combobox должны попадать в какую-то умную таблицу и оттуда же браться... а как это реализовать не понятно. Да и возможно ли это?
Страницы: 1
Наверх