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

Страницы: 1
Не запускается форма, ошибка 1004
 
Всем привет!
1. На рабочем компе перестала открываться форма по команде:
Код
Private Sub КН_Выбор_формы_Click()
    ОКНО_ВВОДА_ДАННЫХ.Show
End Sub

На других компах файл работает нормально.

2. Перестали работать новые формулы УНИК, СОРТ, и т.д. Вместо них появляется "_xlfn.XLOOKUP", если файл запущен не под админскими правами. Под админом работают формулы корректно.

Когда и после чего все началось - не вспомню. Но винду не хотелось бы переставлять.

Может подскажете, куда копать?
Изменено: Kirevg - 28.02.2025 14:50:52
Буквенные значения в сводной таблице
 
Всем привет!
Возможно ли в сводной таблице увидеть вместо нулей буквы, которые есть в таблице в ячейках, откуда сводная берет данные?

Интеллект предложил вот это, но оно не работает, что то надо докрутить.
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Dim wsData As Worksheet
    Dim wsPivot As Worksheet
    Dim pt As PivotTable
    Dim pi As PivotItem
    Dim cell As Range
    Dim lookupValue As String
    
    ' Укажите имя листа с исходными данными
    Set wsData = ThisWorkbook.Sheets("ИмяВашегоЛистаСДанными")
    
    ' Укажите имя листа со сводной таблицей
    Set wsPivot = ThisWorkbook.Sheets("ИмяВашегоЛистаСводнойТаблицы")
    
    ' Укажите имя сводной таблицы
    Set pt = wsPivot.PivotTables("ИмяВашейСводнойТаблицы")
    
    ' Перебираем все элементы сводной таблицы
    For Each pi In pt.PivotFields("ИмяВашегоПоля").PivotItems
        ' Проверяем значение в сводной таблице
        If pi.DataRange.Cells(1, 1).Value = 0 Then
            ' Ищем соответствующую букву в исходных данных
            lookupValue = wsData.Range("A1:A100").Find(pi.Name).Offset(0, 1).Value ' Замените диапазон на нужный
            pi.DataRange.Cells(1, 1).Value = lookupValue ' Заменяем ноль на букву
        End If
    Next pi
End Sub
Изменено: Kirevg - 27.02.2025 00:40:18
Цвет ячейки по нескольким условиям
 
Всем привет!
Никак логику придумать не могу.
Есть желание "покрасить" ячейки в столбце по условию:

Условие цвета ячеек в столбце "Часов"
В столбце Дата совпадают значения
В столбце ФИО совпадают значения
Если пусто, то ничего
Если сумма = 8 - зеленый
Если сумма = 12 или 16 - синий
Если сумма ≠ 8 или 12 или 16 - красный

В ячейке работает формула;

=И($C2<>"";СУММЕСЛИМН(C:C;A:A;$A2;B:B;$B2)=8)

Но в условном форматировании не получается.
Пример01.xlsx (10.46 КБ)
Изменено: Kirevg - 21.02.2025 00:24:18
Отображение простых дробей в ячейке с формулой
 
Привет.
После объединения значений нескольких ячеек нужно, что бы дробь отображалась как простая, а не десятичная.
Не работают функции 21 года, В офис 21 не работают функции 21 года
 
При открытии файла Excel, просто из папки не работают функции 21 года, но при открытии того же файла при запуске Excel через пуск или в безопасном режиме все работает. Полностью удалял Office ставил заново не помогло. Программу по умолчанию переназначал. Перерыл интернет ничего похожего нет, может кто сталкивался и знает "таблетку". Месяц назад все работало. На втором компе все работает как было.
PQ int64.type получить число в виде цифр
 
Всем привет!
Столкнулся с такой проблемкой. при преобразовании столбца в запросе PQ в таблицу возвращаются данные в виде "4,60705E+12", а хотелось бы в виде числа обычного. Только текстовый формат это делает, но он не числовой.

