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

Страницы: 1
Можно ли в сводной таблице настроить вычисления с использованием ячеек?
 
Здравствуйте!  
Есть сводная таблица (пример во вложенном файле). В ней высчитывается процент выполнения плана продаж. Но как в эту таблицу вставить прогноз выполнения плана, который высчитывается, как процент выполнения плана, умноженный на общее количество дней в рабочем месяце и разделенный на количество прошедших рабочих дней (т.е. по идее в вычисляемом поле нужно было поставить 'Процент выполнения плана'*B3/B4). Но Excel не дает этого сделать, можно только вручную ввести число. Как правильно добавит поле 'Прогноз выполнения продаж'?
Как сделать счетчик столбцов?
 
{quote}{login=Маугли}{date=18.12.2012 06:17}{thema=}{post}Так..{/post}{/quote}  
Спасибо, помогло.
Как сделать счетчик столбцов?
 
Пример во вложенном файле. Количество магазинов (т.е. количество столбцов) постоянно меняется, нужно оставить только столбцы продукт, количество и итог.
Как сделать счетчик столбцов?
 
Здравствуйте!  
Как сделать счетчик столбцов на листе (WS as Excel.Worksheet) и поместить его в переменную СК (СК As Long)? Набираю CK = WS.Range("A" & Columns.Count).End(xlUp).Column и в переменную записывается 1 (столбцов на самом деле 20). Подскажите, как правильно?  
В конечном итоге мне нужно удалить первый столбец ("A"), и начиная с третьего ("С") до предпоследнего.
Как ограничить переменную Single?
 
Спасибо, все заработало.
Как ограничить переменную Single?
 
Здравствуйте!  
Есть переменная X c типом Single. Как сделать так, чтобы она возвращала значения с точностью только до сотых?
Как задать диапазон с помощью переменной?
 
Спасибо, помогло
Как задать диапазон с помощью переменной?
 
Здравствуйте!  
Есть некая переменная CR as Long, равная количеству строк. Как с помощью нее задать диапазон, начинающиеся с A1 и заканчивающийся ячейкой, у которой адрес столбца A, адрес строки содержится в этой переменной. Т.е. если написать Range ("A1:ACR") выскочит ошибка, а как правильно?
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
Вроде немного разобрался. Вот, что у меня получилось в итоге. Может кому поможет в подобной ситуации  
Dim T As Integer  
Public Block(1 To 3) As String  
Public Product(1 To 3) As String  
Dim R As Excel.Workbook  
Dim P As Excel.Workbook  
Dim SecondR As Range  
Dim FirstR As Range  
Dim FirstSearch(1 To 3) As Long  
Dim SecondSearch(1 To 3) As Range  
Dim y As Long  
Dim k As Long  
 
Public Sub ProbaVPR()  
Block(1) = "Блок 05" 'Задание массива необходимых блоков, в соответсвии с которыми будут искаться соответвующие числовые значения (во втором столбце "Количество")  
Block(2) = "Блок 16"  
Block(3) = "Блок 18"  
Product(1) = "Апельсин" 'Задание массива необходимых продуктов, в соответствии с которыми будут заноситься числовые значения (во второй столбец "Количество")  
Product(2) = "Мандарин"  
Product(3) = "Ананас"  
 
Set P = ActiveWorkbook 'Открытый изначально файл "Проба макроса.xlsm" из которого запускается макрос  
Set R = Application.Workbooks.Open(Filename:="C:\2\Первичная информация.xlsm") 'Открытие файла с блоками "Первичная информация.xlsm" на диске С:  
 
Set FirstR = Application.Workbooks("Первичная информация.xlsm").Worksheets(1).Range("A2:B19") 'Задание диапазона с блоками, из которого будет возвращаться числовые значения  
Set SecondR = Application.Workbooks("Проба макроса.xlsm").Worksheets(1).Range("A2:B4") 'Задание диапазона с продуктами, из которого будет возвращаться адрес ячеек  
 
For T = 1 To 3  
     'Поиск и возвращение необходимого числового значения во втором столбце диапазона "A2:B19" файла "Первичная информация.xlsm"  
     
   For y = 1 To SecondR.Rows.Count 'Поиск номера необходимой строки  
   If SecondR.Cells(y, 1) = Product(T) Then  
   k = y  
   End If  
   Next y  
   FirstSearch(T) = VLOOKUP3(FirstR, Block(T), 1, 2)  
   Set SecondSearch(T) = Application.Workbooks("Проба макроса.xlsm").Worksheets(1).Range("A2:B4").Cells(k, 2)  
   SecondSearch(T).Value = FirstSearch(T)  
Next T  
End Sub  
Public Function VLOOKUP3(Table As Range, SearchText As String, N As Integer, R As Integer) 'Функция для поиска текстового значения "Блок"  
                                                                                           'и возвращения соответсвующего числового значения в столбце "Количество"  
Dim i As Integer  
 
