Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сранение двух столбцов в разных книгах и копирование - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сранение двух столбцов в разных книгах и копирование (Макросы/Sub)
Сранение двух столбцов в разных книгах и копирование
kleo90 Дата: Вторник, 07.06.2016, 11:54 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Кто знает помогите, как мне сделать макрос так чтобы при изменении значения ячейки в одной книги менялось значение в другой.
Например, у номера заказа 10622-04/16 поменялась стоимость, следовательно в другой книге у заказа номер 10622-04/16 тоже должна меняться стоимость.
Пока кроме вот такого макроса ничего не пришло в голову, но он не та работает как хотелось бы, он заново вставляет заказ в книгу

[vba]
Код
Sub example2()
Dim i As Integer
Workbooks.Open("C:\Users\Отчет.xlsx")

For i = 1 To 20153
If ThisWorkbook.Worksheets("1").Cells(i, 2).Value = Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Value Then
  If ThisWorkbook.Worksheets("1").Cells(i, 2).Offset(, 4) <> Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Offset(, 1) Then
      
   ThisWorkbook.Worksheets("1").Cells(i, 2).Offset(, 4) = Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Offset(, 1)
     End If
      End If
      Next
   
End Sub
[/vba]
К сообщению приложен файл: 5639252.xlsx(10Kb) · 8907134.xlsx(9Kb)


Сообщение отредактировал kleo90 - Вторник, 07.06.2016, 11:55
 
Ответить
СообщениеКто знает помогите, как мне сделать макрос так чтобы при изменении значения ячейки в одной книги менялось значение в другой.
Например, у номера заказа 10622-04/16 поменялась стоимость, следовательно в другой книге у заказа номер 10622-04/16 тоже должна меняться стоимость.
Пока кроме вот такого макроса ничего не пришло в голову, но он не та работает как хотелось бы, он заново вставляет заказ в книгу

[vba]
Код
Sub example2()
Dim i As Integer
Workbooks.Open("C:\Users\Отчет.xlsx")

For i = 1 To 20153
If ThisWorkbook.Worksheets("1").Cells(i, 2).Value = Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Value Then
  If ThisWorkbook.Worksheets("1").Cells(i, 2).Offset(, 4) <> Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Offset(, 1) Then
      
   ThisWorkbook.Worksheets("1").Cells(i, 2).Offset(, 4) = Workbooks("Отчет.xlsx").Worksheets("1").Cells(i, 2).Offset(, 1)
     End If
      End If
      Next
   
End Sub
[/vba]

Автор - kleo90
Дата добавления - 07.06.2016 в 11:54
Karataev Дата: Вторник, 07.06.2016, 13:00 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 642
Репутация: 226 ±
Замечаний: 0% ±

Excel
Макрос запускается из H1.
В книге, в которую надо вставить данные, макрос работает с первым листом.
К сообщению приложен файл: Macro_Kar.xlsm(20Kb)


 
Ответить
СообщениеМакрос запускается из H1.
В книге, в которую надо вставить данные, макрос работает с первым листом.

Автор - Karataev
Дата добавления - 07.06.2016 в 13:00
sboy Дата: Вторник, 07.06.2016, 13:07 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 198
Репутация: 49 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Мое предложение вносить изменения по кнопке, с указанием пользователя конкретного договора (правда в макросе надо сделать "защиту от дурака" и обработчик ошибок)

[vba]
Код

Sub Прямоугольник1_Щелчок()
Dim rf As Range
Dim rFr As Range
Dim sn As String
Dim isum As Currency
Dim irow As Integer

On Error GoTo ex
Set rf = Application.InputBox("Выберите номер заказа по которому проводим изменения", "выбор данных", "", Type:=8)
sn = rf.Value
isum = rf.Offset(0, 4).Value
'Workbooks.Open("D:\Мои документы\Downloads\8907134.xlsx").Sheets(1).Activate
Workbooks.Open("C:\Users\Отчет.xlsx").Sheets(1).Activate
irow = Cells(Rows.Count, 2).End(xlUp).Row
Set rFr = Range(Cells(1, 2), Cells(irow, 2)).Find(what:=sn)
rFr.Offset(0, 1).Value = isum

ex: Exit Sub
End Sub
[/vba]
К сообщению приложен файл: 5639252.xlsm(17Kb)


Сообщение отредактировал sboy - Вторник, 07.06.2016, 13:46
 
Ответить
СообщениеДобрый день.
Мое предложение вносить изменения по кнопке, с указанием пользователя конкретного договора (правда в макросе надо сделать "защиту от дурака" и обработчик ошибок)

[vba]
Код

Sub Прямоугольник1_Щелчок()
Dim rf As Range
Dim rFr As Range
Dim sn As String
Dim isum As Currency
Dim irow As Integer

On Error GoTo ex
Set rf = Application.InputBox("Выберите номер заказа по которому проводим изменения", "выбор данных", "", Type:=8)
sn = rf.Value
isum = rf.Offset(0, 4).Value
'Workbooks.Open("D:\Мои документы\Downloads\8907134.xlsx").Sheets(1).Activate
Workbooks.Open("C:\Users\Отчет.xlsx").Sheets(1).Activate
irow = Cells(Rows.Count, 2).End(xlUp).Row
Set rFr = Range(Cells(1, 2), Cells(irow, 2)).Find(what:=sn)
rFr.Offset(0, 1).Value = isum

ex: Exit Sub
End Sub
[/vba]

Автор - sboy
Дата добавления - 07.06.2016 в 13:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сранение двух столбцов в разных книгах и копирование (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!