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

Страницы: 1
Суммирование уникальных данных
 
Уважаемые гуру форума, помогите с решением задачи. В таблице на листе "товарный отчет" происходит выборка данных способом, описанном в приемах данного форума ("Многоразовый ВПР" ;)  по формуле массива:
=ЕСЛИОШИБКА(ИНДЕКС(Запчасти!$B$3:$B$20;НАИМЕНЬШИЙ(ЕСЛИ($C$5=Запчасти!$A$3:$A$20;СТРОКА(Запчасти!$B$3:$B$20)-2;"" ;) ;СТРОКА()-53));"" ;)
и все бы хорошо, но требуется, что бы при повторении позиций (в данном случае номера 24-44ОЕ) эта самая позиция показывалась только один раз, а цифры по повторяющимся позициям оказались бы сложенными, т.е. в данном случае не 4950, 2050, 2490 тремя строками, а 9490 одной строкой. Как это сделать? Заранее спасибо всем откликнувшимся.
Изменено: Alex - 01.04.2013 01:22:59
Некорректный ввод дробного числа, некорректно вводится число через ImputBox
 
Уважаемые гуру, проконсультируйте с небольшой проблемой. На лист вводятся данные через форму, количество через вводится с использованием ImputBox, вот соответствующая часть кода:
ActiveCell.Offset(0, 5) = InputBox("Сколько записать?")
             ActiveCell.Offset(1).Activate
Все бы хорошо, но если вводится дробное число, то оно во-первых выравнивается в соответствующей ячейке по левому краю (а не по правому, как задано), а во-вторых, что более важно, введенное число не участвует в расчетах (не вычитается). Если после этого войти в эту ячейку и нажать enter, введеное число и выравняется как надо и посчитается правильно.  При всем этом, если число целое, все отрабатывается как надо сразу. Что мне надо изменить в коде (пытался определить формат  InputBox, формат изменился, проблема - нет.) Заранее спасибо всем откликнувшимся.
Вычислить номер страницы для использования в СЧЕТЕСЛИМН, Необходимо вычислить номер страницы для корректной работы функции СЧЕТЕСЛИМН
 
Уважаемые гуру. Подскажите, можно ли решить данную проблемку. Имеется лист с остатками товара и хотелось бы иметь на каждой страницы постраничный итог, а уж совсем хорошо, если бы этот постраничный итог печатался бы не в ячейке (как сейчас), а в колонтитуле (на форуме была похожая тема о печати каких-либо результатов в колонтитулах). Я предполагал использовать для расчетов функцию СЧЕТЕСЛИМН, но она требует, скажем так, "контрольных ячеек" и вот эти самые ячейки я бы и хотел вычислить. На просторах сети я нашел макрос:

Public Sub PageNumner()
   Dim VPB As Excel.VPageBreak
   Dim HPB As Excel.HPageBreak
Dim intVPBC As Integer
   Dim intHPPC As Integer
   Dim lngPage As Long
   
   lngPage = 1
   
   If ActiveSheet.PageSetup.Order = xlDownThenOver Then
       intHPPC = ActiveSheet.HPageBreaks.Count + 1
       intVPBC = 1
   Else
       intVPBC = ActiveSheet.VPageBreaks.Count + 1
       intHPPC = 1
   End If

   For Each VPB In ActiveSheet.VPageBreaks
       If VPB.Location.Column > ActiveCell.Column Then
           Exit For
       End If
       
       lngPage = lngPage + intHPPC
   Next VPB
   
   For Each HPB In ActiveSheet.HPageBreaks
       If HPB.Location.Row > ActiveCell.Row Then
           Exit For
       End If
           
       lngPage = lngPage + intVPBC
   Next HPB
   
   MsgBox "Номер страницы активной ячейки = " & lngPage
End Sub

который правильно и корректно вычисляет номер страницы активной ячейки. MsgBox с сообщением мне не нужен, а вот как если мне подсказали как присвоить диапазону I10:I39 (в примере) значения вычисленные вышеописаной функцией, все было бы замечательно. Сейчас значения "контрольных ячеек" забиты вручную и на 2-3 страницы это несложно, но если бы таких страниц было 100 или 500, неужели бы этот момент нельзя было бы решить по иному? Говоря покороче, как помощью макроса, который будет включаться по какому-либо событию или каким-либо "постоянным" образом через VBA или формулами (устроит любой способ) получать значения "контрольных ячеек", в данном примере диапазона I10:I39? Заранее большое спасибо всем откликнувшимся.
Выделение диапазона по последней заполненной ячейке
 
Уважаемые гуру, очень прошу помочь с написанием макроса. Необходимо в макросе выделить диапазон (для дальнейшей сортировки по дате) по последней заполненной ячейке столбце D. Сложность (для меня) в том что ниже этого диапазона (образовавшегося в результате работы другого макроса) после какого-то количества пустых строк, находятся заполненные ячейки и найденный мною в сети макрос:
Sub Copy_To_Last_Cell()
   Range("B1:D" & Cells(Rows.Count, 1).End(xlUp).Row).Select
