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

Страницы: 1
Получить в ячейке значение типа "=ЧИСЛО1+ЧИСЛО2+ЧИСЛО3"
 
всем привет!
Задача такая: нужно просуммировать строки удовлетворяющие условиям, например: суммировать по столбцу К если
в столбце А параметр "A"
в столбце B параметр "00"
в столбце L параметр "C"
результат суммируется на Лист 5 в ячейку В1
проблема в том что нужно чтоб в ячейке В1 было видно из каких сумм будет состоять итоговая сумма(т7е ячейка В1 должнаяя выглядеть так: =65+34+46+122

я накидала такой макрос
Код
Sub DD()
For I = 1 To 19
If Sheets("Лист4").Cells(I, "a") = "A" And Sheets("Лист4").Cells(I, "b") = "00" And Sheets("Лист4").Cells(I, "L") = "C" Then Sheets("Лист5").Cells(1, "b") = Cells(1, "B").Value & Sheets("Лист4").Cells(I, "K") & "+"
Next
End Sub
у меня получается ячейка b1 выглядит так: 65+34+46+122+ вопрос как добавить перед числами знак "=" и убрать последний "+"
пример вложила
Открытие файла по маске, требуется небольшая доработка
 
всем доброго времени суток!
Код
Sub delitant90()
    Dim f As Boolean, a, s, st As String
    a = Split(CreateObject("Scripting.FileSystemObject").Getfile("C:\ККК.txt").OpenasTextStream(1).ReadAll, vbNewLine)
    st = "Funds Transfer Amount"
    For Each s In a
      If InStr(1, s, st) > 0 Then
         f = True
         s = Trim$(Replace$(Replace$(s, st, ""), vbTab, ""))
         Exit For
      End If
    Next
    MsgBox IIf(f, s, "not found")
End Sub
имеется макрос. можно ли в той части где открываю файл задать имя фала по маске т.е имя фала может быть KKK1 KKK2 итд .. ККК -постоянная часть
Спасибо!
Копирование суммы выделенных ячеек в буфер обмена
 
Всем доброго времени суток. необходимо скопировать значение выделенной   ячейки в буфер обмена(также может быть случай когда ячеек несколько) и добаваить в соседнюю ячейку текущую дату. есть такая наработка(добавляю в модуль листа) но работает некорректно если выделяю одну ячейку -   в буфер обмена копируется какая то дата(я так понимаю значение суммы в формате даты) - не понимаю где ошибка Рабочий лист 2
Код
Public Sub PutOnClipboard(Obj As Variant)
    Dim MyDataObj As New DataObject
    Dim dat As Date
    dat = Date
    MyDataObj.SetText Format(Obj)
    MyDataObj.PutInClipboard
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("a1:a10")) Is Nothing Or Not Intersect(Target, Range("h1:h10")) Is Nothing Then
  Dim dat As Date
 dat = Date
 Target.Cells.Offset(, 1) = dat
    If Target.Cells.Count < 1 Then Exit Sub
    Application.EnableEvents = False
    Dim tCell As Variant
    Dim Temp As Variant
    On Error GoTo Error:
    For Each tCell In Selection.SpecialCells(xlConstants, 23)
        Temp = Temp + tCell.Value
    Next tCell
    PutOnClipboard (Temp)
    'MsgBox "В буфер скопированна сумма выделенных ячеек: " & Temp
    Application.EnableEvents = True
 End If
    Exit Sub
Error:
    MsgBox "Не удалось подсчитать сумму выделенных ячеек"
    'ClearClipboard 'разкоментировать строку если нужно очиститиь буфер при ошибке
    Application.EnableEvents = True
End Sub
Public Sub ClearClipboard()
   Dim MyDataObj As New DataObject
   MyDataObj.SetText ""
   MyDataObj.PutInClipboard
End Sub


HELP )))Заранее спасибо!
выполнение действий в зависимости от результата автофильтра
 
