Всем привет! 1. На рабочем компе перестала открываться форма по команде:
Код
Private Sub КН_Выбор_формы_Click()
ОКНО_ВВОДА_ДАННЫХ.Show
End Sub
На других компах файл работает нормально.
2. Перестали работать новые формулы УНИК, СОРТ, и т.д. Вместо них появляется "_xlfn.XLOOKUP", если файл запущен не под админскими правами. Под админом работают формулы корректно.
Когда и после чего все началось - не вспомню. Но винду не хотелось бы переставлять.
Всем привет! Возможно ли в сводной таблице увидеть вместо нулей буквы, которые есть в таблице в ячейках, откуда сводная берет данные?
Интеллект предложил вот это, но оно не работает, что то надо докрутить.
Код
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
Всем привет! Никак логику придумать не могу. Есть желание "покрасить" ячейки в столбце по условию:
Условие цвета ячеек в столбце "Часов" В столбце Дата совпадают значения В столбце ФИО совпадают значения Если пусто, то ничего Если сумма = 8 - зеленый Если сумма = 12 или 16 - синий Если сумма ≠ 8 или 12 или 16 - красный
В ячейке работает формула;
=И($C2<>"";СУММЕСЛИМН(C:C;A:A;$A2;B:B;$B2)=8)
Но в условном форматировании не получается. Пример01.xlsx(10.46 КБ)
При открытии файла Excel, просто из папки не работают функции 21 года, но при открытии того же файла при запуске Excel через пуск или в безопасном режиме все работает. Полностью удалял Office ставил заново не помогло. Программу по умолчанию переназначал. Перерыл интернет ничего похожего нет, может кто сталкивался и знает "таблетку". Месяц назад все работало. На втором компе все работает как было.
Всем привет! Столкнулся с такой проблемкой. при преобразовании столбца в запросе PQ в таблицу возвращаются данные в виде "4,60705E+12", а хотелось бы в виде числа обычного. Только текстовый формат это делает, но он не числовой.
Всем привет! Суть задачи такова: получить данные из файла "Счет" в файл "Импорт" с помощью запроса 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
Всем привет! Нужно произвести расчет в колонке "Результат" в зависимости от заголовка остальных колонок. Если там не "Заказ" - то суммируем значения строк, если "Заказ", то вычитаем. Количество колонок со временем увеличивается либо уменьшается.
Привет! Прошу помочь! Нужно задать формат ячейки в виде "ДД.ММ.ГГ" Причем если значение пустое, то и ячейка должна остаться пустой. У меня или одно работает или другое.
Код
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
Здравствуйте! Помогите прописать сортировку на соседнем листе. Как правильно к нему обращаться? При запуске формы при активном листе, там где таблица код работает, но если запускать с неактивного то ругается.
Код
' Кнопка выход
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
Всем привет! Столкнулся с непонятной вещью. В одном файле 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
Всем привет! Весь день бьюсь - не могу записать правильно код. С текущего листа работает а если активен другой лист при запуске макроса, то не верно работает. Подскажите, как правильно записать?
Код
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
Доброго времени суток! Искал на просторах русскоязычного интернета что то подобное, как на видео, но не нашел. Было бы неплохо получить такой урок от гуру этого форума и сайта!
Привет! Опять я! В соседней ветке мне помогли с кодом на сортировку таблице - все работает. Тут я взял этот же код, вставил в макрос на таблицу на соседний лист, прописал диапазон таблицы, а тут не работает. Ругается. Прошу помочь. Что я не так опять сделал? Вроде все идентично. Лист "Счета" в приложенном файле.
Код
' ========================= Кнопка Закрыть =================================
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, который нужно опять включать кнопкой на клавиатуре. Проявляется на всех компьютерах, на которых пробовал. Может полечим вместе?
И снова здравствуйте! Теперь у меня такая проблема: открыл для себя динамические массивы и они очень понравились. Но вот в чем загвоздка - с данными я еще как то освоился, а вот с датами - нет. Поэтому в тестовом файле прошу помочь с написанием формулы для того, что бы можно было выводить массив с фильтром по диапазону дат. В частности за календарный месяц отбор, как в выпадающем списке.
Здравствуйте! И снова у меня задача возникла, правда тут не знаю с какого конца подходить. Нужно сделать автозаполнение данными из первого столбца таблицы на листе"Sheet1" в первый столбец в таблице на "Лист1", удалив дубликаты и отсортировав по возрастанию. Это реально?
Привет всем! Опять мучаюсь с кодом. Скопировал календарь из соседней темы, установил. Он у меня открывается но дату вводить в текстбокс никак не хочет. Лист "Работы" - Открыть форму ввода данных - двойной щелчок по полю тексбокса напротив "дата". До этого момента работает. Потом все. Укажите, пожалуйста ошибку в коде и решение! Спасибо заранее! Еще нужно запрет на ввод руками в свойствах проставить - подскажите параметр, плз.
Всем привет! Что то бьюсь долго, а никак не пойму, знаний пока маловато как заполнить список в комбобоксе из таблицы из именованного диапазона. Если в таблице количество строк меняется или данные, что бы в списке комбобокса тоже менялось.
Код
Private Sub UserForm_Initialize()
Dim a As Range
Set a = Range("Штат[ФИО]").Value
ComboBox1.List = a
End Sub
Хочется подвязать его выполнение к Выключателю, что бы в нажатом состоянии скрытие выполнялось, а в отпущенном, не выполнялось и все строки, если были скрыты до этого, должны раскрыться.
Код
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
Подскажите, как лучше прописать формулу. А то в инете все примеры с расширением. И еще как часть имени файла выдрать из названия, например следующие 4 знака после символа"№" или следующие, пропустив первый символ после символа"№" и до символа"."? Заранее благодарен!