Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Спасибо всем! Работают оба варианта.  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Результат формулы отображается не в начале ячейки, а после пробела (энтера), на второй строке внутри ячейки, где и находился ИНН в исходной ячейке, по этому поиск через Индкс поискпоз не работает.  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Благодарю!!! ТОП! Всё работает.  

Возникла еще одна проблема, я сверяю через INDEX MATCH, формула не сопоставляет одинаковые значения, причина в том, что даже если я копирую результаты формулы и вставляю их как значения, то в ячейке эти значения находятся в середине ячейки, т.е. после разрыва.

так отображается в строке формула - по середине. если убрать внутренний Enter, то тогда всё ок.
___________
7786678676  
__________
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
ААА, char(10) это разрыв строки  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
А почему по формуле именно 12 символов отсчитывает и цепляет, если ИНН 10 символов еще и две буквы названия компании?

Сейчас разбираюсь с функцией CHAR() на https://www.planetaexcel.ru/techniques/25/2568/ понял что преобразовывает значения в ячейках в символы ASCII, но как работает в  формуле пока не до конца понял, видимо считает количество этих символов.  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Так файл корректный. Я же написал выше ячейки по столбцу D (Одуванчик) и что файл форматирован оригинально, ячейки объединены. Не знаю почему у вас расчет по ячейке H.  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Просто на ячейке D (корректная) формула ограничена 12 символами и поэтому берет часть из счета и часть из ИНН.  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Да, вижу сейчас попробую разобраться. Спасибо!!!
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
по количеству символов это моя первая идея, но ИНН может быть 10 и 12 значным.  
Изменено: RADLE - 4 фев 2021 11:59:44
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Только там больше операций (строк) от 10 до 50, все необходимо проверить по ИНН. Я так понимаю это будет слишком большая формула?  
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Цитата
Ячейки по столбцу D средняя строка в ячейке 7734360021
Ячейки по столбцу D средняя строка в ячейке 7734360021
Изменено: RADLE - 4 фев 2021 11:47:37
Выделить ИНН из ячейки в банковской выписки для дальнейшего поиска
 
Добрый день.

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

Файл во вложении - отформатирован в оригинальном виде с объединенными ячейкми.    
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Дмитрий(The_Prist) Щербаков, благодарю! Очень простое решение через, как раз для моего уровня. Буду учить и буду стараться правильно публиковать вопросы.  
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Дмитрий(The_Prist) Щербаков, да это верный кусок. я пробовал через IF, но в моем коде выдал ошибку типа "не видит блока IF", видимо, я неправильно использую оператор IF несколько раз. Ок, IF iPapka не равно нулю Then открытие и работа с фалом, а если этого фала нет и дальше еще 3 таких куска для трех других файлов через ElseIF и Else у меня тоже не получилось.
Грубо говоря там несколько таких кусков и по сути они одинаковые - просто сначала открывает один файла, форматирует, вставляет в общий. iLast отсчитывает последнюю пустую ячейку в общем, чтобы из следующего файла данный вставлялись под уже вставленные ранее.
Я циклы не очень понимаю, по этому и делаю, как могу. Но представляю, что надо iLast загонять в цикл, другие переменные и названия файлов.  

 
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Jack Famous,  не знал, что в наше время еще остались такие закомплексованные типы на форумах ;)  
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Я могу здесь получить помощь или нет?
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Код
Sub OTKR()

ddate = DateAdd("d", 0, Sheets("Menu").Cells(3, 3).Value)
ddate1 = ddate + 1
ddate2 = ddate + 2
ddate3 = ddate + 3
fDate = Format(ddate, "m\/d\/yyyy")

Dim ITK, IOK As String
Dim iLast As Long
Dim iFirst As String
Dim iName As String
Dim iName1 As String
Dim iName2 As String
Dim iName3 As String
Dim iName4 As String

ITK = ThisWorkbook.Name
 
sDay = Format(ddate, "dd")
sMonth = Format(ddate, "mm")
sYear = Format(ddate, "yyyy")
sDay1 = Format(ddate1, "dd")
sMonth1 = Format(ddate1, "mm")
sYear1 = Format(ddate1, "yyyy")
sDay2 = Format(ddate2, "dd")
sMonth2 = Format(ddate2, "mm")
sYear2 = Format(ddate2, "yyyy")

iYmd = sYear + sMonth + sDay
iYmd1 = sYear1 + sMonth1 + sDay1
iYmd2 = sYear2 + sMonth2 + sDay2

