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

Страницы: 1 2 След.
Запус макроса на событие Вставка или событие Автозаполнение в определенном диапазоне
 
Цитата
Sanja,
По хорошему нужно уходить от перебора ячеек и переходить на обработку данных в памяти (массив, словарь и т.п.)
Я не очень поняла, о чем Вы говорите, к сожалению, у меня не системные знания по VBA, учу его, так сказать, заплатками  :)
Несколько конструкций в Вашем коде мне не понятны. Я отправила их в заметки, буду разбираться. За это отдельное спасибо!
Изменено: iteraciya - 12.12.2023 17:51:40
Запус макроса на событие Вставка или событие Автозаполнение в определенном диапазоне
 
Sanja,

Большое Вам спасибо за решение, я его использовала, работает идеально!  :)  :)  :)  
Запус макроса на событие Вставка или событие Автозаполнение в определенном диапазоне
 
Цитата
@Sanja написал:
Замените первый код на такой
Большое спасибо за код, я его применила, одна заминка, если всегда выпонять этот код, то при каждом внесении значения, даже обычным способом,  30 секунд программа будет выполнять код, пользователи будут жаловаться.
Может можно как-то сделать, чтоб при обычном внесении данных выпонялся первый код  (он обновляет всего одну строку), а при Вставке или Автозаполнении выпонялся второй, который проходит по всем строкам?

Спасибо!
Изменено: iteraciya - 12.12.2023 16:39:14
Запус макроса на событие Вставка или событие Автозаполнение в определенном диапазоне
 
МатросНаЗебре, Спасибо  :)  
Значение одной ячейки копировать в последнюю ячейку строки в определенном диапазоне, добавить код в существующий макрос
 
Цитата
написал:
Удалил все файлы - опять превышение. Ознакомьтесь с Правилами.И не нужно писать через 1-2 строки.
Хорошо, спасибо.
Макрос посылающий сообщение из Excel на почту
 
Цитата
Цитата
А что у Вас работает не так? Ошибки в коде или просто нужен макрос который запускает Ваш автоматически?
Ваш код немного видоизменил, а то без подключения библиотек не работает
Спасибо, прошу прощения, вовремя не увидела сообщение.  :)  
Запус макроса на событие Вставка или событие Автозаполнение в определенном диапазоне
 
Здравствуйте, дорогие форумчане!

Очень нужна Ваша помощь.

У меня есть макрос, который срабатывает при изменении данных в диапазоне  H3 - H10 000 на определенном листе (ниже приведен код).
(Макрос заполняет столбцы B, I, J,  в зависисости от значения внесенного в H)
Если изменение идет обычным способом, то есть пользователь вручную меняет значение в ячейке указанного диапазона (H), то макрос срабатывает для данной строки и все в порядке.
Но если пользователь вставляет данные сразу в несколько ячеек указанного диапазона (H), то макрос срабатывает только для первой строки измененного диапазона в H.
То же самое происходит, если данные вносятся через заполнение-протягивание.

Подскажите пожалуйста, как мне изменить код, чтобы он срабатывал для всех измененнных ячеек в диапазоне и при внесении вручную, и при протягивании, и при вставке нескольких значений.

Большое спасибо заранее!

КОД СРАБАТЫВАЮЩИЙ НА УРОВНЕ СТРОКИ
Код
Private Sub worksheet_change(ByVal Target As Range)


Dim cellsR As Range
Set cellsR = Worksheets("TASK").Range("H3:H10000")
If Not (Intersect(Target, cellsR) Is Nothing) Then


    Dim i As Long

    
    i = Target.Row
    
    
        If Cells(i, 8).Value = 0 And Cells(i, 8).Value <> "" Then
           Cells(i, 9).Value = ""
           Cells(i, 10).Value = ""
           Cells(i, 2).Value = Sheets("REF").Range("A1").Value
           
                Else
                    If Cells(i, 8).Value = 1 And Cells(i, 9).Value = "" And Cells(i, 10).Value = "" Then
                    Cells(i, 9).Value = Date
                    Cells(i, 10).Value = Date
                    Cells(i, 2).Value = Sheets("REF").Range("A2").Value
                    
                          Else
                                If Cells(i, 8).Value = 1 And Cells(i, 9).Value <> "" And Cells(i, 10).Value = "" Then
                                Cells(i, 10).Value = Date
                                Cells(i, 2).Value = Sheets("REF").Range("A2").Value
                                
           
                                Else
                                    If Cells(i, 8).Value > 0 And Cells(i, 8).Value < 1 And Cells(i, 9).Value = "" Then
                                    Cells(i, 9).Value = Date
                                    Cells(i, 10).Value = ""
                                    Cells(i, 2).Value = Sheets("REF").Range("A3").Value
                                    
                                    Else
                                        If Cells(i, 8).Value > 0 And Cells(i, 8).Value < 1 And Cells(i, 9).Value <> "" Then
                                        Cells(i, 10).Value = ""
                                        Cells(i, 2).Value = Sheets("REF").Range("A3").Value
               

                    
                    End If
                End If
                          
            End If
        End If
  End If

