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

Вход

Регистрация

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

 

= Мир MS Excel/Присвоение строкам значений из ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Присвоение строкам значений из ячейки (Макросы Sub)
Присвоение строкам значений из ячейки
Nat Дата: Понедельник, 13.01.2014, 15:16 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!

Очень нужна Ваша помощь! Мне необходимо автоматизировать перенос разрозненной информации из одного листа книги на другой, максимально насколько это возможно. Грубо говоря, надо из листа 1 приложенного файла получить лист 2. Основная проблема в том, как присвоить каждой строке название продукта и завода (сразу на листе 1 или уже на 2-м листе)? Может быть, есть несложный макрос который будет каждый раз проставлять, например, название продукта до слов "не распределено". Ну или что-нибудь в этом духе. Хоть какие-нибудь привязки ))
К сообщению приложен файл: 6011256.xlsx (41.5 Kb)
 
Ответить
СообщениеДобрый день!

Очень нужна Ваша помощь! Мне необходимо автоматизировать перенос разрозненной информации из одного листа книги на другой, максимально насколько это возможно. Грубо говоря, надо из листа 1 приложенного файла получить лист 2. Основная проблема в том, как присвоить каждой строке название продукта и завода (сразу на листе 1 или уже на 2-м листе)? Может быть, есть несложный макрос который будет каждый раз проставлять, например, название продукта до слов "не распределено". Ну или что-нибудь в этом духе. Хоть какие-нибудь привязки ))

Автор - Nat
Дата добавления - 13.01.2014 в 15:16
Матраскин Дата: Вторник, 14.01.2014, 10:47 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Nat, нет данных по этой строчке. может приснилось?
Направлени 5 F план 60
[vba]
Код
Sub m()
Dim Zavod As String, Product As String
Dim i As Long, j As Long
lastUsedRow = Sheets("1").Cells(Sheets("1").Rows.Count, 4).End(xlUp).Row
Zavod = Worksheets("1").Cells(6, 4)
Product = Worksheets("1").Cells(7, 4)
For i = 0 To lastUsedRow
      If Worksheets("1").Cells(i + 8, 4) Like "Направление*" Then
          Worksheets("3").Cells(j + 1, 1) = Zavod
          Worksheets("3").Cells(j + 1, 2) = Product
          Worksheets("3").Cells(j + 1, 3) = Worksheets("1").Cells(i + 8, 4)
          Worksheets("3").Cells(j + 1, 4) = Worksheets("1").Cells(i + 8, 5)
          Worksheets("3").Cells(j + 1, 5) = Worksheets("1").Cells(i + 8, 6)
          Worksheets("3").Cells(j + 1, 6) = Worksheets("1").Cells(i + 8, 7)
          j = j + 1
      ElseIf Worksheets("1").Cells(i + 8, 4) Like "Продукт*" Then
          Product = Worksheets("1").Cells(i + 8, 4)
      ElseIf Worksheets("1").Cells(i + 8, 4) Like "Завод*" Then
          Zavod = Worksheets("1").Cells(i + 8, 4)
      End If
Next
End Sub
[/vba]
К сообщению приложен файл: 123.xlsm (51.5 Kb)


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Вторник, 14.01.2014, 10:47
 
Ответить
СообщениеNat, нет данных по этой строчке. может приснилось?
Направлени 5 F план 60
[vba]
Код
Sub m()
Dim Zavod As String, Product As String
Dim i As Long, j As Long
lastUsedRow = Sheets("1").Cells(Sheets("1").Rows.Count, 4).End(xlUp).Row
Zavod = Worksheets("1").Cells(6, 4)
Product = Worksheets("1").Cells(7, 4)
For i = 0 To lastUsedRow
      If Worksheets("1").Cells(i + 8, 4) Like "Направление*" Then
          Worksheets("3").Cells(j + 1, 1) = Zavod
          Worksheets("3").Cells(j + 1, 2) = Product
          Worksheets("3").Cells(j + 1, 3) = Worksheets("1").Cells(i + 8, 4)
          Worksheets("3").Cells(j + 1, 4) = Worksheets("1").Cells(i + 8, 5)
          Worksheets("3").Cells(j + 1, 5) = Worksheets("1").Cells(i + 8, 6)
          Worksheets("3").Cells(j + 1, 6) = Worksheets("1").Cells(i + 8, 7)
          j = j + 1
      ElseIf Worksheets("1").Cells(i + 8, 4) Like "Продукт*" Then
          Product = Worksheets("1").Cells(i + 8, 4)
      ElseIf Worksheets("1").Cells(i + 8, 4) Like "Завод*" Then
          Zavod = Worksheets("1").Cells(i + 8, 4)
      End If