всем привет! использую такой фильтр:
Код
Sub TEST()
    Application.ScreenUpdating = False
    With Sheets("ALLRESULTS")
        .AutoFilterMode = 0
        .Range("$A$1:$I$400").AutoFilter 1, Array( _
                 "parametrV", "parametrU"), Operator:=xlFilterValues
        .Range("$A$1:$I$400").AutoFilter 3, "=26", _
                Operator:=xlOr, Criteria2:="=05"
    .Range("$A$2:$I$400").SpecialCells(12).Copy Sheets("TOTAL").Range("A1")
End With
    Application.ScreenUpdating = True
End Sub
Подскажите пожалуйста   как
                   остановить выполнение макроса  если НЕТ данных которые соответствуют условиям фильтра(код выше) т.е. в результате фильтрации ничего не найдено
                   
                   и выполнить строку     .Range("$A$2:$I$400").SpecialCells(12).Copy Sheets("TOTAL").Range("A1")                если в результате фильтра есть данные

Спасибо!)  
Изменено: roneta90 - 27.11.2016 01:50:32
подскажите плиз по формуле СУММЕСЛИМН
 
Всем доброго времени суток! подскажите плиз : необходимо подсчитать суммы по столбцу D которые соответсвуют значениям по следующему условиям(всем вместе):
по столбцу А: parametr1,parametr2.parametr3
по столбцу С: 05,26
вот такая формула возвращает 0 после того как ввожу второе условие по столбцу А, т е вот это  A:A;"parametr2" - если одно условие то работает :
Код
=СУММЕСЛИМН(D:D;A:A;"parametr1";A:A;"parametr2";A:A;"parametr3";C:C;"05";C:C;"26")
подскажите,пожалуйста, мож какая другая формула или макрос
Спасибо!
Изменено: roneta90 - 01.11.2016 23:51:52
Заполнить колонки взависимости от значения в столбце А, таблица соответствия
 
Всем доброго времени суток! Подскажите пожалуйста как реализовать такую задачу: на листе База указаны сотрудники и к какому отделу они относятся и код отдела. задача состоит в том чтоб при загрузке списка сотрудников в столбец А на  лист  Общийотчет автоматом подтягивалось значение отдела и код отдела(см пример) на листе пример указала зеленым то что загружается желтым то что должно автоматом подтянуться.  Подскажите как это реализовать извините что без собственных наработок но в этой части эксель  - я вообще 0  :cry:
если это можно реализовать макросом : загрузить фамилии сотрудников в столбец А  , нажать кнопку и отдел и код отдела подтянуться автоматом - то вообще чудо будет )))
Заранее огромное спасибо!
Копирование папки с помощью VBA в другой каталог
 
Всем привет! подскажите  пожалуйста  как скопировать одну папку(folder1) со всем содержимым из одного каталога в другой с переименованием т.е. конечная папка будет называться folder2
в исходной папке (folder1) файлы двух типов .xlsx и  .txt  если это упростит задачу
Заранее огромное спасибо!  
ссылка на лист в другой книги, можно ли такое сделать
 
доброго времени суток! подскажите можно ли сделать ссылку на конкретный лист в другой книги например дана книга 1. в ячейке С1 формула с вычислением. можно ли сделать ссылку чтоб при нажать на ячейку С1 переходить в конкретный лист в другой книге например лист "вычисление" в книге 2  
Закрытие книг с именем равным значению ячейки, не работает макрос
 
Доброго времени суток! подскажите что не так делаю . Допустим открыто несколько книг(книга1 книга2 книга3). и "Главная книга". в "Главной книге" прописан макрос который закрывает   все оставшиеся книги (книга1 книга2 книга3).. при этом надо чтобы они(книга1 книга2 книга3) сохранились в определенной папке(например С:\отчеты\) с именем которое соответствует значение в ячейке В4 закрываемой  книги( т.е например в книге1 значение в ячейке  В4  - test1 , в книге2 значение в ячейке  В4  - test2  и тд )Значение может быть разным поэтому имет смысл ввести переменную и приравнять ее к ячейке( эт я рассуждаю  :D) нашла такой пример и доработала , но он не работает почему то:
Код
Sub CloseAllWorkbooks2()
'ВВЕЛА ПЕРЕМЕННЫЕ'
DIM B 'АДРЕС КУДА СОХРАНЯТЬ'
DIM I 'ЯЧЕЙКА ИЗ КОТОРОЙ БУДЕМ БРАТЬ ИМЯ С КОТОРЫМ СОХРАНЯЕТСЯ ЗАКРЫВАЕМАЯ КНИГА'
b="С:\отчеты\"
i=B4
 ' закрываем все книги, кроме той, из которой запущен макрос
    Dim wb As Workbook: Application.ScreenUpdating = False
    For Each wb In Workbooks    ' перебираем все открытые книги
        If Not wb Is ThisWorkbook Then If wb.Windows(1).Visible Then wb.saveAs filename:="B & I"
    Next wb