For i = 1 To Table.Rows.Count  
   If Table.Cells(i, N) = SearchText Then  
   VLOOKUP3 = Table.Cells(i, R)  
   Exit Function  
   End If  
 
Next i  
 
End Function
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
Прикрепляю еще файл "Первичная информация.xlsm"
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
Если описать словами, что я хочу сделать, то примерно следующее:  
1). В первом файле 2 ("Первичная информация.xlsm") столбца: "Блок" (текстовые значения "Блок 01", "Блок 02" и т.д.), Количество (числа).Поиск функции типа ВПР в первом файле (возврат числа, соответствующего Блока).  
2). Во втором файле ("Проба макроса.xlsm") 2 столбца: "Продукт" (текстовые значения "Апельсин", "Мандарин", "Ананас"), Количество2 (пустая колонка). Поиск функции типа ВПР во втором файле, но только возвращает она не конкретное значение, а адрес ячейки.  
3) Занесение найденного числа из первого файла в адрес ячейки, найденного во втором. Текстовое значение "Апельсин" равен "Блок 05", нужно лишь приравнять их числовые значения во вторых столбцах, только в первом файле больше текстовых ячеек, чем во втором, и порядок их может быть иным (т.е. Блок 05 может быть в начале, а Апельсин в конце диапазона).  
 
Вроде немного накидал код, но второй функции выскакивает ошибка в строчке SecondSearch2 = VLOOKUP5(SecondR, Product(T), 1, 2) Run Time Error '424' Object Required. Я лишь совсем недавно начал осваивать VBA, поэтому мне нужны советы, даже если ошибки кажутся глупыми.    
Код во вложенном файле (суммирующий модуль ItogProbaVPR).
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
{quote}{login=Юрий М}{date=08.12.2012 02:48}{thema=Re: }{post}{quote}{login=Sector500}{date=08.12.2012 02:45}{thema=}{post}спасибо за ответ{/post}{/quote}Вопрос решён? Из Вашего сообщения не понять...{/post}{/quote}  
Нет, не решен пока. Я отдельную тему создал, чего я хочу в итоге достичь.
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
спасибо за ответ
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
На самом деле я лишь в начале написания более крупного макроса. Сейчас пытаюсь его составить из разных частей. Если функция тормозная, как ее можно улучшить?
Как написать функцию (наподобие ВПР), которая бы возвращала не содержимое ячейки, а ее адрес?
 
Здравствуйте!  
Недавно чуть изменил стандартную ВПР. Но как научить функцию , чтобы она возвращала не значение в ячейке, а ее адрес? Подскажите, как изменить следующий код:  
 
Public Function VLOOKUP3(Table As Range, SearchText As String, N As Integer, R As Integer)  
 
Dim i As Integer  
 
For i = 1 To Table.Rows.Count  
   If Table.Cells(i, N) = SearchText Then  
   VLOOKUP3 = Table.Cells(i, R)  
  End If  
 
Next i
Как правильно объявлять текстовый массив в VBA?
 
спасибо за ответ
Как правильно объявлять текстовый массив в VBA?
 
Здравствуйте!  
Как правильно объявлять текстовый массив в VBA?  
Ввожу следующий код, а VBA пишет после объявления блока Compile Error:Invalid Outside    
Procedure  
 
Public Block(1 To 3) As String  
Block(1) = Блок 02  
Block(2) = Блок 08  
Block(3) = Блок 10  
Dim T As Integer  
Dim X As Integer  
 
Public Sub ProbaVPR()  
For T = 1 To 3  
X = VLOOKUP3([A1:B18], Block(T), 1, 2)
AcniveSheet.Cells(T, 7) = X  
Next T  
End Sub  
 
Public Function VLOOKUP3(Table As Range, SearchText As String, N As Integer, R As Integer)  
 
Dim i As Integer  
 
For i = 1 To Table.Rows.Count  
   If Table.Cells(i, N) = SearchText Then  
   VLOOKUP3 = Table.Cells(i, R)  
   End If  
 
Next i  
 
End Function
Как удалить строки, первые столбцы, которых не содержат определенный текст?
 
Привет, всем.  
Хотелось бы поблагодарить за столь интересный сайт.  
Как удалить строки, первые столбцы, которых не содержат определенный текст?  
Мне удалось отыскать в Инете код, с помощью которого можно удалить строки, если текст только один (например, "апельсин"). А что делать, если нужно проверить на несколько текстов (например, удалить все строки, не содержащие "апельсин" и "мандарин")? Вот код, помогите его улучшить на проверку нескольких условий (до 12):  
Public Sub DeleteRow ()  
Dim sStr As String,  
Dim lLastRow As Long, Dim li As Long  
Dim lMet As Integer, Dim lCol As Integer  
lCol = 1  
lMet = 1  
lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count  
Application.ScreenUpdating = 0  
   For li = lLastRow To 1 Step -1  
       If InStr(Cells(li, lCol), sStr) = lMet Then Rows(li).Delete  
   Next li  
   Application.ScreenUpdating = 1  
End Sub
Страницы: 1
Наверх