End If

End Sub
КОД ПРОХОДЯЩИЙСЯ ПО ВСЕМ СТРОКАМ СРАЗУ
Код
Sub CellsUpdate()

    Dim LastRow As Long
    Dim i As Long
    
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 3 To LastRow
    
        If Cells(i, 8).Value = 0 And Cells(i, 8).Value <> "" Then
           Cells(i, 9).Value = ""
           Cells(i, 10).Value = ""
           Cells(i, 2).Value = Sheets("REF").Range("A1").Value
                
                Else
                    If Cells(i, 8).Value = 1 And Cells(i, 9).Value = "" And Cells(i, 10).Value = "" Then
                    Cells(i, 9).Value = Date
                    Cells(i, 10).Value = Date
                    Cells(i, 2).Value = Sheets("REF").Range("A2").Value
           
                          Else
                                If Cells(i, 8).Value = 1 And Cells(i, 9).Value <> "" And Cells(i, 10).Value = "" Then
                                Cells(i, 10).Value = Date
                                Cells(i, 2).Value = Sheets("REF").Range("A2").Value
           
                                Else
                                    If Cells(i, 8).Value > 0 And Cells(i, 8).Value < 1 And Cells(i, 9).Value = "" Then
                                    Cells(i, 9).Value = Date
                                    Cells(i, 10).Value = ""
                                    Cells(i, 2).Value = Sheets("REF").Range("A3").Value
                                    
                                    Else
                                        If Cells(i, 8).Value > 0 And Cells(i, 8).Value < 1 And Cells(i, 9).Value <> "" Then
                                        Cells(i, 10).Value = ""
                                        Cells(i, 2).Value = Sheets("REF").Range("A3").Value
               

                    
                    End If
                End If
                          
            End If
        End If
  End If
           
  Next i

End Sub
Функционал Поиска Решения со сложными критериями, Поиск решения со сложным условием
 
Цитата

см. вложение (лист5)там 12 вариантов как собрать заданную сумму из ваших значений, в т.ч. 4-й (помеченный вами)
Большое спасибо!  :)  
Изменено: iteraciya - 17.10.2023 21:37:08
Функционал Поиска Решения со сложными критериями, Поиск решения со сложным условием
 
Цитата
написал:
например
Спасибо!
Функционал Поиска Решения со сложными критериями, Поиск решения со сложным условием
 
Предположим, есть файл, в этом файле - столбец разных значений.
Все значения уникальны (в исходном примере - это числа с целой и дробной частью (сотые)
При сложении некоторых из них получается сумма.
Как по сумме определить, какие именно числа были сложены?
Теоретически, при таком формулировании задачи, может быть несколько решений, но предположим, что чисел немного - около 10-ти, а дробная часть делает их еще более уникальными.

Для простоты - пример:
Желтые ячейки сложили, получили ответ.
Как по значению вычислить, какие ячейки суммировались?



Я начала думать в направлении Поиска Решения, где в качестве критерия каждая ячейка может быть равна либо тому значению, что внее вписано, либо 0, дальше не думается.
Уважаемые форумчане, прошу помощи!
Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии, Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии
 
memo,

Спасибо Вам огромное  :) очень благодарна  :)  
Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии, Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии
 
memo,

Спасибо Вам большое за ответ.
Все заработало для суммы.
Но к сожалению, я не знаю как формулу превратить в то, что будет считать еще и количество.
Если Вам не сложно, можно будут и для количества формулу написать, я сама пытаюсь у меня не очень получается.
Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии, Подсчет и суммирование уникальных значений столбца, когда в других столбцах есть определенные критерии
 
Здравствуйте, дорогие форумчане.
Помогите мне пожалуйста с такой задачей.

Имеется таблица следующей структуры (смотрите вложенный файл)
Необходимо найти сумму и количество уникальных значений в первом столбце при выполнениеи двух условий в двух других столбцах.
в приложенном файле количество будет 3, сумма - 3351.