End SuB
Вот в таком виде макрос работает, но он просто закрывает книги без сохранения
Код
Sub CloseAllWorkbooks2()
    ' закрываем все книги, кроме той, из которой запущен макрос
    Dim wb As Workbook: Application.ScreenUpdating = False
    For Each wb In Workbooks    ' перебираем все открытые книги
        If Not wb Is ThisWorkbook Then If wb.Windows(1).Visible Then wb.Close
    Next wb
End Sub
Изменено: roneta90 - 23.09.2016 01:06:58
Загрузка данных из одного файла в другой: вставка макроса в цикл
 
Всем привет! Подскажите как  вставить макрос загрузки данных из одного файла в другой в цикл. Задача такая: существуют три файла(с наименование соответсвующим дате в формате 2016-09-09, 2016-09-10, 2016-09-11) нужно из каждого файла по очереди загрузить данные в файл endreport на лист «12»( открытие файла 2016-09-09 > загрузка данных в книгу endreport>там проходит определенный сценарий(это не важно)> все данные очищаются > открытие след  файла  2016-09-10 и далее также по кругу). список файлов прописала  в файле из которого запускается макрос(endreport) на Лист1. В ячейке А1 путь к этим файлам,   А2-А4 имена файлов. далее запускаю цикл проверки наличия в директории(ячейка А1) файла (2016-09-09 ) и открытие файла(2016-09-09):
Код
For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(r, 2) = Dir(Cells(1, 1) & Cells(r, 1))
    adr = Cells(1, 1)
Workbooks.Open Filename:=adr & Cells(r, 2)
После этого запускается макрос который копирует из открытого файла (2016-09-09) нужный диапазон (он неважен по умолчанию в примере "A1:C100") > над скопированными данными производится сценарий(это не важно)>все листы очищаются > далее цикл переходит на проверку наличия второго файла(2016-09-10)  > с этим файлом произодятся те же действия > если файла нет то макрос останавливается.
У меня цикл прошел только один раз -  над файлом 2016-09-09. Остальные два файла не обработались. Хелп )) макрос такой получился:
Код
Sub FileChecker()
  Dim r As Long
  Dim sShName As String, sAddress As String, vData
'цикл проверки наличия файла
  For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(r, 2) = Dir(Cells(1, 1) & Cells(r, 1))
    adr = Cells(1, 1)