Код
form2 = Table.TransformColumnTypes(delerr,{{"Штрихкод.1", Int64.Type},

type number возвращает то же самое.

Что тут "подкрутить" можно? Аспект добавить? Но я их что то не "вкурил".
Вставить запрос PQ в код VBA с заданными переменными
 
Всем привет!
Суть задачи такова: получить данные из файла "Счет" в файл "Импорт" с помощью запроса PQ и кода на VBA. На VBA я набросал необходимое получение данных для запроса (путь к файлу в переменную и наценку), (если получится в PQ еще добавить колонку с наценкой из переменной - то вообще супер!), а как теперь встроить запрос и подставить туда переменную недотумкаю. Помогите, пожалуйста!
Еще хотелось бы, что бы данные вставлялись не в новый лист, а в активный, в те колонки, которые я создал.
Выбрать уникальные значения из диапазона и записать в сортированном виде в столбец
 
Всем привет!
Нужно выбрать уникальные значения из диапазона "M2:N20"  и записать в сортированном виде в столбец, начиная с "O2".
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    Dim Unique As New Collection
    Dim cellPaste As Range
    Dim i As Long
    Dim UniqueArray()
    
    With Worksheets("Лист1")
    Set cell = .Range("M2:N20")
    Set cellPaste = .Range("O2")
        For Each cell In Selection
        'формируем коллекцию из уникальных значений диапазона
            If cell.Value <> "" Then
                Unique.Add cell.Value, CStr(cell.Value)
            End If
        Next cell
    On Error GoTo 0
    
    ReDim UniqueArray(1 To Unique.Count, 1 To 1)
    'переносим уникальные значения в массив
        For i = 1 To Unique.Count
            UniqueArray(i, 1) = Unique.Item(i)
        Next i
    'определяем диапазон для вставки
    Set cellPaste = Range(cellPaste, cellPaste.Offset(Unique.Count - 1, 0))
    'вставляем массив в диапазон
        cellPaste.Value = UniqueArray
    
    End With
Из ячейки значения разделенные в столбец
 
Всем привет!
Есть ячейка в которой динамически записываются значения вида (количество и разрядность может быть разной, разделитель всегда один "_")
Код
  439_352_455_616_609_352_625_616 

Нужна формула, что бы цифры записались в ячейки столбца.

Код
439
352
455
616
609
352
625
616 
Изменено: Kirevg - 14.08.2023 15:01:44
Расчёт суммы либо разности от значения в заголовке
 
Всем привет!
Нужно произвести расчет в колонке "Результат" в зависимости от заголовка остальных колонок. Если там не "Заказ" - то суммируем значения строк, если аказ", то вычитаем. Количество колонок со временем увеличивается либо уменьшается.
Сортировка таблицы, Сортировка цифр, как мы привыкли
 
Всем привет! Можно "научить" сортировать не "по-компьютерному"?
Запись в ячейку разными шрифтами, Возможно ли сделать запись в ячейку с помощью кода VBA текстовое значение разными шрифтами?
 
Всем привет!
Есть запись в ячейку с помощью строки кода:
Код
.Range("C16").Value = "Марка: " & a(Str, 6) & ", Гос.номер: " & a(Str, 7) & u 

Так вот, хотелось бы значение переменной "a(Str, 7)" записать другим шрифтом, а далее значение переменной "u" опять изначальным.

Может это и извращение, но все же!

Формат даты в ячейке, не получается настроить формат даты
 
Привет! Прошу помочь!
Нужно задать формат ячейки в виде "ДД.ММ.ГГ"
Причем если значение пустое, то и ячейка должна остаться пустой.
У меня или одно работает или другое.
Код
Private Sub Кнопка_Записать_Click()
        
        Dim dt As Date
        On Error Resume Next
        dt = Надпись_Дата.Caption
        Range("B3").Value = dt
                
        Range("B5").Value = Надпись_Дата.Caption
        Range("B5").NumberFormat = "dd.mm.yy"
        
End Sub
Заполнение печатной формы и вывод на печать
 
Всем привет! Опять к вам за помощью!
При выборе строки в первом ListView (Лист_Заявки) информация по кнопке "Вниз" добавляется в во второй ListView (Лист_Печати). Нужно теперь сделать так, что бы добавленная инфа из второго ListView (Лист_Печати) по кнопке "Печать" захватывала информацию с Листа "База" (соответственно по фамилии водителя), заполняла печатную форму на листе "ПечатьЗаявка" и выводилась на предварительный просмотр перед печатью.
Для меня это пока сложновато. Прошу помощи! Пока написал вывод на печать.
Код
Private Sub Кнопка_Печать_Click()
'
'Вот тут будет код заполнения печатной формы.
'
'
Sheets("ПечатьЗаявка").Select 'сначала выделяем нужный лист
ФормаВвода.Hide
Application.Dialogs(xlDialogPrint).Show
Sheets("Заявки").Select
ФормаВвода.Show
End Sub
Изменено: Евгений Киреев - 01.05.2023 11:56:29
Сортировка на неактивном листе., При запуске формы при активном листе, там где таблица код работает, но если запускать с неактивного то ругается.
 
Здравствуйте!
Помогите прописать сортировку на соседнем листе. Как правильно к нему обращаться? При запуске формы при активном листе, там где таблица код работает, но если запускать с неактивного то ругается.
Код
' Кнопка выход
Private Sub CommandButton6_Click()
'================= Сортировка таблицы ====================
    With Worksheets("Таблица1")
    .Range("A4:G" & .Cells(Rows.Count, 1).End(xlUp).Row).Sort Key1:=Range("B3"), _
    Header:=xlYes, Orientation:=xlTopToBottom
    End With
'================= Закрыть окно ==========================
    Unload Forma
    ActiveWorkbook.Save
End Sub
VBA ругается на lvwColumnLeft в ListView, В одном файле ругается, а в другом нет
 
Всем привет! Столкнулся с непонятной вещью. В одном файле ListView корректно работает с lvwColumnLeft, а в другом нет. Я копировал через экспорт/импорт и редактировал под файл.
Код
Private Sub UserForm_activate()
    Dim a, r&, c&
            ' Скопировать диапазон в массив a()
    With Sheets("Счета")
        a = .Range(.Cells(.Rows.Count, "B").End(xlUp), "D1").Value
            ' Программно заполнить ListView
        With Me.ListView1
            ' На всякий случай очистить ListView
            .ListItems.Clear
            .ColumnHeaders.Clear
            ' Добавить заголовок
            .ColumnHeaders.Add , , a(2, 2), 70, lvwColumnLeft
            .ColumnHeaders.Add , , a(2, 3), 80, lvwColumnCenter
            .ColumnHeaders.Add , , a(2, 4), 300, lvwColumnLeft
            .ColumnHeaders.Add , , a(2, 5), 110, lvwColumnRight
            ' Заполнить строки и колонки из таблицы
        For r = 2 To UBound(a)
            c = 1
            .ListItems.Add , , Format(a(r, c), "DD.MM.YY")
            c = c + 1
            .ListItems(r - 1).ListSubItems.Add , , a(r, c)
            c = c + 1
            .ListItems(r - 1).ListSubItems.Add , , a(r, c)
            c = c + 1
            .ListItems(r - 1).ListSubItems.Add , , Format(a(r, c), "#,##0.00")
        Next
        End With
    End With
End Sub
Внесение данных в ListBox не с текущего листа.
 
Всем привет!
Весь день бьюсь - не могу записать правильно код. С текущего листа работает а если активен другой лист при запуске макроса, то не верно работает. Подскажите, как правильно записать?
Код
Private Sub UserForm_Initialize()
'Автонумерация непустых строк
    With Worksheets("Temp")
.Range("A2") = 1
Dim i As Long
i = 2
Do Until .Cells(i, 1) = ""
.Cells(i, 1) = i - 1
i = i + 1
Loop

' Выводим значения таблицы в ListBox1
Dim s As Long, t 'создаем переменные LastRow As Long,
LastRow = i - 1
'LastRow = Worksheets("Temp").Range("A2").End(xlDown).Row 'ищем номер последней непустой строки
t = "A2:E" & LastRow
' t = "Temp.Cells(1, 1), Temp.Cells(LastRow, 5)"

With Me.ListBox1
'Указываем, что у нас 5 столбцов
.ColumnCount = 5
'Задаем размеры столбцов
.ColumnWidths = "40;240;50;60;60"
'Указываем, что нужна строка заголовков
.ColumnHeads = True
'Импортируем данные
.RowSource = t
.ListIndex = 0
End With
i = 2
Do Until .Cells(i, 1) = ""
Temp.Cells(i, 5) = Temp.Cells(i, 3) * Temp.Cells(i, 4)
i = i + 1
Loop
TextBox3.Text = WorksheetFunction.Sum(Range(.Cells(2, 5), .Cells(LastRow, 5)))
TextBox3.Text = Strings.Format(Val(TextBox3.Text), "#,##0.00")


End With
End Sub
Код не ищет в двух последних строках таблицы, при выборе номера счета в КомбоБоксе не удается коду найти две последние строки
 
И снова здравствуйте!
Тренируюсь на файле и столкнулся с тем что при выборе номера счета  в КомбоБоксе не удается коду найти две последние строки диапазона таблицы.
Подскажите, что не так?
Код
'   Выпадающий список "Поиск счета"
Private Sub cmbVibor_Change()
    Dim psk As Long, p As Long
    With Worksheets("Таблица1")
        psk = Worksheets("Таблица1").Range("B4").CurrentRegion.Rows.Count
        For p = 4 To psk
    If Trim(Лист1.Cells(p, 2)) = Trim(cmbVibor.Text) Then
       SpinButton1.Value = p
       Exit For
    End If
    Next p
    End With
End Sub
Записать в ComboBox значение формулы ячейки
 
Всем привет! Нужно записать в ComboBox значения, как мы пишем в "проверку данных".
В ячейке "А2" на листе "Служ" есть формула:
Код
=СОРТ(УНИК(Работы[Счет]))
На соседнем листе в ячейке стоит проверка данных с формулой ниже и все работает:
Код
=Служ!$A$2#

А как в VBA это записать?

Код
Private Sub UserForm_Initialize()
Me.ComboBox8.List = Worksheets("Служ").Range("A2").CurrentRegion.Rows.Count
End Sub

Не работает.

Сделать урок по созданию пользовательской расширенной формы поиска, фильтра и редактирования.
 
Доброго времени суток!
Искал на просторах русскоязычного интернета что то подобное, как на видео, но не нашел.
Было бы неплохо получить такой урок от гуру этого форума и сайта!
Сортировка таблицы макросом, ошибка метода сортировки .Sort
 
Привет! Опять я!  :)
В соседней ветке мне помогли с кодом на сортировку таблице - все работает. Тут я взял этот же код, вставил в макрос на таблицу на соседний лист, прописал диапазон таблицы, а тут не работает. Ругается. Прошу помочь. Что я не так опять сделал? Вроде все идентично. Лист "Счета" в приложенном файле.

Код
' ========================= Кнопка Закрыть =================================
Private Sub CommandButton1_Click()
'================= Закрыть окно ==========================
    Vvod.Hide
'================= Сортировка таблицы ====================
    Range("B3:AF" & Cells(Rows.Count, 1).End(xlUp).Row).Sort Key1:=Range("B2"), _
    Header:=xlYes, Orientation:=xlTopToBottom
End Sub
Сортируется заголовок таблицы, как избежать?
 
Здравствуйте!
У меня в макросе есть код сортировки таблицы, который должен срабатывать по кнопке, закрывающей UserForm1.
Заголовок умной таблицы расположен в диапазоне A4:H4. Таблица, соответственно, постепенно заполняется.
Прошу поправить код, дабы заголовок не попадал в сортировку. Что я не так сделал?
Код
' ========================= Кнопка Закрыть =================================
Private Sub CommandButton2_Click()
'================= Закрыть окно ==========================    
    UserForm1.Hide
'================= Сортировка таблицы ====================
    Range("A5:H" & Cells(Rows.Count, 1).End(xlUp).Row).Sort Key1:=Range("A4"), _
    Orientation:=xlTopToBottom

End Sub
Почему при выполнении макроса отключается NumLock?, При использовании макроса отключается NumLock
 
Всем привет! Вот такая закавыка вылезла у меня: на листе "Работы" есть макрос ввода и записи данных в таблицу. Так вот, при выборе месяца в календаре отключается NumLock, который нужно опять включать кнопкой на клавиатуре. Проявляется на всех компьютерах, на которых пробовал. Может полечим вместе?
Изменено: Юрий М - 17.03.2023 22:59:13
Формула ФИЛЬТР и диапазон дат
 
И снова здравствуйте!
Теперь у меня такая проблема: открыл для себя динамические массивы и они очень понравились. Но вот в чем загвоздка - с данными я еще как то освоился, а вот с датами - нет. Поэтому в тестовом файле прошу помочь с написанием формулы для того, что бы можно было выводить массив с фильтром по диапазону дат. В частности за календарный месяц отбор, как в выпадающем списке.
Автозаполнение столбца данными, удалив дубликаты и отсортировав по возрастанию
 
Здравствуйте! И снова у меня задача возникла, правда тут не знаю с какого конца подходить.
Нужно сделать автозаполнение данными из первого столбца таблицы на листе"Sheet1" в первый столбец в таблице на "Лист1", удалив дубликаты и отсортировав по возрастанию. Это реально?
Значения календаря не вставляются в текстбокс
 
Привет всем! Опять мучаюсь с кодом. Скопировал календарь из соседней темы, установил. Он у меня открывается но дату вводить в текстбокс никак не хочет.
Лист "Работы" - Открыть форму ввода данных - двойной щелчок по полю тексбокса напротив "дата". До этого момента работает. Потом все. Укажите, пожалуйста ошибку в коде и решение! Спасибо заранее!
Еще нужно запрет на ввод руками в свойствах проставить - подскажите параметр, плз.
Вставить в ComboBox значения из таблицы на другом листе
 
Всем привет!
Что то бьюсь долго, а никак не пойму, знаний пока маловато как заполнить список в комбобоксе из таблицы из именованного диапазона. Если в таблице количество строк меняется или данные, что бы в списке комбобокса тоже менялось.
Код
Private Sub UserForm_Initialize()
    
    Dim a As Range
    Set a = Range("Штат[ФИО]").Value
    ComboBox1.List = a
    
End Sub
Изменено: Евгений Киреев - 11.03.2023 13:25:29
Привязка выполнения макроса к состоянию выключателя (кнопки), Привязка выполнения макроса к состоянию выключателя (кнопки)
 

Здравствуйте!

Есть макрос, скрывающий пустые строки.

Хочется подвязать его выполнение к Выключателю, что бы в нажатом состоянии скрытие выполнялось, а в отпущенном, не выполнялось и все строки, если были скрыты до этого, должны раскрыться.

Код
 Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("C8:C17")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

Private Sub Кнопка1_Click()
    If Кнопка1 = True Then
    'Макрос Worksheet_Change выполняется
    Else
    'Макрос Worksheet_Change не выполняется и все строки,
    'если были скрыты до этого, должны раскрыться.
    End If
End Sub
Изменено: Евгений Киреев - 09.03.2023 00:48:18
Автоматически записать в ячейку название файла без расширения, Автоматически записать в ячейку название файла без расширения
 
Подскажите, как лучше прописать формулу. А то в инете все примеры с расширением.
И еще как часть имени файла выдрать из названия, например следующие 4 знака после символа"№" или следующие, пропустив первый символ после символа"№" и до символа"."?
Заранее благодарен!
Страницы: 1
Наверх