Можно ли посчитать это с помощь. функций? Не используя сводную и код.

Спасибо за Ваше время.
Макрос посылающий сообщение из Excel на почту
 
В итоге я сделала такой вот код. Если можно его как-то улучшить, прошу мне об этом сказать.
Код
Sub Auto_Open()
Dim olDate As Double
olDate = Date + 30

If Range("sheet2!a1") >= (Date - 3) Then
Exit Sub

Else: End If

With Sheet1
    .AutoFilterMode = False
    .Range("a1:B1").AutoFilter
    .Range("A1:B1").AutoFilter field:=2, Criteria1:="<=" & olDate
 End With
 
If Range("sheet2!A2") <= 1 Then
Exit Sub

Else: End If

ThisWorkbook.Save
  
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")

Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)

Dim source_file As String

olMail.To = "test1@mail.ru"
olMail.Subject = "Overdue contracts"
olMail.Body = "Dear All, Please find attached Excel file with contracts to be overdue within 30 days"

source_file = ThisWorkbook.FullName
olMail.Attachments.Add source_file
olMail.Send

Range("Sheet2!a1") = Date

End Sub
Изменено: iteraciya - 07.10.2018 18:23:16
Как получить последний известный курс доллара из списка на указанную дату?
 
Если учесть то, что говорит WiseOwl, то нужно просто ВПР с 4-ым параметром ИСТИНА (1) использовать, при условии, что даты отсортированы от меньшей к большей. Тогда ВПР возьмет предыдущий курс.
Как получить последний известный курс доллара из списка на указанную дату?
 
Может, не нужен ответ, а нужно как раз сообщение об ошибке? То есть два первых дадут ответы, а третий будет не определен.
Макрос посылающий сообщение из Excel на почту
 

Здравствуйте, помогите пожалуйста со следующим заданием.

Есть файл с контрактами и датами их истечения. Необходимо, чтобы 1 раз в неделю файл автоматически открывался, фильтровался на предмет того, будут ли какие-либо контракты просрочены в течение следующих 30 дней, и если да, то эти контракты дрлжны быть скопированы в сообщение Outlook и высланы на определенную почту.

Покопавшись в нете, я смогла пока сделать только следующее. Помогите пожалуйста или советами, или ссылками, или, если не трудно, готовым кодом.

Заранее спасибо за Ваше время.

Чтоб файл открывался один раз в неделю автоматически, я использую задачи Виндоус.

А это код в эксель.

Код
Sub SendEmail()
Dim olDate As Double
olDate = Date + 30
With Sheet1
    .AutoFilterMode = False
    .Range("a1:B1").AutoFilter
    .Range("A1:B1").AutoFilter field:=2, Criteria1:="<=" & olDate
 End With
  Range("a1:b15").Select
  Selection.Copy
  
  
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")

Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)



olMail.To = "test1@gmail.com"
olMail.Subject = "Overdue contracts"
olMail.Body = Selection
olMail.Send

End Sub
Подстановка значений в тот же столбец, в котором имеются данные с помощью функции.
 
Irregular Expression, огромное Вам человеческое спасибо :) Вы мне очень очень очень помогли :)
Подстановка значений в тот же столбец, в котором имеются данные с помощью функции.
 
Vik_tor, The_Prist, Irregular Expression, спасибо большое за ответы.

Irregular Expression, не могли бы Вы чуть подробнее объяснить, как именно будет работать эта функция с ЕСЛИ и ВПР, если можно, сделайте ее как пример в моем приложенном файле, я попробую разобраться.
Подстановка значений в тот же столбец, в котором имеются данные с помощью функции.
 
Irregular Expression,

Да, я знаю, что циклическая ссылка - зло.
Да, я знаю, что должны быть уникальные идентификаторы.
Да, я знаю, про то, что можно спрятать столбец.
Да, новые значения паспортов будут писаться поверх формулы, так захотел пользователь, ничего другого ему не нужно.

Поэтому я все же попрошу исходя из моих условий посоветовать что-либо, если это возможно.
Подстановка значений в тот же столбец, в котором имеются данные с помощью функции.
 
Цитата
Vik_tor написал:
в с6 =ВПР(B6;$B$2:C5;2;0) и тяните вниз.
Нельзя, данные могут быть и ниже и выше расположены, нужно, чтоб весь столбец был задействован.
Подстановка значений в тот же столбец, в котором имеются данные с помощью функции.
 
