powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
9 сообщений из 9, страница 1 из 1
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37132775
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь с программой.

Нужно организовать спецификацию на sheets(1) по имеющейся таблице которая находится на sheets(2).

Есть одна колонка по ячейкам (В1...n) которой нужно организовать поиск - соответствие с ячейками колонки С на sheets(2).
После нахождения соответствия например В1 sheets(1)=С2 sheets (2) - заменить содержащее (E1:H1) sheets (1) на (D2:G2) sheets(2).
В цикле до последнего n, где n - количество используемых ячеек в столбце.


Спасибо большое
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37132844
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ixidor,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Dim c As Range
Dim lngA&, lngB&
Dim lngFindStart&, lngFindEnd&, sFindRange$

' определение границ диапазона для поиска
With Worksheets( 2 )
  lngFindEnd& = .Cells(.Rows.Count, 3 ).End(xlUp).Row
  ' lngFindStart& = .Cells(lngFindEnd,3).End(xlUp).Row
  lngFindStart =  1 
  sFindRange = "C" & lngFindStart & ":C" & lngFindEnd
End With

With Worksheets( 1 )
lngB = .Cells(.Rows.Count, 2 ).End(xlUp).Row
For lngA =  1  To lngB
  Set c = Worksheets( 2 ).Range(sFindRange).Find(What:=.Cells(lngA,  2 ).Value2, LookIn:=xlValues, LookAt:=xlWhole)
  If Not (c Is Nothing) Then
    .Range("E" & lngA & ":H" & lngA).Value =  Worksheets( 2 ).Range(c.Offset( 0 , 1 ), c.Offset( 0 , 4 )).Value
    Set c = Nothing
  End If
Next lngA
End With
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37132868
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, я вам очень благодарен.
У мене еще один маленький вопрос, а как можно например с последней ячейки скопировать допустим не Value a фото.jpg?

Range(c.Offset(0, 1), c.Offset(0, 4)). Value



Range(Sheets(2).Cells(6, 1), Sheets(2).Cells(6, 4)).Copy Sheets(1).Cells(2, 1) - вот это точно фото копирует)

Спасибо еще раз!
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37132876
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ixidor,
в чем заключался "еще один маленький вопрос", так и не поял. Вы же сами все написали...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ' ...
    ' копирование значений диапазона
    ' .Range("E" & lngA & ":H" & lngA).Value =  Worksheets(2).Range(c.Offset(0,1), c.Offset(0,4)).Value
    
    ' копирование диапазона
    Worksheets( 2 ).Range(c.Offset( 0 , 1 ), c.Offset( 0 , 4 )).Copy .Range("E" & lngA)
    ' ...
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37133710
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотищаIxidor,
в чем заключался "еще один маленький вопрос", так и не поял. Вы же сами все написали...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ' ...
    ' копирование значений диапазона
    ' .Range("E" & lngA & ":H" & lngA).Value =  Worksheets(2).Range(c.Offset(0,1), c.Offset(0,4)).Value
    
    ' копирование диапазона
    Worksheets( 2 ).Range(c.Offset( 0 , 1 ), c.Offset( 0 , 4 )).Copy .Range("E" & lngA)
    ' ...


Range(Sheets(2).Cells(6, 1), Sheets(2).Cells(6, 4)).Copy Sheets(1).Cells(2, 1) - вот это дорогой мой приблизительный ответ..он не работает правильно.

А вот этот - Worksheets(2).Range(c.Offset(0,1), c.Offset(0,4)).Copy .Range("E" & lngA) правильный и работает коректно!)

Спасибо еще раз!
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37133898
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IxidorскукотищаIxidor,
в чем заключался "еще один маленький вопрос", так и не поял. Вы же сами все написали...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ' ...
    ' копирование значений диапазона
    ' .Range("E" & lngA & ":H" & lngA).Value =  Worksheets(2).Range(c.Offset(0,1), c.Offset(0,4)).Value
    
    ' копирование диапазона
    Worksheets( 2 ).Range(c.Offset( 0 , 1 ), c.Offset( 0 , 4 )).Copy .Range("E" & lngA)
    ' ...


Range(Sheets(2).Cells(6, 1), Sheets(2).Cells(6, 4)).Copy Sheets(1).Cells(2, 1) - вот это дорогой мой приблизительный ответ..он не работает правильно.

А вот этот - Worksheets(2).Range(c.Offset(0,1), c.Offset(0,4)).Copy .Range("E" & lngA) правильный и работает коректно!)

Спасибо еще раз!

Скажи пожалуйста, О знающий!, как можно реализовать разбиение скопированных ячеек.

В ячейке G будет простая формула E*F - это мелочь если ее заменить пустой ячейкой можно перебить но лучше все же сохранить формулу.

Фото в придачу
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37134143
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажи пожалуйста последний вариант

все столбики совпадают по названию на двух листах
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37134789
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ixidor,
шайтан, совсем запутал(с).
Понял так: после копирования на листе 1 в ячейках столбца G должна быть формула =E*F, скопированные данные не менять.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
' ...
With Worksheets( 1 )
lngB = .Cells(.Rows.Count, 2 ).End(xlUp).Row
For lngA =  1  To lngB
  Set c = Worksheets( 2 ).Range(sFindRange).Find(What:=.Cells(lngA,  2 ).Value2, LookIn:=xlValues, LookAt:=xlWhole)
  If Not (c Is Nothing) Then

    Worksheets( 2 ).Range(c.Offset( 0 , 1 ), c.Offset( 0 , 4 )).Copy .Range("E" & lngA)

    Set c = Nothing
  End If
Next lngA
.Columns("G").Insert xlShiftToRight                   ' вставить столбец перед столбцом [G]
.Range("G1:G" & lngB).FormulaR1C1 = "=RC[-2]*RC[-1]"  ' задать формулу для диапазона
                                                      ' (!) если в ячейке E или F будут нечисловые данные - 
                                                      '     в ячейке G получим ошибку

End With
' ...
...
Рейтинг: 0 / 0
Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
    #37135983
Ixidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Спасибо за внимание.

В строчке G будет вводится количество в ручную. В строчке Н - цена за единицу. В строчке I - будет формула G*H - цена за позицию.

Это будет шаблон для моих спецификаций там будет не только 14 строк а может быть и 100.

Столбик В это позиция, то есть комплект из 3 наименований, которые работают слаженно будут иметь один номер (лампа - трансформатор-провода к ним) - это можно вбить вручную, так как я не знаю как можно привязать разные артикулы в одну группу в "базе данных" на листе 2. Возможно вы знаете как связать эти элементы например при выборе лампы автоматически выбирается и трансформатор строчкой ниже, можно так как то залинковать? Может можно на листе 2, в таком же порядке проставить в столбце В номер группы всем элементам данной группы? И после нахождения артикула и копирования основной части (названия, цены, фото) организовать поиск по номеру группы этого артикула если она есть то скопировать ее параметры в нижнюю строку (под основным), со сдвигом всех остальных на 1-3 строки (в зависимости от количества элементов в данной группе), а если номера группы вовсе нет (или там стоит 0) - перейти к поиску следующего артикула.

Последняя ячейка будет с картинкой по всему списку.

Спасибо большое!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как организовать поиск по ячейке столбца sheets(1), а заменить на ячейки из sheets(2)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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