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

Страницы: 1 2 След.
Макрос копирования формул, аналог двойного клика в нижний правый угол ячейки
 
Здравствуйте!
Помогите пожалуйста автоматизировать небольшой процесс.
У меня есть таблица в  которой я прописываю в ячейках и Exel умеет заполнять нижестоящие ячейки формулами, принцип всем известен когда выделяешь ячейку с исходной формулой  и двойным кликом по нижнему правому углу протягиваешь ее вниз.

Подскажите можно прописать такой макрос которым бы мог проделывать эту операцию
Получается я выделю ячеку/ячейку или несколько ячеей с формулами (условие что они будут рядом , как в примере 1 и 2)
И запускаю макрсос котрый  растягивает формулы вниз автоматически (с учетом того что количество строк/и выделенных ячеек может меняться )
Код
Sub Fill_Blanks()
   For Each cell In Selection
       If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
   Next cell
End Sub

Нашел такой пример очень удобный но он не копирует формулы а копирует значение (
Изменено: Marat_Mamedov - 25.03.2019 21:48:41
Cуммирование записей с учетом доп. анализа
 
День добрый!
Подскажите пожалуйста можно ли решить мою задачу с помощью формулы
Есть таблица в которой есть конкретное количество повторений ID транзакции
Сама формула должна понимать какие записи уже были учитанны для суммировани и учитвать приоритет суммирования (честно даже не понимаю как это описать) я сейчас обрабатываю это глазами таким образом :
Если 3 записи по критерию .
Вариант 1
есть три записи и есть запись в которой реф начинается на JXAU* с "+" в сумме  я нахожу вторую запись с "-" в сумме и выделю цветом (сумма этих двух записей равна 0)
Вариант 2
если по одному критерию  три записи и нет записи  в которой реф начинается на JXAU* я беру любые две записи с "+" и "-" с одиновой суммой и выделю цветом (сумма этих записей равна нулю)
Если 5 записи по критерию .
Вариант 1
есть пять записей по одному критерию и  есть запись в которой реф начинается на JXAU* с "+" я нахожу вторую запись с "-" в сумме и выделю цветом (сумма этих двух записей равна 0)
остальные три записи отрабатываю по принципу
если по одному критерию  три записи  я беру любые две записи с "+" и "-" с одинаковой суммой и выделю цветом (сумма этих записей равна нулю)
Вариант 2
есть пять записей одному критерию и  нет записи в которой реф начинается на JXAU* с "+" я нахожу две записи  с "-"  и две записи с "+" в сумме и выделю цветом (сумма этих 4 записей равна 0)

Примечание:
По  одному критерию в таблице может быть только одна запись JXAU с "+"  а также суммы без учета знаков будут всегда одинаковая по одному критерию  
Удаление ячеек по маске, Помогите в модернизации макроса
 
Здравствуйте!
На форме нашел макрос который удаляет ячейки со сдвигом вверх по условию :
Код
Sub Макрос2()
    Dim iRange As Range
    Dim iText As Variant
    Dim i As Long
    iText = Array("05056280*","06056280*","01056280*") 'список слов на удаление
    For i = 0 To UBound(iText)
       Set iRange = Range("A:B").Find(What:=iText(i), LookIn:=xlFormulas, Lookat:=xlPart)
        If Not iRange Is Nothing Then
            Do
                iRange.Delete Shift:=xlShiftUp
                Set iRange = Range("A:B").Find(What:=iText(i), _
                    LookIn:=xlFormulas, Lookat:=xlPart)
            Loop Until iRange Is Nothing
        End If
    Next i
    MsgBox "ненужные строки удалены!", 64, "конец"
End Sub
Данный макрос удаляет все ячейки в диапазоне которые начинаются на 05056280 или 06056280 или 01056280 ,  подскажите как его модернизировать что бы удалили все кроме  05056280 и 06056280 и 01056280 (указать в макросе те которые нужно оставить а не удалить т.к. оставить нужно порядка 10 масок а удалить намного больше и количество масок вырастает)  
Макрос сохранения в .csv, сохранения пути оригинального файла и сохранения названия без учета расширения
 
Помогите пожалуйста настроить через макрос сохранения файлов в сsv

я использовал стандартный мастер записи макросов и у меня получилось следующее
Код
Sub SVS_invoice()

    ActiveWorkbook.SaveAs filename:= _
        "D:\Работа\Invois\Master\2016\Январь\Invoice\MCE_Invoice_01-31-2016_6250.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub
Помогите его сделать универсальным
Что бы папка для сохранения файла = папке где находится файл ктороый я пытаюсь сохранить в csv
Что бы имя нового файла файла csv = имя файла который я пытаюсь сохранить в csv без учета расширения (было MCE_Invoice_01-31-2016_6250.xsl стало MCE_Invoice_01-31-2016_6250.csv
Проставить отрицательные значения в тексте,
 
День добрый подскажите как формулой можно сделать такое
Было
2155,und,mPay,ECP,2016-07-26 10:15:25,unde,47************09,21333142,13,16,,214268720,1.00,0.01600,0.98400,UAH ,0.03,0.00048,0.02952,EUR,,,2016-07-26 10:15:25
Стало
2155,und,mPay,ECP,2016-07-26 10:15:25,unde,47************09,21333142,13,16,,214268720,-1.00,-0.01600,-0.98400,UAH ,-0.03,-0.00048,-0.02952,EUR,,,2016-07-26 10:15:25

Строка из csv отчета структура всегда одинаковая ,разделитель запятая , меняются только значения
Определение диапазона в макросе
 
Добрый день!
Уважаемые знтаnjки помогите доработать макрос
Получается я использовал обычную запись макроса, но увы он фиксирует конкретно тот диапазон который именно сейчас актуален.
Можете подправить его что бы он сам понимал какой диапазон сейчас актуален в этих местах:
Код
ActiveWorkbook.Worksheets("29095134568014").Sort.SortFields.Add Key:=Range( _         "G5:G12263"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _         xlSortTextAsNumbers - тут G5 константа а вот G12263 всегда разная так как диапазон меняется 
 .SetRange Range("A5:G12263") -  тут А5 константа а вот G12263 всегда разная так как диапазон меняется 
 Range("G12263").Select -  G12263 всегда разная так как диапазон меняется
Range("H5:H12263").Select - тут H5 константа а вот H12263 всегда разная так как диапазон меняется 
Range("H12263").Select - H12263 всегда разная так как диапазон меняется 

Весь код указал ниже. Очень прошу помочь пытался сам у меня все валится ((... (находил на форуме как определить последнюю ячейку но применить не смог)
Код
Sub Пересчет()
    Columns("H:H").Select
    Selection.ClearContents
    Range("A5:G5").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("29095134568014").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("29095134568014").Sort.SortFields.Add Key:=Range( _
        "G5:G12263"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("29095134568014").Sort
        .SetRange Range("A5:G12263")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("G12263").Select
    Selection.End(xlUp).Select
    ActiveWindow.SmallScroll Down:=-18
    Range("H5").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMIF(R[-3]C[-1]:R[2]C[-1],RC[-1],R[-3]C[-6]:R[2]C[-6])"
    Selection.AutoFill Destination:=Range("H5:H12263")
    Range("H5:H12263").Select
    Range("H5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:H").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    Range("H12263").Select
    Selection.End(xlUp).Select
   End Sub
 
Объединить файлы csv в один
 
Добрый день.
В просторах интернета не смог найти макроса для что бы "сцепить" несколько файлов csv в один (нашел примеры с xls - очень крутой, запускаешь макрос и он обьденяет фалы которые ты сам выбреешь в проводнике записывает их друг под другом)
Возможно у Вас есть примеры подобного и для csv.

 
Изменено: Marat_Mamedov - 08.09.2016 10:16:54
Макрос импорта txt , срабатывает 50/50, Срабатывает через раз , не могу понять причину по которой он делит текст по столбцам разделитель ";"
 
Добрый день .
Подскажите причину по которой макрос не всегда осуществляет разделения текста по столбцам ";" при импорте из txt

сам макрос :

Код
Sub test()
            Application.ScreenUpdating = False
            Application.Calculation = xlCalculationManual
            Application.EnableEvents = False
            Application.DisplayStatusBar = False
            Application.DisplayAlerts = False
   Sheets("report").Select ' вделить весь лист
   Sheets("report").Cells.ClearContents ' очистить
    ' импорт txt
  
    Dim wbCsv As String: wbCsv = ActiveWorkbook.Path & "\" & Worksheets("Итого").Range("$A$2").Value
    Workbooks.OpenText Filename:=wbCsv, otherchar:=";"
    With ActiveWorkbook
    .ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets("report").[a1].Cells
     .Close (True)
    End With
    ' добавить строку шапки это уже мои докруточки 
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    Range("A1").Select
    Sheets("Итого").Select
    Range("A11:A25").Select
    Selection.Copy
    Sheets("report").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Sheets("Итого").Select
    Range("A1").Select
            Application.ScreenUpdating = True
            Application.ScreenUpdating = True
            Application.Calculation = xlCalculationAutomatic
            Application.EnableEvents = True
            Application.DisplayStatusBar = True
            Application.DisplayAlerts = True
    
End Sub
 
Подскажите что тут упущено ?
Изменения знака по условию (*-1)
 
Добрый день.
Столкнулся с задачей изменения знака (*-1) числа по условию
Есть файл с листами "29242824698003","29244824698012","29095829098101","29247824698912" (это массив в котором нужно проверить ) - где нужно поменять знак в столбце B , если значение в А есть на листе справочника "OTRIC" в колонке А
Лист справочник "OTRIC" в столбце A условие
формулой это выглядит так :
=ЕСЛИ(СЧЁТЕСЛИ(OTRIC!A:A;'29242824698003'!A2)>0;B2*-1;B2)
первая проблемма что при помощи формул мне приходится создавать доп колонки так как поменять знак в столбце B я не могу
но проблема в том что по этой формуле я перебераю все значения на листах хотя по факту на листе OTRIC может быть 3 занчения а на листах кде нужно поменять знак 50 тыс.
Помогите с макросом которой брал бы значение из листа "OTRIC" и прогонял его по листам "29242824698003","29244824698012","29095829098101","29247824698912" в случаии нахождения проставлял знак "-" в следующей ячейки в колонке B. Пример прикрепляю.
Изменено: Marat_Mamedov - 11.07.2014 11:50:41
Импорт данный из DBF файлов на отдельные листы
 
Добрый день.
Пользуюсь сейчас макроса импорт данных из DBF , он  записывает записи на одном листе из всех файлов каталога выглядит он так

Код
Option Explicit

Sub CollectAllClients()     'сбор данных из файлов dbf на лист Общий
Dim BazaWb As Workbook      'текущая книга (общий файл)
Dim BazaSht As Worksheet    'лист Общий в общем файле
Dim iTempFileName As String 'имя поочерёдно открываемого файла
Dim iPath As String         'путь к папке, где лежат все файлы
Dim iLastRowBaza As Long    'последняя заполненная строка в общем файле в столбце A
Dim iLastRowTempWb As Long  'последняя заполненная строка в поочерёдно открываемом файле в столбце A
Dim iNumFiles As Long       'количество открываемых файлов
    With Application
        .ScreenUpdating = False     'отключение обновления экрана
        .DisplayAlerts = False      'отключение предупреждений
        .Calculation = xlManual     'пересчет формул
        Set BazaWb = ThisWorkbook
        Set BazaSht = BazaWb.Sheets("DBF")
        iPath = BazaWb.Path & "\"   'путь к папке с файлами dbf
        iTempFileName = Dir(iPath & "*.dbf")    'перебор всех файлов dbf
        Do While iTempFileName <> ""
            If iTempFileName <> BazaWb.Name Then    'окрытие файла dbf
                With .Workbooks.Open _
                     (Filename:=iPath & iTempFileName, UpdateLinks:=False, ReadOnly:=True)
                     iNumFiles = iNumFiles + 1
                        'последняя строка в открытом файле
                            iLastRowTempWb = .Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
                        'последняя строка в базе
                            iLastRowBaza = BazaSht.Cells(Rows.Count, 1).End(xlUp).Row + 1
                            'вносим полное имя файла dbf на лист Общий в столбец А
                          .Sheets(1).Range(Cells(2, 1), Cells(iLastRowTempWb, 14)).Copy _
                          Destination:=BazaSht.Cells(iLastRowBaza, 1)
                     .Close saveChanges:=False
                End With
            End If
            iTempFileName = Dir
        Loop
        .Calculation = xlAutomatic
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With

End Sub 
Помогите его изменить что бы заносил каждый файл в отдельный лист и если это возможно то лист называть именем файла.
Перерыл все форумы не нашел примеров (((
Суммесли возвращает 0.00999999999999091 вместо 0,01
 
Добрый день
Сломал голову не могу понять почему функция суммесли возвращает неверный результат
есть два числа критерий одни ,
первая сумма
-764.0200000000000000000000000
вторая
764.0300000000000000000000000
сумесли возвращает Значение - 0.00999999999999091
Верный ответ 0.01
Пример  прикрепляю.
Замена ActiveWorkbook.Path на путь к каталогу
 
Добрый день.
Помогите прописать вместе ActiveWorkbook.Path путь "D:\Работа\Важно\Проводки Юнистрим\Privat\ZIP\22.06.2014_7872.xml"
где 22.06.2014_7872.xml - значение ячейки A:2 на листе "Итого"
вот как выглядит код которым сейчас пользуюсь

Код
 Workbooks.Open Filename:= _
    ActiveWorkbook.Path & "\" & Worksheets("Итого").Range("$A$2").Value 
пытался прописать следующим образом

Код
 Workbooks.Open Filename:= _
    "D:\Работа\Важно\Проводки Юнистрим\Privat\ZIP" & "\" & Worksheets("Итого").Range("$A$2").Value
 
но код подсвечивается красным
пытался без кавычек с кавычками все равно ругается
Подскажите как правильно прописать этот фрагмент кода ?
Изменено: Marat_Mamedov - 23.06.2014 15:17:19
Переход окна на активную ячейку,
 
Добрый день
подскажите как доработать макрос что бы при обработки этого фрагмента макроса не просто копировать последнюю ячейку но и перемещение на нее окна EXEL что бы визуально увидеть что скопировано

Код
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(iLastRow, 1).Select
Selection.Copy 
Открытие файла , имя файла значение ячейки
 
Добрый день
Помогите доработать открытие файла записал с помощью записи получилось следующее
Код
Sub Макрос3()
    Workbooks.Open Filename:= _
        "D:\Работа\Важно\Проводки Юнистрим\Privat\ZIP\19.06.2014_7872.xml"
    Cells.Select
    Selection.Copy
    Windows("Юнистрим_report.xlsm").Activate
    ActiveSheet.Paste
End Sub 
Теперь пытаюсь заменить путь на
Код
ActiveWorkbook.Path & "\" & Worksheets("Итого").Range("$A$2").Value 
занчение A2
19.06.2014_7872.xml
что бы я не делал выскакивает ошибка (((  подсвечивает этот фрагмент
Код
Workbooks.Open Filename:= _
        ActiveWorkbook.Path & "\" & Worksheets("Итого").Range("$A$2").Value 
Проставление макросом значение #Н/Д, функция VLookup макросом, доработка
 
Добрый день.
Уважаемые эксперты помогите доработать макрос :

Код
Sub test()
Dim i As Long
Dim nRow As Long
nRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
i = 2
On Error Resume Next
While i <> nRow
    If Cells(i, 4).Value = "" Then
        Cells(i, 4).Value = WorksheetFunction.VLookup(Cells(i, 1).Value, Sheets("DBF_EO").Range("A:C"), 3, 0)
    End If
    If Cells(i, 4).Value = "" Then
        Cells(i, 4).Value = WorksheetFunction.VLookup(Cells(i, 1).Value, Sheets("DBF_EO").Range("B:C"), 2, 0)
    End If
    i = i + 1
Wend
End Sub 
Работает по принципу функции ВПР только вот незадача когда он не находит значение просталяет пусто "" и идет дальше,  можно проставлять значение "не найден"  вместо пусто "" и ити дальше ?
Пропустить ошибку в макросе в случаии если нет значения "0" в авто фильтре
 
Добрый день.
Пользуюсь следующим макросом который работает как часы когда есть значение "0"
Код
Range("A1").AutoFilter Field:=5, Criteria1:="0" 
Но когда этого значения нет он останавливается и подсвечивает строку
Код
 .Rows(2).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete 
Я в принципе понимаю что он не может удалить того чего нет (приходиться фиктивно добавлять знаечение "0" в ячейку что бы он отработал до конца
вот весь код

Код
Sub Del_SubStr29090102776930()
Sheets("29090102776930").Select
  With Range("D2", Cells(Rows.Count, "D").End(xlUp)).Offset(, 1)
      .FormulaR1C1 = "=SUMIF(C[-1],RC[-1],C[-3])"
      .Value = .Value
    End With
    Range("A1").AutoFilter Field:=5, Criteria1:="0"
    With ActiveSheet.AutoFilter.Range
      .Rows(2).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    ActiveSheet.AutoFilterMode = False
    Dim r As Range
    With ActiveSheet
        Set r = Intersect(.UsedRange, .[c:d]).Offset(1)
        r.FormulaLocal = r.FormulaLocal
    End With
     Columns("C:C").Select
    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    ActiveWindow.ScrollRow = 2
    Range("E1").Select
Sheets("Справочник").Select
    Range("A1").Select
    
End Sub
Подскажите пожалуйста как можно справиться с бедой остановки макрса так как он останавливается
"Пакетный" запуск макрасов (CALL) пропуск ошибки и запуск следующего макроса
 
Добрый день
Столкнулся с проблемой запуска нескольких макросов через один макрос с использованием Call (более 20 таких Call -ов)   вот сокращенный пример кода
Код
Sub Over()
Call CollectAllClients29091102777916
Call CollectAllClients29091102777917
Call CollectAllClients29091102777918
Call CollectAllClients29091102777919
Call CollectAllClients29091102777920
End Sub
Возможно автоматически пропускать ошибку которая возникает при обработки CollectAllClients29091102777916 и переход к обработке следующего CollectAllClients29091102777917 и так далее.
Копирования в буфер с заливкой только одной ячейки.
 
Добрый день.
Подскажите как совместить два макроса в один

1 Копирования в буфер обмена значения ячейки $I$3 при нажатии на нее.
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$I$3" Then: Call Module2.GetFormula_For_VBA
 
примечание где : Sub GetFormula_For_VBA()

Код
Sub GetFormula_For_VBA() ' скопировать в буфер обмена формулу из ActiveCell, готовую для вставки в код VBA
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText ActiveCell.Formula: .PutInClipboard
End With
End Sub 
2. Перекрашивание активной ячейки листа в случаи если заливки нет
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)   
If Target.EntireRow.Interior.ColorIndex = xlNone Then   
Target.EntireRow.Interior.ColorIndex = 6   
Else   
Target.EntireRow.Interior.ColorIndex = xlNone   
End If   
End Sub   
 
Как я только не крутил коды макросов не получаеться сделать следующее:
Стал на ячейку $I$3 если цет = "6" тогда перекрасили в xlNone , а если цевет = xlNone тогда запустился макрос GetFormula_For_VBA() + цвет ячейки изменился на "6"
Изменено: Marat_Mamedov - 12.05.2014 12:12:03
Удаление строки по условию
 
Добрый день.
Тема раздута (согласен) но не смог найти пример под свое условие который бы мог самостоятельно адаптировать (((
Столбец А
Нужно взять последнее значение ячейки в столбце А и удалить строку в которой 1 раз повторяется это значение в столбце А
Пример :
А1 = 3
А2 = 5
А3 = 6
А4=5
А5=5 (последняя заполненная ячейка)

При запуске макроса результат его обработки = удаление 2 строки так как А2 = 5
Закрытия открытых книг без сохранения по маске имени файла xls
 
Здравствуйте.
Подскажите пожалуйста существует ли код для закрытия открытых файлов xls по маске файла.
Веб ресурс генерит файлы по маске : 1 файл имя  "MTS_paymodel.xls" ,2 файл  "MTS_paymodel-1.xls", 3 файл "MTS_paymodel-2.xls"... 15 файл "MTS_paymodel-14.xls. Приходиться открывать много файлов и обрабатывать их. Возможно одним нажатием закрыть без сохранения все открытые файлы по маске.
Буду очень благодарен.
Я нашел код закрыть все открытые файлы кроме текущего активного... но он не всегда подходит ((  
Копирования ячейки при активном CommandButton
 
Добрый день.
Нашел пример копирования ячейки на этом форме. Но постоянно выскакивает ошибка когда  "Выкл."  и когда "Вкл"
Когда Вкл. - понятно почему работает макрос копирования активной ячейки
Но когда "Выкл" - не могу работать с несколькими ячейками.
Подскажите как поправить  
Копирования значения ячейки в буфер обмена
 
Добрый день
Есть простейший макрос который запускается при нажатии на ячейку  K4

Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$K$4" Then: Call Module2.tt1
 End Sub 

Код
Sub tt1()
Range("K4").Select
Selection.Copy
End Sub 
К4 = "29095102776902"
Подскажите как  прописать копирования именно значения а не ячейки
Импорт данных из csv, маска имени файла
 
Добрый день.
Записал свои действия импорта csv файла

Код
Sub Макрос2()

    Range("A2").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;D:\Работа\Важно\зк\04\29\ZKrpU20140429.csv", Destination:=Range("$A$2") _
        )
        .Name = "ZKrpU20140429_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 866
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileOtherDelimiter = "("
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub 
Подскажите как правильно прописать что бы он открывал файл по маске названия файла - ZKrpU*.csv ?
Макросом: пересчет ВПР если в пустых ячейках, если не пустая просто пропускает
 
Здравствуйте.
Столкнулся с проблемой использования ВПР так как приходится постоянно менять просматриваемый массив лист "DBF" .
Помогите с Макросом который будет проставлять значение (аналог функции ВПР только в пустых ячейках) , у меня три листа обновляются через ВПР с одного листа "DBF" , и поэтому приходится постоянно дописывать информацию на листе "DBF"  или заменять результаты формул значениями. Возможно это дело поставить на макрос. к примеру  зашел на 2 лист запустил макрос и информация одновилась только в пустых ячейках если ее нет но так и оставит пустое значение , и так на всех листах .    подробнее в примере
Спасибо.
Суммесли, удаление строки если суммесли = 0
 
Добрый день.
Прошу помощи с макросом.
Есть таблица A:D (количество записей большое).
В таблице критерий суммирования в столбце D диапазон суммирования B
Необходимо проставить в столбец E результат суммирования
После удалить все строки с значением =0 ,
Постарался подробно описать в примере.
Спасибо.
Оптимизация импорта из csv
 
Доброго времени суток. Прошу помочь мне облегчить макрос записанный через авто запись.
Макрос выполняет импорт файла (файл всегда с одинаковой структурой,но разный по количеству записей ),выполняет импорт только нужных столбцов,после чего форматирование полученных столбцов. Код ужасно напрягает ПК.
код здесь
Импорт из DBF
 
Здравствуйте.
Прошу помочь разобраться в макросе который нашел здесь в примерах
Код
Sub Import_DBF() 
Dim strSQL$, Ph$, Fl$, Fld$, ADR$ 
Ph = "C:\" 'Путь к файлу 
Fl = "CLIENTS" 'Имя импортируемого файла 
Fld = "[INN],[TITLE]" 'имена импортируемых полей, через запятую 
ADR = "A1" ' Куда вставляем данные 
With ActiveSheet.QueryTables.Add(Connection:=Array( _ 
"OLEDB;Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""CollatingSequence=ASCII;DBQ=" & Ph & ";DefaultDir=" & Ph & ";" _ 
& "Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase IV;""" _ 
& ";Initial Catalog=" & Ph & ""), Destination:=Range(ADR)) 
.CommandType = 2 '2-Sql 3-table 
strSQL = "SELECT " & Fld _ 
& " FROM `" & Ph & "`\`" & Fl & "`" 
.CommandText = Array(strSQL) 
.Refresh BackgroundQuery:=False 
.Delete 
End With 
End Sub 

Этот код нашел на форуме вроде бы все "понятно" с учетом моих))... Заменил переменные у меня получился код
Цитата

Sub Import_DBF()
Dim strSQL$, Ph$, Fl$, Fld$, ADR$
Ph = "G:\"
Fl = "20130614_Qiwi_Daily.dbf"
Fld = "[oper_date],[sec_code],[send_sum]"
ADR = "A1"
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""CollatingSequence=ASCII;DBQ=" & Ph & ";DefaultDir=" & Ph & ";" _
& "Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase IV;""" _
& ";Initial Catalog=" & Ph & "" ;) , Destination:=Range(ADR))
.CommandType = 2 '2-Sql 3-table
strSQL = "SELECT " & Fld _
& " FROM `" & Ph & "`\`" & Fl & "`"
.CommandText = Array(strSQL)
.Refresh BackgroundQuery:=False
.Delete
End With
End Sub
При запуске макроса у меня подсвечивается желтым .Refresh BackgroundQuery:=False
Понять почему он ругается не могу. Подскажите что нужно исправить в коде чтобы шайтан машина выдавала результат ))
Помогите прикрутить код позволяющий изменять прозрачность формы
 
Здравствуйте . В который раз прошу Вашей помощи, на форуме нашел пример который позволяет Юзеру изменять прозрачность формы.
Как я только не пытался, добавить эту возможность к уже существующим, все безуспешно
прикрепляю пример моей формы и пример с форума ссылка :
http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9843&action=download
Помогите пожалуйста добавить эту возможность

Файлы удалены. Суммарный размер больше 100 кБ [МОДЕРАТОР]
Изменено: Marat_Mamedov - 24.03.2013 23:26:04 (с учетом замечания модератора )
Ограничения заполнения формы с возможностью автозаполнения
 
Здравствуй. Вчера,спасибо вашему форуму полный примеров и отзывчивых пользователей, была создано форма которая сегодня удачно перекочевала в работу 10-ти сотрудникам, которые весь день вносили данные , вечером скидывают мне их обратно и я формирую итоговую и сводную , и тут началось самое печальное я думал это сократит ошибки (ручное внесение данных) но оказалось что их практически не уменьшилось(((
и обработка их данных по времени не уменьшилось , а вот сотрудники довольны типо так быстрей спасибо )))

Поэтому прошу в который раз меня выручить сам я не справлюсь.
Прикрепляю пример формы. Настроен он сейчас по аналогу примеров которые нашел у Вас на форуме.
Для исключения (сведению до минимума) ошибок ввода информации (останется конечно человеческий фактор) нужна возможность проверки вносимых данных :

поле "счет" - Me.TextBox6.Text = "" 'Счет F - вносить только те счета которые есть в списке счетов на лиcте "словари" в колонке G в противном случаи MsgBox "Счет не найден!"

поле "комментарий -.Cells(iLastRow, "G") = Me.ComboBox1.Value 'Коментарии - только из выпадающего списка

поле "сумма"-Me.TextBox4.Text = "" 'Сумма D-вносить только число (разделитель "." возможность
отрицательных сумм)
и последний просьба автозаполнение полей без возможности редактирования пользователем но при возможности оставить их в форме что бы сотрудник видел а именно
Me.TextBox2.Text = "" 'система B - значение из листа "Словари" колонки H
Me.TextBox5.Text = "" 'Валюта E - значение из листа "Словари" колонки I
Me.TextBox9.Text = "" 'Счет(комментарий) I - значение из листа "Словари" колонки J
по критерию данных введенных в поле "счет" - Me.TextBox6.Text = "" 'Счет F по принципу функции ВПР из таблицы G2:J на листе "Словари"

Надеюсь на вашу помощь в реализации , простите за наглость но я действительно в тупике так как не могу самостоятельно с теми знаниями "0" реализовать эту форму
Изменено: Marat_Mamedov - 22.03.2013 23:54:09
Форма ввода данных
 
Доброго времени суток.
    Столкнулся с проблемой использования ввода данных через форму.
Когда я активирую форму для ввода данных она закрепляется на переднем плане всего Excel ? возможно ее закрепить только на листе "Заказы" что бы можно было свободно перемещаться по листам и книгам копироватьи вставлять нужную информацию?
Страницы: 1 2 След.
Наверх