Здравствуйте, форумчане,

Есть список имен сотрудников, во втором столбце есть номер паспорта сотрудников. Имена в первом столбце могут повторяться. Необходимо, чтобы если имя повторяется, паспортный номер автоматом подтягивался из уже заполненных строк, если они есть, если нет, то формула может возвращать НД или пустую ячейку.
В приложенном файле я на небольшом примере реализовала это через ВПР с циклической ссылкой. В примере формула работает, но в большом файле она не работатет и выдает 0-ли. Подскажите, пожалуйста, как решить проблему и правильно ли когда ВПР берет значения из того же столбца, куда потом их подставляет?

Спасибо!
Значение одной ячейки копировать в последнюю ячейку строки в определенном диапазоне, добавить код в существующий макрос
 
Спасибо, Уважаемые Все, Вы мне очень помогли!
В итоге я использовала код от товарища Karatayev, спасибо огромное :)

С уважением, iteraciya
Значение одной ячейки копировать в последнюю ячейку строки в определенном диапазоне, добавить код в существующий макрос
 
Файлы обновлены.
Значение одной ячейки копировать в последнюю ячейку строки в определенном диапазоне, добавить код в существующий макрос
 
Здравствуйте, Дорогие Все,

Есть много типовых файлов. Содержат одинаковую по структуре информацию. Есть макрос, который собирает данные из разных книг в определенной папке и помещает их в одну книгу. (типовые файлы приложены к сообщению и  называются File(1), File (2) и так далее, всего 4)

Вот код макроса
Код
Sub GetSheets()Path = "C:\Users\user00\Desktop\New folder\"Filename = Dir(Path & "*.xls*")  
Do While Filename <> ""  
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)  
Next Sheet     
Workbooks(Filename).Close     
Filename = Dir()  LoopEnd Sub
Есть второй макрос, который копирует нужные строки со всех листов и переносит их в один лист.
Вот код макроса
Код
Sub Combine()    
Dim J As Integer    
Dim s As Worksheet     
On Error Resume Next    
Sheets(1).Select    
Worksheets.Add 
' add a sheet in first place    
Sheets(1).Name = "Combined"     
For Each s In ActiveWorkbook.Sheets        
If s.Name <> "Combined" Then            
Application.GoTo Sheets(s.Name).[O10]            
Selection.CurrentRegion.Select            
' Don't copy the headings            
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select            
Selection.Copy Destination:=Sheets("Combined"). _              
Cells(Rows.Count, 1).End(xlUp)(2)        
End If    
NextEnd Sub

Проблема в том, что данные с каждого листа переносятся не полностью. На картинке обведена ячейка откуда информация должна копироваться и крестиками отмечены ячейки, куда эта информация должна быть перенесена.Картинка приложена к сообщению.

В результате работы этих модифицированных макросов должно получиться то, что видно в приложенном файле с названием Results.
Помогите пожалуйста изменить макросы так, чтобы все заработало.

Спасибо, жду Ваших ответов :)
Изменено: iteraciya - 04.08.2015 22:02:03
Счет по условию в сводной таблице
 
Спасибо большое :)
Как в таблице с 4 типами входных данных создать определенные суммирующие отчеты
 
Всем спасибо огромное  :)  
JayBhagavan, я попробую сделать, как у Вас в файле.

С уважением,
Итерация
Изменено: iteraciya - 18.12.2014 12:31:07
Счет по условию в сводной таблице
 
Спасибо :)
Как в таблице с 4 типами входных данных создать определенные суммирующие отчеты
 
Здравствуйте,
Имеется таблица, с строках - имена, в колонках - названия тренингов, на пересечении - присутствие (да или нет) и дата тренинга.
Необходимо создать следующие отчеты с помощью формул:

- сколько человек прошли тренинги в месяц (с учетом отсутствия и присутствия),
- сколько человек были записаны на тренинг в месяц (то есть, без учета отсутствия и присутствия, просто по дате)
- какие тренинги были в определенном месяце
- кто прошел определенный тренинг в определенном месяце

И последний вопрос:
Правильно ли построена база данных или для этих отчетов нужен другой формат базы, если нужен, то подскажите, как ее лучше организовать?

Спасибо!
Счет по условию в сводной таблице
 
Спасибо, но хотелось бы понять в таком случае, почему это принципиально невозможно?
Изменено: iteraciya - 29.05.2014 10:33:51
Страницы: 1 2 След.
Наверх