powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подкачка данных из другой таблицы с условием
11 сообщений из 11, страница 1 из 1
Подкачка данных из другой таблицы с условием
    #36114807
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
нужно осуществить подкачку данных, а именно ячейки в строку, из другой таблицы excel при условии совпадения в данной строке других 3-х ячеек.
Т.е при совпадении даты смены и номера машины в одной строке, количество изготовленной продукции должна скопироваться в соответствующую ячейку другого файла
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36114990
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подкачку сделал следующим образом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub Button2_Click()
Dim i As Integer

For i =  0  To  10  Step  1 

If (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i,  1 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  1 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i,  2 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  2 )) Then


Windows("BD_VBA.xls").Activate
Cells( 5  + i,  5 ).Select
Selection.Copy
Windows("book2.xls").Activate
Cells( 3  + i,  9 ).Select
ActiveSheet.Paste

End If

Next i

End Sub
но если второй файл не запущен тогда не срабатывает, подскажите плиз как это исправить
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36115644
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nik_Koraman
> но если второй файл не запущен тогда не срабатывает, подскажите плиз как это исправить

Проверять открыт ли нужный файл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim sh As Worksheet
On Error Resume Next
Set sh = Application.Workbooks("BD_VBA.xls")
If Err.Number <>  0  Then
   MsgBox "Откройте нужный файл"
   Exit Sub
EndIf
'Дальше код выполнения переноса данных



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36116160
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему-то даже при открытом файле он пишет "откройте файл"
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36116225
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nik_Koraman
> почему-то даже при открытом файле он пишет "откройте файл"

Код покажи


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36117053
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
Sub Button2_Click()

'Дальше код выполнения переноса данных

Dim i As Integer
Dim j As Integer
Dim s As Long
Dim s1 As Long
Dim s2 As Long
Dim s3 As Long
Dim n As Integer
Dim p As Integer
Dim nn As Integer
n = Worksheets("sheet1").Cells( 1 ,  18 ).Value -  1 
nn = Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 1 ,  18 ).Value


For i =  0  To n Step  1 
j =  0 
For j =  0  To nn Step  1 
If (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  1 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  1 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  2 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  2 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  8 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  3 )) Then


Windows("BD_VBA.xls").Activate
Cells( 5  + i + j,  5 ).Select
Selection.Copy
Windows("book2.xls").Activate
Cells( 3  + i,  9 ).Select
ActiveSheet.Paste

End If
Next j
Next i

For i =  0  To n Step  1 
j =  0 
For j =  0  To nn Step  1 
If (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  1 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  1 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  2 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  2 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  9 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  3 )) Then


Windows("BD_VBA.xls").Activate
Cells( 5  + i + j,  6 ).Select
Selection.Copy
Windows("book2.xls").Activate
Cells( 3  + i,  10 ).Select
ActiveSheet.Paste

End If
Next j
Next i


For i =  0  To n Step  1 
j =  0 
For j =  0  To nn Step  1 
If (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  1 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  1 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  2 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  2 )) And (Workbooks("BD_VBA.xls").Worksheets("sheet1").Cells( 5  + i + j,  10 ) = Workbooks("book2.xls").Worksheets("sheet1").Cells( 3  + i,  3 )) Then


Windows("BD_VBA.xls").Activate
Cells( 5  + i + j,  7 ).Select
Selection.Copy
Windows("book2.xls").Activate
Cells( 3  + i,  11 ).Select
ActiveSheet.Paste

End If
Next j
Next i

For i =  0  To n Step  1 

                               If Worksheets("sheet1").Cells( 3  + i,  11 ) = " - " Or Worksheets("sheet1").Cells( 3  + i,  11 ) = "" Then Worksheets("sheet1").Cells( 3  + i,  11 ) =  0 
  
                               s3 = Worksheets("sheet1").Cells( 3  + i,  11 ).Value

 
                               If Worksheets("sheet1").Cells( 3  + i,  10 ) = " - " Or Worksheets("sheet1").Cells( 3  + i,  10 ) = "" Then Worksheets("sheet1").Cells( 3  + i,  10 ) =  0 
                               s2 = Worksheets("sheet1").Cells( 3  + i,  10 ).Value
                               If Worksheets("sheet1").Cells( 3  + i,  9 ) = " - " Or Worksheets("sheet1").Cells( 3  + i,  9 ) = "" Then Worksheets("sheet1").Cells( 3  + i,  9 ) =  0 
                               s1 = Worksheets("sheet1").Cells( 3  + i,  9 ).Value
                               s = s1 + s2 + s3
                               Worksheets("sheet1").Cells( 3  + i,  6 ).Value = s
 Next i

 
End Sub
вот код, желательно чтобы он подкачивал данные из BD_VBA.xls без его открытия, если это невозможно, тогда чтобы он автоматически открывался
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36117951
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели ни у кого идей нет?=(
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36118056
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nik_Koraman
> неужели ни у кого идей нет?=(

Я просил код проверки открытости книги, а не перенос данных.
А идеи должны быть у тебя ;) потому, что вникать в твой код, особого желания нет, к тому-же неформатированный.
Могу помочь советом с конкретными вопросами, напимер, проверка открытости книги, или что-то подобное


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36118263
Nik_Koraman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
конкретный вопрос=)) как обеспечить подкачку данных из закрытого файла

Код: plaintext
1.
2.
3.
4.
5.
Windows("BD_VBA.xls").Activate
Cells( 5  + i + j,  7 ).Select
Selection.Copy
Windows("book2.xls").Activate
Cells( 3  + i,  11 ).Select
ActiveSheet.Paste

таким образом подкачивает только из открытого=((
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36126376
Krasnaja Shapka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VBA не в состоянии это сделать, но вы сможете достичь
поставленной цели с помощью языка XLM. К счастью, XLM можно вызвать из VBA. Ниже приведен простой пример получения значения ячейки А1 из листа Sheet1 рабочей книги myfile.xls, которая находится в папке c:\files
MsgBox ExecuteExcel4Macro("'c:\files\[myfile.xls]Sheet1'!R1C1")
Обратите вниманиена то, что ячейка должна быть в формате R1C1
...
Рейтинг: 0 / 0
Подкачка данных из другой таблицы с условием
    #36126380
Krasnaja Shapka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но честно говоря я бы юзал обычную формулу прямо в листе, без всякого VBA... что-то типа
Код: plaintext
=SUMPRODUCT((условие1)*(условие2)*диапазон)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подкачка данных из другой таблицы с условием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]