iName = "33_D" & iYmd & ".xlsx"
iName1 = "33_D" & iYmd1 & ".xlsx"
iName2 = "33_D" & iYmd2 & ".xlsx"
iName3 = "16_D" & iYmd1 & ".xlsx"
iName4 = "16_D" & iYmd2 & ".xlsx"

iPapka = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName
iPapka1 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName1
iPapka2 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName2
iPapka3 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName3
iPapka4 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName4

    
    indir = sDay + sMonth
    odir = "C:\Users\eabuzyarov\Desktop\d140\d140_" & indir & ".txt"
    IOK = Dir(odir)
    
    inp = Mid(odir, 4)
    inp2 = Right(inp, 13)
    Inp3 = Left(inp, 3)
    SSheet1 = Mid(ddate, 4)
    SSheet2 = Left(SSheet1, 2)
    
     With Application
       .ScreenUpdating = False
       .Visible = True
       .DisplayAlerts = False
   End With
    
    Workbooks.OpenText Filename:= _
        odir, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
        
Columns("A:AQ").Select
Selection.AutoFilter
Selection.AutoFilter Field:=25, Criteria1:="<>0", Operator:=xlAnd
Selection.AutoFilter Field:=17, Criteria1:="<>*Direct*", Criteria2:="<>*cash*", Operator:=xlAnd

Range("Z2:Z1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(LastRow, 1).Offset(1, 0).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("O2:O1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 1).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("Q2:Q1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 2).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("V2:V1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 3).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("AA2:AA1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 4).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("Y2:Y1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 5).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("AK2:AK1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 6).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("T2:T1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 7).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("U2:U1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 8).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

lLastCol = Cells(LastRow + 1, Columns.Count).End(xlToLeft).Column
lLastRow = Cells(LastRow + 1, 3).End(xlDown).Row

ActiveWorkbook.Worksheets(SSheet2).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(SSheet2).Sort.SortFields.Add Key:=Range(Cells(LastRow + 1, 6), Cells(LastRow, 6)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(SSheet2).Sort
        .SetRange Range(Cells(LastRow + 1, 1), Cells(lLastRow, 9))
        .Header = xlNo
        .MatchCase = True
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Windows(IOK).Activate
Windows(IOK).Close

Workbooks.OpenText Filename:= _
        iPapka1, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
        
INK = Dir(iPapka)
INK1 = Dir(iPapka1)
INK2 = Dir(iPapka2)
INK3 = Dir(iPapka3)
INK4 = Dir(iPapka4)
            
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

 ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(2, fDate)
        
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste
Windows(INK1).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK1).Activate
Windows(INK1).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row

Workbooks.OpenText Filename:= _
        iPapka2, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

 ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(2, fDate)
        
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK2).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK2).Activate
Windows(INK2).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row

Workbooks.OpenText Filename:= _
        iPapka3, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

 ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(2, fDate)
        
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste



Windows(INK3).Activate
ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK3).Activate
Windows(INK3).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row

Workbooks.OpenText Filename:= _
        iPapka4, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

 ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(2, fDate)
        
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste


Windows(INK4).Activate
ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK4).Activate
Windows(INK4).Close

End Sub



BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Нет, там никто не отвечает, я не правильно опубликовал код и не могу удалить сообщения. Как правильно вложить код тоже не знаю.

Короче, весело у вас. Там никто ответить не может, здесь сразу прилетел ответ.  
BA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Добрый день.

Написал Макрос для сверки данных из двух источников, один формирует данные в одном фале, другой источник несколько.
Название файлов задается исходя из даты и других параметров. Короче, данные из разных источников собираются в одном общем файле и сверяются - это работает. Загвоздка в том, что из второго источника максиму должно быть 5 файлов, но может и меньше и когда макрос натыкается на то, что файла нет возникает ошибка. On error и  переход к следующему файлу работает только один раз в программе, через IF и номер ошибки тоже не получается. Как можно сделать, если одного, двух фалов нет, макрос переходил к следующему действию и заканчивался?
Resume next думаю не подойдёт, тк после открытия файла восполняются действия с ним филтраци, выделение нужных строк и перенос в общий файл. И если прописать resume next эти действия будут выполнять в активном таблице, нужен именно переход к следующему файлу и выполнения действий уже над ним, если он есть.
Через IF Then пробовал как вы и написали. Я не особо понимаю как несколько раз приметь его, допустим 4 раза. Я прописывал его перед каждым открытием каждого файла и завершал end if, но он выходила ошибка что нет блока для end if. Т.е. Workbooks.Open Filename:= iFile1... далее действия над файлом, фильтрация, выделение необходимых данных, перенос в основную книгу, закрытие открытого файла.


И подскажите, как правильно вставлять код.  
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Как удалить сообщение и как правильно вставить в него код?
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Sub OTKR()