Workbooks.Open Filename:=adr & Cells(r, 2)
    
    'начинается макрос копирования диапазона из файла в книгу endreport
    sAddress = "A1:C100" 'или одна ячейка - "A1"
    'получаем значение
    vData = Sheets("1").Range(sAddress).Value
    ActiveWorkbook.Close False
   Sheets("12").Select
    If IsArray(vData) Then
        [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
    Else
        [A1] = vData
    End If
    'макрос копирования заканчивается
  'далее: происходит сценарий(он неважен)над скопированным диапазоном - далее происходит очистка всех листов
  
  Next 'переход к проверке наличия следующего файла
End Sub
Копирования отфильтрованного диапазона, помогите скорректировать работу макроса
 
Всем привет! Помогите пожалуйста скорректировать макрос.Опишу действие:макрос фильтрует общий список(лист ALLRESULTS) по  сценариям  и раскидывает получившееся  по листам которые соответствует  каждому сценарию (total parametr568off parametr7 parametr568on )   В файле я оставила макрос для копирования на лист получился такой код  
Код
Sub TEST()
Application.ScreenUpdating = False
'TOTAL'
Sheets("ALLRESULTS").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.AutoFilter
Sheets("ALLRESULTS").Range("$A$1:$I$400").AutoFilter Field:=1, Criteria1:=Array( _
 "parametr5", "parametr6", "parametr8", "parametr7"), Operator:=xlFilterValues
Sheets("ALLRESULTS").Range("$A$1:$I$400").AutoFilter Field:=3, Criteria1:="=26", _
Operator:=xlOr, Criteria2:="=05"
Selection.Copy
Sheets("TOTAL").Select
Range("A1").Select
ActiveSheet.Paste
Application.ScreenUpdating = True

End Sub
покажите плиз на примере одного сценария как сделать так  чтобы после фильтрации на лист сбрасывался результат БЕЗ заглавной строки (она выделена желтым на листе ALLRESULTS)
Копирование диапазона в зависимости от даты
 
всем доброго времени суток . Помогите плиз доработать  макрос: нужно скопировать из одной книги(report1) только те строки в которых по столбцу "В" дата предыдущего дня в границах столбцов B - G.(в данном примере получается диапазон(B14:G17) в другую книгу(report2)которая находится в другой директории, в первую пустую строку(в данном случае строка 6) проблема в том что количество строк которое надо скопировать всегда разное. Известно только то что диапазон всегда будет начинаться с ячейки B14. И еще один ньюанс: если возможно то хотелось бы что бы макрос запускался из файла назначения. т.е. Report2
проанализировала данные инета и у  меня получился такой макрос:
Код
Sub test()
Dim Dat As Date, Dat1 As Date, I As Long, J As Long
Dat = Date 'системная дата'
'дата  для согласования с текущими данными'
'когда будут реальные данные по дате - этот оператор надо убрать'
Dat = CDate("08.09.2016")
I = 14
J = 1
Workbooks("Report2.xlsx").Activate
Sheets(1).Activate
iLastRow = Cells.Find("*", [A1], SearchDirection:=xlPrevious).Row
With Workbooks("Report1.xlsm").Sheets(1)
  Do While IsDate(.Range("B" & I))
    Dat1 = .Range("B" & I)
    If Dat1 = Dat - 1 Then
      .Range("B" & I & ":G" & I).Copy
      Range("A" & J).Select
      ActiveSheet.Paste
      J = J + 1
    End If
    I = I + 1
  Loop
End With
End Sub
Что не устраивает:
макрос запускается из файла исходника
при выполнении почему-то копируется в первую строку файла назначения: пробовала воспользоваться iLastRow = Cells.Find("*", [A1], SearchDirection:=xlPrevious).Row для обозначения первой пустой строки - не сработало
Очень рассчитываю на вашу помощь Спасибо!
Вставка строки ИТОГО в первую пустую строку
 
Доброго времени суток! Подскажите, пожалуйста, как мне с помощью макроса можно вставить строку ИТОГО в первую пустую строку после диапазона и чтоб по столбцу F , I, L были формулы как в примере. пыталась использовать
NextRow = Range("A65536").End(xlUp).Row + 1
Cells(NextRow, 1).Select

но строка вставляется в первую пустую ячейку.
Надеюсь на вашу помощь.Заранее спасибо
Фильтр на VBA по цвету ячейки
 
Всем доброго времени суток. Помогите отфильтровть данные силами VBA. Необходимо выставить фильтр с помощью VBA так чтоб остались  строки НЕ  выделенные желтым цветом. фильтр можно применить к столбцу D ... Хотя впринципе не важно к какому столбцу потому что выделена вся  строка которую нужно скрыть(желтым).И можно ли это объеденить с макросом который выделяет всю строку если в столбце L или M значение 0. Т.е. получается если в столбце L или M значение 0 то вся строка выделяется желтым , далее применяется фильтр, который  скрывает желтые строки. Получилось только через условное форматирование выделить строку со значением 0 - можно ли как то сделать с помощью VBA ?.  Облазила весь инет , столько похожей инфы но ничего конкретного - а я ж особо в этом не разбираюсь :oops: , так что выручайте)) файл прилагаю... Сенкью :* ))
Страницы: 1
Наверх