Next
End Sub
[/vba]

Автор - Матраскин
Дата добавления - 14.01.2014 в 10:47
Nat Дата: Среда, 15.01.2014, 17:20 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Матраскин, да, приснилось)) Я очень торопилась, когда меняла данные.
Спасибо огромное, что единственный ответили!...Правда, в действительности, у меня только завод стабильно начинается как "Завод*"; направлений и продуктов оч много, это я для упрощения одинаково назвала. Поэтому условия типа like "Направление*" не работает. Может, можно видоизменить макрос так, чтобы он копировал каждый раз со строки следующей за заводом и до строки, содержащей "Не распределено"?
 
Ответить
Сообщение Матраскин, да, приснилось)) Я очень торопилась, когда меняла данные.
Спасибо огромное, что единственный ответили!...Правда, в действительности, у меня только завод стабильно начинается как "Завод*"; направлений и продуктов оч много, это я для упрощения одинаково назвала. Поэтому условия типа like "Направление*" не работает. Может, можно видоизменить макрос так, чтобы он копировал каждый раз со строки следующей за заводом и до строки, содержащей "Не распределено"?

Автор - Nat
Дата добавления - 15.01.2014 в 17:20
Матраскин Дата: Среда, 15.01.2014, 17:31 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Nat, можно. И ещё за заводом там в некоторых случаях пустая строка идёт. какие на неё планы? она так и будет 1 прыгать? либо там может быть и 2е
В остальном файл выглядит также?


в интернете опять кто-то не прав
 
Ответить
СообщениеNat, можно. И ещё за заводом там в некоторых случаях пустая строка идёт. какие на неё планы? она так и будет 1 прыгать? либо там может быть и 2е
В остальном файл выглядит также?

Автор - Матраскин
Дата добавления - 15.01.2014 в 17:31
Nat Дата: Среда, 15.01.2014, 17:48 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Матраскин, вы имели в виду пустую строку за продуктом? В оригинальном файле почему-то только после первого продукта нет пустой строки, в остальных есть (это можно и вручную вставлять перед запуском макроса, ничего страшного). В остальном, файл выглядит так...точнее как прикрепленный файл, структура та же.
 
Ответить
СообщениеМатраскин, вы имели в виду пустую строку за продуктом? В оригинальном файле почему-то только после первого продукта нет пустой строки, в остальных есть (это можно и вручную вставлять перед запуском макроса, ничего страшного). В остальном, файл выглядит так...точнее как прикрепленный файл, структура та же.

Автор - Nat
Дата добавления - 15.01.2014 в 17:48
Матраскин Дата: Четверг, 16.01.2014, 10:16 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Nat, вдруг среди данных обнаружилГлоб-Терминал (КРЕССКО)_Мамоново-экс. Он там всегда был!?
К сообщению приложен файл: 6786775.xlsm (52.0 Kb)


в интернете опять кто-то не прав
 
Ответить
СообщениеNat, вдруг среди данных обнаружилГлоб-Терминал (КРЕССКО)_Мамоново-экс. Он там всегда был!?

Автор - Матраскин
Дата добавления - 16.01.2014 в 10:16
Nat Дата: Четверг, 16.01.2014, 11:53 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Матраскин, да, был, не удалила по невнимательности.
Перенесла на реальный файл - все работает! Вы гений макросов :) Спасибо вам огромное! Даже не представляете как выручили!
 
Ответить
СообщениеМатраскин, да, был, не удалила по невнимательности.
Перенесла на реальный файл - все работает! Вы гений макросов :) Спасибо вам огромное! Даже не представляете как выручили!

Автор - Nat
Дата добавления - 16.01.2014 в 11:53
Nat Дата: Пятница, 17.01.2014, 00:32 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Матраскин, мне неудобно...тут прислали обычный график, вот только без первых трех пустых столбцов... и я растерялась. "Подредактировала" текст макроса, но неверно. Вероятно, дело в Offsete, я его пока не понимаю. Можете взглянуть, пож-та, где ошибка?

[vba]
Код