ddate = DateAdd("d", 0, Sheets("Menu").Cells(3, 3).Value)
ddate1 = ddate + 1
ddate2 = ddate + 2
ddate3 = ddate + 3
fDate = Format(ddate, "m\/d\/yyyy")

Dim ITK, IOK As String
Dim iLast As Long
Dim iName As String
Dim iName1 As String
Dim iName2 As String
Dim iName3 As String
Dim iName4 As String

ITK = ThisWorkbook.Name

sDay = Format(ddate, "dd")
sMonth = Format(ddate, "mm")
sYear = Format(ddate, "yyyy")
sDay1 = Format(ddate1, "dd")
sMonth1 = Format(ddate1, "mm")
sYear1 = Format(ddate1, "yyyy")
sDay2 = Format(ddate2, "dd")
sMonth2 = Format(ddate2, "mm")
sYear2 = Format(ddate2, "yyyy")

iYmd = sYear + sMonth + sDay
iYmd1 = sYear1 + sMonth1 + sDay1
iYmd2 = sYear2 + sMonth2 + sDay2

iName = "33_D" & iYmd & ".xlsx"
iName1 = "33_D" & iYmd1 & ".xlsx"
iName2 = "33_D" & iYmd2 & ".xlsx"
iName3 = "16_D" & iYmd1 & ".xlsx"
iName4 = "16_D" & iYmd2 & ".xlsx"

iPapka = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName
iPapka1 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName1
iPapka2 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName2
iPapka3 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName3
iPapka4 = "C:\Users\eabuzyarov\Desktop\Bank Reports\" & "*" & iName4
   
   indir = sDay + sMonth
   odir = "C:\Users\eabuzyarov\Desktop\d140\d140_" & indir & ".txt"
   IOK = Dir(odir)
   
   inp = Mid(odir, 4)
   inp2 = Right(inp, 13)
   Inp3 = Left(inp, 3)
   SSheet1 = Mid(ddate, 4)
   SSheet2 = Left(SSheet1, 2)
   
    With Application
      .ScreenUpdating = False
      .Visible = True
      .DisplayAlerts = False
  End With
   
   Workbooks.OpenText Filename:= _
       odir, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
       
Columns("A:AQ").Select
Selection.AutoFilter
Selection.AutoFilter Field:=25, Criteria1:="<>0", Operator:=xlAnd
Selection.AutoFilter Field:=17, Criteria1:="<>*Direct*", Criteria2:="<>*cash*", Operator:=xlAnd

Range("Z2:Z1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(LastRow, 1).Offset(1, 0).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("O2:O1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 1).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("Q2:Q1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 2).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("V2:V1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 3).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("AA2:AA1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 4).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("Y2:Y1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 5).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("AK2:AK1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 6).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("T2:T1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 7).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(IOK).Activate
Range("U2:U1000").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 8).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

lLastCol = Cells(LastRow + 1, Columns.Count).End(xlToLeft).Column
lLastRow = Cells(LastRow + 1, 3).End(xlDown).Row

ActiveWorkbook.Worksheets(SSheet2).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(SSheet2).Sort.SortFields.Add Key:=Range(Cells(LastRow + 1, 6), Cells(LastRow, 6)) _
       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(SSheet2).Sort
       .SetRange Range(Cells(LastRow + 1, 1), Cells(lLastRow, 9))
       .Header = xlNo
       .MatchCase = True
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With

Windows(IOK).Activate
Windows(IOK).Close

Workbooks.OpenText Filename:= _
       iPapka1, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
       
INK = Dir(iPapka)
INK1 = Dir(iPapka1)
INK2 = Dir(iPapka2)
INK3 = Dir(iPapka3)
INK4 = Dir(iPapka4)
             
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
       xlFilterValues, Criteria2:=Array(2, fDate)
       
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste
Windows(INK1).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(LastRow + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK1).Activate
Windows(INK1).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row

Workbooks.OpenText Filename:= _
       iPapka2, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
       xlFilterValues, Criteria2:=Array(2, fDate)
       
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK2).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK2).Activate
Windows(INK2).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row

Workbooks.OpenText Filename:= _
       iPapka3, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
       xlFilterValues, Criteria2:=Array(2, fDate)
       
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK3).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK3).Activate
Windows(INK3).Close

iLast = Cells(Rows.Count, 11).End(xlUp).Row