End Sub

выделяет диапазон B1:D12, а мне нужно чтобы выделялся диапазон B1:D3. Как это сделать? Заранее спасибо всем откликнувшимся.
Навигация по листу с помощью 2 combobox-сов, Навигация по листу
 
Уважаемые гуру, подскажите как усовершенствовать возможности макроса. Ситуация следующая:
на UserForm имеется combobox со списком месяцев, при выборе значения из этого combobox срабатывает небольшой макрос найденный мною на просторах интернета:
Sub Search()
   Dim ИскомыйТекст As String, НайденныйТекст As Range, Массив As String
   ИскомыйТекст = UserForm1.ComboBox1
   Массив = "J3:L530"
   Set НайденныйТекст = Range(Массив).Find(ИскомыйТекст)
   If Not НайденныйТекст Is Nothing Then НайденныйТекст.Select
End Sub
который перемещает активную ячейку в "заголовок" выбранного месяца.
Все работает как надо, но вот захотел немного усовершенствовать. Дело в том, что на листе есть не только названия месяцев, но и даты в формате ДД.ММ. и хотелось бы иметь возможность перейти на конкретный день года. Так вот, если на UserForm добавить еще 1 combobox в котором можно будет выбрать числа (от 1 до 31) можно было бы (как мне кажется) сделать это. Вопрос: я так понимаю, что сначала нужно будет передать "сцепленные" значения combobox-ов в какой-либо другой объект (listbox, textbox, не знаю что из них лучше подходит), скорректировав и формат (ведь изначально он будет типа "27 января", а для поиска нужен "27.01." (почему-то, когда я пробую проверить поиск через Ctrl + F,  соглашается искать только, если и дата для поиска и дата в колонке записаны в текстовом формате), а уж потом передать откорректированный текст в макрос для отработки. Правильно ли я предполагаю алгоритм выполнения задачи и, самое главное, как это сделать? Заранее спасибо всем откликнувшимся.
Редактирование данных через UserForm
 
Уважаемые гуру, подскажите как решить небольшую задачу. В документе имеются скрытые столбцы (D:F) в них находится некая информация. С помощью темы "Пометка элементов списка флажками (checkbox)" (http://planetaexcel.ru/techniques/3/61/) найденной на этом уважаемом ресурсе я могу "отмечать" нужные мне строки. Вопрос таков: как перенести в listbox или textbox (я не знаю что из них лучше подходит для этой ситуации), находящихся на UserForm (вызов правой клавишей мыши) диапазон (в данном случае D4:E10) с возможностью аналогичным способом "простановки" этих самых галочек в UserForm или иного варианта пометок, но ОБЯЗАТЕЛЬНО с появлением этих самых пометок в соответствующих строках на листе, так как по ним (по отметкам) будет производиться отбор данных. Вариант с простым отображением скрытых строк подходит не совсем, так как в документа большое кол-во столбцов, могущих при различных условиях быть и скрытыми и открытыми, а после выполнения пометок хотелось бы возвращения к первоначальному варианту отображения столбцов без дополнительных манипуляций. Заранее спасибо всем откликнувшимся.
Оптимизировать код по отображению/скрытию определенных строк
 
Уважаемые гуру, помогите оптимизировать код. Имеется:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.ScreenUpdating = False
 Rows("89:400" )  .EntireRow.Hidden = True
 
 If Not Intersect(Target, Range("B89" )  ) Is Nothing Then
 If Target.Value = 0 Then
 Rows("89:127" )  .EntireRow.Hidden = True
 Else
 Rows("89:127" )  .EntireRow.Hidden = False
 End If
 End If
 
 If Not Intersect(Target, Range("B128" )  ) Is Nothing Then
 If Target.Value = 0 Then
 Rows("89:166" )  .EntireRow.Hidden = True
 Else
 Rows("89:166" )  .EntireRow.Hidden = False
 End If
 End If
 
 End If
 Application.ScreenUpdating = True
End Sub


условий подобных
If Not Intersect(Target, Range("B89" )  ) Is Nothing Then
If Target.Value = 0 Then
Rows("89:127" )  .EntireRow.Hidden = True
Else
Rows("89:127" )  .EntireRow.Hidden = False
End If
End If
у меня не 2, а 8 и, я так понимаю, что данный вариант кода очень далеко не оптимален, ведь их могло бы быть и 80 или еще больше. Как оптимизировать данную часть кода? И еще, как в подобном коде (задача там полностью аналогична, при заполнении ячеек должны отображаться/скрываться определенные строки), на этой же странице указать "проверочную" ячейку не как:
If Not Intersect(Target, Range("B128" )  ) Is Nothing Then
а на ДРУГОМ листе данного файла . Заранее спасибо всем откликнувшимся
Не работает ВПР, работа с функцией ВПР
 
Уважаемые гуру, помогите решить проблему. Вроде бы не раз и не два применял в фалах функцию ВПР, а вот сейчас никак не могу понять в чем дело. Ситуация такая: ВПР находит по значению ячейки (дата) искомые данные в таблице на другом листе, ну и далее как положено... Во время заполнения всех данных в окне функции все идет нормально, правильный ответ высвечиватся в "Значение", но как только я нажимаю ОК как вместо правильного ответа появлятся сообщение об ошибке #ЗНАЧ! Почему так происходит понять никак не могу. Заранее спасибо всем откликнувшимся
Выборка данные по двум и более условиям
 
Уважаемые гуру, можно ли решить данную проблему? На листе справка по расходу запчастей формулой массива  
{ЕСЛИОШИБКА(ИНДЕКС('Расход запчастей'!B3:B1001;НАИМЕНЬШИЙ(ЕСЛИ(ТЕКСТ($C$6;"[$-F419]ММММ;@")=ТЕКСТ('Расход запчастей'!A3:A1001;"[$-F419]ММММ;@");СТРОКА('Расход запчастей'!B3:B1001)-2;"");СТРОКА()-14));"")}
происходит выборка данных. Можно ли усовершентсвовать ее, чтобы при выборке не только месяца, а и гос. номера машины данные выбирались уже по двум признакам, и т.д., НО при этом формула должна работать и без этих дополнительных "фильтров", т.е. если есть желание и необходимость у пользователя, "фильтры" ставятся, нет - не ставятся. В 1С нечто подобное видел. Просто по 2 и более условиям я данные смог бы отобрать, но такова формула не хочет работать, если эти самые условия не выставлены.
Переместить фокус ячейки
 
Уважаемые гуру, помогите решить небольшую (для Вас конечно) проблему. В коде:  
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)  
   If ListBox1.ListCount = 0 Then Cancel = True  
   ActiveCell = ListBox1.Value  
End Sub  
 
данные выбранные из ListBox1 попадают в активнную ячейку, а вот что надо дописать, чтобы ПОСЛЕ ЭТОГО фокус ячейки сместился скажем на n столбцов вправо и в эту выбранную ячейку можно было бы сразу ввести данные (если я правильно понял это назывется "модально")? А совсем замечательно было бы, если бы после этого самого ввода данных фокус перместился  бы под искомую активную ячейку для дальнейшего выбора из ListBox1 (это уж конечно была бы вишенка на торте). Заранее спасибо всем откликнувшимся.
Помогите оптимизировать формулу
 
Уважаемые знатоки Excel. Помогите решить небольшой вопрос.    
Немного страшная формула :)  
=СУММПРОИЗВ($H$9:$H$39;'Цены ГСМ'!$C$3:$C$33)+СУММПРОИЗВ($I$9:$I$39;ЕСЛИ($W$6="АИ-98";'Цены ГСМ'!$D$3:$D$33;ЕСЛИ($W$6="АИ-95";'Цены ГСМ'!$E$3:$E$33;ЕСЛИ($W$6="АИ-92";'Цены ГСМ'!$F$3:$F$33;ЕСЛИ($W$6="АИ-80";'Цены ГСМ'!$G$3:$G$33;ЕСЛИ($W$6="Д/т";'Цены ГСМ'!$H$3:$H$33;""))))))  
 