Sub m()
Dim Zavod As String, Product As String
Dim i As Long, j As Long
lastUsedRow = Sheets("1").Cells(Sheets("1").Rows.Count, 4).End(xlUp).Row
Zavod = Worksheets("1").Cells(6, 1)
Product = Worksheets("1").Cells(7, 1)
For i = 0 To lastUsedRow
     While Worksheets("1").Cells(ii + 8, 1) <> "Не распределено"
         Worksheets("3").Cells(j + 1, 1) = Zavod
         Worksheets("3").Cells(j + 1, 2) = Product
         Worksheets("3").Cells(j + 1, 3) = Worksheets("1").Cells(ii + 8, 1)
         Worksheets("3").Cells(j + 1, 4) = Worksheets("1").Cells(ii + 8, 2)
         Worksheets("3").Cells(j + 1, 5) = Worksheets("1").Cells(ii + 8, 3)
         Worksheets("3").Cells(j + 1, 6) = Worksheets("1").Cells(ii + 8, 4)
         j = j + 1
         ii = ii + 1
     Wend
     While Worksheets("1").Cells(ii + 7, 4) <> "vol."
         ii = ii + 1
         If ii > lastUsedRow Then
             Exit Sub
         End If
     Wend
      
     Product = Cells(ii + 7, 4).Offset(-1, 0)
     MsgBox Product
     If Worksheets("1").Cells(ii + 7, 4).Offset(-2, 0) Like "Завод*" Then
         Zavod = Worksheets("1").Cells(ii + 7, 4).Offset(-2, 0)
     End If
     i = ii - 1
Next
End Sub

[/vba]


Сообщение отредактировал Nat - Пятница, 17.01.2014, 00:34
 
Ответить
СообщениеМатраскин, мне неудобно...тут прислали обычный график, вот только без первых трех пустых столбцов... и я растерялась. "Подредактировала" текст макроса, но неверно. Вероятно, дело в Offsete, я его пока не понимаю. Можете взглянуть, пож-та, где ошибка?

[vba]
Код

Sub m()
Dim Zavod As String, Product As String
Dim i As Long, j As Long
lastUsedRow = Sheets("1").Cells(Sheets("1").Rows.Count, 4).End(xlUp).Row
Zavod = Worksheets("1").Cells(6, 1)
Product = Worksheets("1").Cells(7, 1)
For i = 0 To lastUsedRow
     While Worksheets("1").Cells(ii + 8, 1) <> "Не распределено"
         Worksheets("3").Cells(j + 1, 1) = Zavod
         Worksheets("3").Cells(j + 1, 2) = Product
         Worksheets("3").Cells(j + 1, 3) = Worksheets("1").Cells(ii + 8, 1)
         Worksheets("3").Cells(j + 1, 4) = Worksheets("1").Cells(ii + 8, 2)
         Worksheets("3").Cells(j + 1, 5) = Worksheets("1").Cells(ii + 8, 3)
         Worksheets("3").Cells(j + 1, 6) = Worksheets("1").Cells(ii + 8, 4)
         j = j + 1
         ii = ii + 1
     Wend
     While Worksheets("1").Cells(ii + 7, 4) <> "vol."
         ii = ii + 1
         If ii > lastUsedRow Then
             Exit Sub
         End If
     Wend
      
     Product = Cells(ii + 7, 4).Offset(-1, 0)
     MsgBox Product
     If Worksheets("1").Cells(ii + 7, 4).Offset(-2, 0) Like "Завод*" Then
         Zavod = Worksheets("1").Cells(ii + 7, 4).Offset(-2, 0)
     End If
     i = ii - 1
Next
End Sub

[/vba]

Автор - Nat
Дата добавления - 17.01.2014 в 00:32
Матраскин Дата: Пятница, 17.01.2014, 01:39 | Сообщение № 9
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Nat, как же я найду ошибку без данных? если они поменялись как вы сказали то см. файл. Переменная С теперь будет репером так сказать...для наложения моего макроса)) если опять все поедет куда то, например переедет во вторую колонку, то просто поменяйте с=1 на с=2 и больше ничего не надо будет менять.
офсет - это смещение относительно ячейки)
К сообщению приложен файл: 3242037.xlsm (49.3 Kb)


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Пятница, 17.01.2014, 01:40
 
Ответить
СообщениеNat, как же я найду ошибку без данных? если они поменялись как вы сказали то см. файл. Переменная С теперь будет репером так сказать...для наложения моего макроса)) если опять все поедет куда то, например переедет во вторую колонку, то просто поменяйте с=1 на с=2 и больше ничего не надо будет менять.
офсет - это смещение относительно ячейки)

Автор - Матраскин
Дата добавления - 17.01.2014 в 01:39
Nat Дата: Пятница, 17.01.2014, 10:16 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Матраскин, теперь понятно. Еще раз спасибо!
 
Ответить
Сообщение Матраскин, теперь понятно. Еще раз спасибо!

Автор - Nat
Дата добавления - 17.01.2014 в 10:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Присвоение строкам значений из ячейки (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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