Workbooks.OpenText Filename:= _
       iPapka4, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Range("A3:K100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=blanks, Operator:=xlAnd

Range("A4:K100").SpecialCells(xlCellTypeVisible).EntireRow.Delete

ActiveSheet.Range("$A$3:$K$41").AutoFilter Field:=3, Operator:= _
       xlFilterValues, Criteria2:=Array(2, fDate)
       
ActiveSheet.Range("$C$4:$C$100").Select
Selection.Copy

Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 10).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK4).Activate

ActiveSheet.Range("$F$4:$I$100").Select
Selection.Copy
Windows(ITK).Activate
Sheets(SSheet2).Select
Cells(iLast + 1, 1).Offset(0, 11).Select
'Cells(LastRow, 1).Offset(1, 0).Select
ActiveSheet.Paste

Windows(INK4).Activate
Windows(INK4).Close





End Sub
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Через IF Then пробовал как вы и написали. Я не особо понимаю как несколько раз приметь его, допустим 4 раза. Я прописывал его перед каждым открытием каждого файла и завершал end if, но он выходила ошибка что нет блока для end if. Т.е. Workbooks.Open Filename:= iFile1... далее действия над файлом, фильтрация, выделение необходимых данных, перенос в основную книгу, закрытие открытого файла.
Я написал код с телефона, но попросили исправить, тк с телефона не могу кинуть полноценный код, я его удалил. тогда в понедельник выложу. Спасибо.
Изменено: RADLE - 23 янв 2021 22:31:12
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Resume next думаю не подойдёт, тк после открытия файла восполняются действия с ним филтраци, выделение нужных строк и перенос в общий файл. И если прописать resume next эти действия будут выполнять в активном таблице, нужен именно переход к следующему файлу и выполнения действий уже над ним, если он есть. Ок. В понедельник скину код  
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Может есть возможность обнулить счетчик ошибок On Error и запустить его повторно?
VBA переход к следующему действию если файла нет, VBA ошибка если файл отсутствует в папке
 
Добрый день.

Написал Макрос для сверки данных из двух источников, один формирует данные в одном фале, другой источник несколько.
Название файлов задается исходя из даты и других параметров. Короче, данные из разных источников собираются в одном общем файле и сверяются - это работает. Загвоздка в том, что из второго источника максиму должно быть 5 файлов, но может и меньше и когда макрос натыкается на то, что файла нет возникает ошибка. On error и  переход к следующему файлу работает только один раз в программе, через IF и номер ошибки тоже не получается. Как можно сделать, если одного, двух фалов нет, макрос переходил к следующему действию и заканчивался?

код не могу скинуть, писал на работе.  
Ссылка на определенный лист Excel формулой
 
Супер, спасибо!!!!
Ссылка на определенный лист Excel формулой
 
Дмитрий спасибо, понял. Но видимо я не правильно задал вопрос, необходимо чтобы в ячейке, где формула была не ссылка на тот лист и ячейку, а значение из того листа и ячейки. Такое возможно?  
Ссылка на определенный лист Excel формулой
 
Добрый день.

Подскажите, пожалуйста, есть ли возможность в форммуле ссылаться на определенный Лист по заданным условиям. Например назвать листы 1,2,3,4...В формуле использовать функция Day() которая будет возвращать дату в определенное число и за счет этого ссылаться на нужный Лист с данными. Это не работает, но есть ли какая то возможность сделать это через формулу?
Как избежать вставки ячеек при повторном выполнении импорта текста
 
Есть файл Excel с макросом (код я написал), этот файл импортирует данные txt файлов на свои соответсвующие вкладки вкладки (три файла txt импортируются на три вкладки), а на главном листе файла Excel (с макросом) прописаны формылы, консолидирующие данные с вкладок, который мы импортировали из txt, в определенный отчет. И когда я проверяю данный отчет я вижу, что в нем в формулах смещены ссылки на ячейки, смещение происходи вправо. Как я понял, смещение происходи если импорт делать несколько раз подряд, данные на вкладки импортируются со смещением относительно предыдущего импорта и почему-то меняются ссылки в формулах.  
Как избежать вставки ячеек при повторном выполнении импорта текста
 
Посмотрел файл, так как сотрудник его сохранил, видимо сотрудник делал импорт данных из txt трижды, так как на вкладке три массива следующих один за дргим вправо и смещение в формуле происходит ровно на ширину каждого массива, т.е. формула берет ширину последнего выгруженного массива данных

На скрине обозначил желтым куда произошло смещение, Толстымми линиями разграничена каждая выгрузка.

А не молгли бы в таком случае подсказать, т.е. код данного макроса, записанного рекрдером, работает так, что заполняет данные в первую пустую ячейку (столбец) и смещает каждую выгрузку правее относительно предыдущей?  
Изменено: RADLE - 4 мар 2020 13:58:57
Страницы: 1 2 След.
Наверх