Здравствуйте! Кто сможет помочь с такой вот задачей. Есть файл1 с макросом, который открывает файл2 и забивает в ячейку Таблицы файла1 путь к Файлу2 (расположение файла) Возможно ли это решить с помощью макроса?
Дорогие форумчане, назрел очередной вопрос: В документе я проверяю листы на наличие определенных ячеек (B2, B3, B6) на заполненность,а затем они выводятся на табло через RefEdit. Макрос работает,но показывает лишь первую из незаполненных ячеек из Активного Листа. Мне же необходимо,чтобы на Табло выводились результаты всех Листов со всеми пустыми ячейками(B2, B3, B6)
Код
If Range("B2") = "" Then
RefEdit1 = "Отсутствует предприятие" & " " & ActiveSheet.Name
ElseIf Range("B3") = "" Then
RefEdit1 = "Отсутствует Период" & " " & ActiveSheet.Name
ElseIf Range("B6") = "" Then
RefEdit1 = "Отсутствует Продукт" & " " & ActiveSheet.Name
Else
RefEdit1 = "Документ полный"
End If
В данном случае при вызове Button документ выбирается 2 раза и открывается при второй части кода. Как осуществить единый запрос и открытие файла и не потерять проверку листов
Код
Dim varFileName As Variant
varFileName = Application.GetOpenFilename("Excel Files (*.xls),*.xls", , "Pick a file")
If varFileName = False Then
Label1.Caption = "Файл не выбран"
Else
Label1.Caption = varFileName
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = ""
.Filters.Clear
.Filters.Add "Excel 2003", "*.xls"
.Filters.Add "All Files", "*.*"
If .Show = True Then
txtFileName = .SelectedItems(1)
End If
End With
'MsgBox (txtFileName)
Workbooks.Open txtFileName
If Range("B2") = "" Then
RefEdit1 = "Отсутствует Предприятие" & " " & ActiveSheet.Name
ElseIf Range("B3") = "" Then
RefEdit1 = "Отсутствует Продукт" & " " & ActiveSheet.Name
ElseIf Range("B6") = "" Then
RefEdit1 = "Отсутствует Цех" & " " & ActiveSheet.Name
Else
RefEdit1 = "Документ полный"
End If
Здравствуйте! Подскажите пожалуйста каким образом копировать значение ячеек и перенести в общую таблицу Другого(!) файла Таблица.xls: 1. По ее адресу (5 ячеек) Желтые B2 в столбец B, B3 в столбец A, B6 в столбец C C9 в столбец F G9 в столбец G 2. По названию строки и столбца(2 ячейки) Зеленые (Себестоимость(столбец) - Сумма(план)), адрес ячейки в разных файлах в этом случае будет меняться и копировать эту ячейку опять же в общую таблицу в столбец D (Себестоимость(столбец) - Сумма(факт)) в столбец E
Файл Таблица копит в себе значения из файлов(Предприятие1, Предприятие2....)
Здравствуйте! подскажите пожалуйста как мне обращаться не к определенному файлу(как в моем случае "Проверка" ),а к любому файлу из общей папки либо же множественный выбор?
Код
Private Sub CommandButton3_Click()
Dim Period As String
Dim FoundPeriod As Range
Dim iSebest As String
Dim FoundSebest As Range
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim Sht As Worksheet
Dim Wb_покупки As Workbook
Set Wb_покупки = Workbooks("Проверка")
With Wb_покупки
For j = 1 To 8
Period = Split(.Cells(1, j), "-")(0)
iSebest = Split(.Cells(1, j), "-")(1)
n = 0
For Each Sht In .Worksheets
With Sht
Set FoundPeriod = .Rows(1).Find(Period, , xlValues, xlWhole)
Set FoundSebest = .Columns(1).Find(iSebest, , xlValues, xlWhole)
Cells(2 + n, j) = .Cells(FoundSebest.Row, FoundPeriod.Column)
End With
n = n + 1
Next
Next j
End With
End Sub
Private Sub CommandButton1_Click()
Dim fd As FileDialog
Dim iPath As String
Dim iFileName As String
Dim iSheet As Worksheet
Dim Fact As String
Dim FoundFact As Range
Dim iSebest As String
Dim FoundSebest As Range
Dim i As Integer
Dim j As Integer
Dim n As Integer
'Dim Sht As Worksheet
Dim Wb_Tovar As Workbook
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
.initialFilename = ThisWorkbook.path
.Title = "Откройте папку и нажмите кнопку выбрать"
.ButtonName = "Выбрать"
If .Show = -1 Then
iPath = .SelectedItems(1) & Application.PathSeparator
Else
Exit Sub
End If
End With
Set fd = Nothing
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
iFileName = Dir(iPath & "*.xls")
Do While iFileName$ <> ""
With Workbooks.Open(Filename:=iPath & iFileName, UpdateLinks:=0)
For Each iSheet In .Sheets
For j = 1 To 8
Fact = Split(Cells(1, j), "-")(0)
iSebest = Split(Cells(1, j), "-")(1)
With Wb_Tovar
n = 0
For Each Sht In .Worksheets
With Sht
Set FoundFact = .Rows(1).Find(Fact, , xlValues, xlWhole)
Set FoundSebest = .Columns(1).Find(iSebest, , xlValues, xlWhole)
Cells(2 + n, j) = .Cells(FoundSebest.Row, FoundFact.Column)
End With
n = n + 1
Next
End With
Next
Next
.Close saveChanges:=True
End With
iFileName$ = Dir
Dim varFileName As Variant
varFileName = Application.GetOpenFilename("Excel Files (*.xls),*.xls", , "Pick a file")
If varFileName = False Then
Label1.Caption = "Файл не выбран"
Else
Label1.Caption = varFileName
'Dim fd As Office.FileDialog
'Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
'.AllowMultiSelect = False
'.Title = ""
'.Filters.Clear
'.Filters.Add "Excel 2003", "*.xls"
'.Filters.Add "All Files", "*.*"
'If .Show = True Then
'txtFileName = .SelectedItems(1)
'End If
End With
'MsgBox (txtFileName)
Workbooks.Open txtFileName
If Range("B2") = "" Then
RefEdit1 = "Не найден товар 1" & " " & ActiveSheet.Name
ElseIf Range("B3") = "" Then
RefEdit1 = "Не найден товар 2" & " " & ActiveSheet.Name
ElseIf Range("B6") = "" Then
RefEdit1 = "Не найден товар 3" & " " & ActiveSheet.Name
Else
RefEdit1 = "Товар в наличии"
End If
End If
End Sub
Совсем не продвигается это дело с ячейками... Суть макроса в том,чтобы копировать значение ячеки со всех листов файла Покупки по названию строки и столбца и перенос в ячейки столбца А файла Затраты
Вынести Яблоки за Февраль из документа Покупки и перенести в ячейку A файла Затраты
Дорогие форумчане, столкнулась с такой проблемой. Макрос проверяет определенные ячейки на заполненность и в случае пустой ячейки выводит соответствующую ошибку : Отсутствует ячейка...... Результат на всех проверках "Отсутствует ячейка с яблоками". Можете пожалуйста подсказать 1. В чем ошибка? 2. Как сделать так,чтобы ошибка показывала в каком именно листе она находится(т.е. где именно отсутствует та или иная ячейка)?
Код
If Range("B2") = "" Then
RefEdit1 = "Отсутствует ячейка с яблоками"
ElseIf Range("B3") = "" Then
RefEdit1 = "Отсутствует ячейка с грушами"
ElseIf Range("G9") = "" Then
RefEdit1 = "Отсутствует ячейка со сливами"
Else
RefEdit1 = "Документ правильный"
End If
End If
Уважаемые, форумчане! Подскажите пожалуйста как использовать эту формулу(мне помогли с ней) в CommandButton UserForm VBA?
Поиск ячейки по названию строки и столбца
Код
Function tt(R_Name As String, C_Name As String, Rng As Range)
Dim R As Long, C As Long
On Error Resume Next
With Application.WorksheetFunction
R = .Match(R_Name, Range(Rng.Offset(, -1).Columns(1).Address(1, 1, xlA1, 1, 1)), 0)
If Err Then Exit Function
C = .IfError(.Match(C_Name, Range(Rng.Offset(-1).Rows(1).Address(1, 1, xlA1, 1, 1)), 0), 0)
If Err Then Exit Function
tt = .Index(Rng, R, C)
End With
End Function
Здравствуйте,дорогие форумчане! Хотела бы поинтересоваться, можно ли скопировать значение необходимой ячейки по названию строки и столбца и перенести в другую книгу с помощью Макроса ? К примеру необходимо скопировать значение ячейки Яблоки-Март из документа Покупки и перенести в документ Затраты Быть может двумерный массив?
Здравствуйте! в UserForm добавила Command Button и RefEdit. В Command Button прописала условие, чтобы макрос выводил сообщение на RefEdit: 1. При пустой ячейке выводил соответствующую ошибку(Отсутствует....) 2. При заполненной ячейке(Документ правильный)
и так по всему документу. Не могу найти причину, почему при всех случаях выводит "Документ правильный", независимо правильный документ или нет
Задача Макроса: проверка документа на наличие заполненности определенных ячеек. Если в каком либо листе хотя бы одна ячейка отсутствует, выводить ошибку на RefEdit.Если все в порядке,загружать данные из всех таблиц в один документ Form