вычисляет стоимость горючего. И если первый множитель ($H$9:$H$39;'Цены ГСМ'!$C$3:$C$33) ссылаеся на фиксированный столбец справочного листа, то вот второй множитель отягощен 5 вариантами функции ЕСЛИ. Вопрос вот в чем: номер столбца в котором следует искать диапазон ячеек (на листе Цены ГСМ) я могу вычислить, а вот подставить этот самый номер в формулу, т.е. вместо $D$ - 4, $E$ -5 и т.д., никак не получается. Формула конечно и так работает, но как мне кажется далеко не в идеальном виде, да и к тому же на каждый из 12 месяцев приходится прописывать свой яседиапазон ручками. Можно ли решить эту проблему? Кусок книги (формула в ячейке Н41)  прилагается. Заранее спасибо всем откликнувшимся.
нге проверяется значение ячейки
 
В выбранном диапазоне предполагается проверка ячеек (срабатывает формула, данные вводятся, если не срабатывает, то сообщение о невозможности) с помощью стандартных средств offica. Но данная проверка срабатывает только, если данные вводятся непосредственно с клавиатуры, а при использовании варианта Combobox, описанному в теме "Удобный поиск в выпадающем списке" проверка не срабатывает, причем, если повторно зайти в данную ячейку в конец выбранного текста и нажать Enter (как бы повторно введя данные), то проверка срабатывает как ей положено, не давая ввести текст. Уважаемые гуру Excel, можно ли и как (если можно) исправить эту ситуацию?
Страницы: 1
Loading...