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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных со строки одного листа на другой по дате - Мир MS Excel

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

Excel 2010
Добрый день. Прошу помочь.
Есть лист "Ввод данных", на котором каждый день вводятся данные. При нажатии кнопки, введенные значения переносятся на лист "Данные" в первую свободную строку.
Как сделать так, чтобы данные с листа "Ввод данных" переносились на лист "Данные" по критерию даты указанной в ячейке А4 (Ввод данных). То есть макрос берет указанную дату в ячейке А4 "Ввод данных", находит эту дату в столбце A "Данные", переносит значения в строку, которая соответствует найденной дате и обнуляет ячейки в форме ввода.

Заранее благодарен за подсказку!
P.S. буду благодарен за любой совет по оптимизации кода
К сообщению приложен файл: 2969523.xlsm (25.9 Kb)
 
Ответить
СообщениеДобрый день. Прошу помочь.
Есть лист "Ввод данных", на котором каждый день вводятся данные. При нажатии кнопки, введенные значения переносятся на лист "Данные" в первую свободную строку.
Как сделать так, чтобы данные с листа "Ввод данных" переносились на лист "Данные" по критерию даты указанной в ячейке А4 (Ввод данных). То есть макрос берет указанную дату в ячейке А4 "Ввод данных", находит эту дату в столбце A "Данные", переносит значения в строку, которая соответствует найденной дате и обнуляет ячейки в форме ввода.

Заранее благодарен за подсказку!
P.S. буду благодарен за любой совет по оптимизации кода

Автор - ptimoshenko
Дата добавления - 13.01.2014 в 16:49
SkyPro Дата: Понедельник, 13.01.2014, 17:32 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Так?[vba]
Код
Sub valuesToDate()
Dim r&
     With Sheets("Данные")
         r = Application.WorksheetFunction.Match(Sheets("Ввод данных").[A4], .Columns("A:A"), 0)
         Sheets("Ввод данных").[B4:G4].Copy
         .Cells(r, 2).PasteSpecial Paste:=xlPasteValues
     End With
     Sheets("Ввод данных").[a4:G4].ClearContents
End Sub
[/vba]
К сообщению приложен файл: 0648512.xlsm (30.3 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 13.01.2014, 18:06
 
Ответить
СообщениеТак?[vba]
Код
Sub valuesToDate()
Dim r&
     With Sheets("Данные")
         r = Application.WorksheetFunction.Match(Sheets("Ввод данных").[A4], .Columns("A:A"), 0)
         Sheets("Ввод данных").[B4:G4].Copy
         .Cells(r, 2).PasteSpecial Paste:=xlPasteValues
     End With
     Sheets("Ввод данных").[a4:G4].ClearContents
End Sub
[/vba]

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

20xx
SkyPro,
[vba]
Код
Application.CutCopyMode = False: Application.CutCopyMode = True
[/vba]
можете пояснить строчку? почему недостаточно написать:
[vba]
Код
Application.CutCopyMode = False
[/vba]


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

Сообщение отредактировал Матраскин - Понедельник, 13.01.2014, 17:46
 
Ответить
СообщениеSkyPro,
[vba]
Код
Application.CutCopyMode = False: Application.CutCopyMode = True
[/vba]
можете пояснить строчку? почему недостаточно написать:
[vba]
Код
Application.CutCopyMode = False
[/vba]

Автор - Матраскин
Дата добавления - 13.01.2014 в 17:45
SkyPro Дата: Понедельник, 13.01.2014, 18:01 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Матраскин, а хто его знает :)
Подумал раз выключаем, потом нужно включить..
Подозреваю, что вторую часть можно убрать?

ЗЫ: Первый раз добавил эту строчку в макросе, и сразу же заметили. Глазастые :D


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 13.01.2014, 18:02
 
Ответить
СообщениеМатраскин, а хто его знает :)
Подумал раз выключаем, потом нужно включить..
Подозреваю, что вторую часть можно убрать?

ЗЫ: Первый раз добавил эту строчку в макросе, и сразу же заметили. Глазастые :D

Автор - SkyPro
Дата добавления - 13.01.2014 в 18:01
RAN Дата: Понедельник, 13.01.2014, 18:03 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В данном случае вполне достаточно ничего не писать. :D
ClearContents справится не хуже.

PS А зачем его включать? При очередном копировании сам включится.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 13.01.2014, 18:05
 
Ответить
СообщениеВ данном случае вполне достаточно ничего не писать. :D
ClearContents справится не хуже.

PS А зачем его включать? При очередном копировании сам включится.

Автор - RAN
Дата добавления - 13.01.2014 в 18:03
SkyPro Дата: Понедельник, 13.01.2014, 18:07 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
По многочисленным просьбам изменил свой пост и перевложил файл.

[offtop]
ЗЫ: странный аватар :)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 13.01.2014, 18:07
 
Ответить
СообщениеПо многочисленным просьбам изменил свой пост и перевложил файл.

[offtop]
ЗЫ: странный аватар :)

Автор - SkyPro
Дата добавления - 13.01.2014 в 18:07
ptimoshenko Дата: Вторник, 14.01.2014, 00:08 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SkyPro, спасибо за быстрый ответ! Все отлично, но один вопрос, если ячейки для ввода данных не заполнены (то есть все пусты) и нажать кнопку, то макрос выдает ошибку 1004 невозможно получить свойство Match класса WorksheetFunction. Как этого избежать?
 
Ответить
СообщениеSkyPro, спасибо за быстрый ответ! Все отлично, но один вопрос, если ячейки для ввода данных не заполнены (то есть все пусты) и нажать кнопку, то макрос выдает ошибку 1004 невозможно получить свойство Match класса WorksheetFunction. Как этого избежать?

Автор - ptimoshenko
Дата добавления - 14.01.2014 в 00:08
Матраскин Дата: Вторник, 14.01.2014, 09:28 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
ptimoshenko, дописать условие и всё. например такое
[vba]
Код
Sub valuesToDate()
Dim r&
       With Sheets("Данные")
           If Sheets("Ввод данных").Cells(4, 1) <> "" Then
               r = Application.WorksheetFunction.Match(Sheets("Ввод данных").[A4], .Columns("A:A"), 0)
               Sheets("Ввод данных").[B4:G4].Copy
               .Cells(r, 2).PasteSpecial Paste:=xlPasteValues
           End If
       End With
       Sheets("Ввод данных").[a4:G4].ClearContents
End Sub
[/vba]


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

Сообщение отредактировал Матраскин - Вторник, 14.01.2014, 09:37
 
Ответить
Сообщениеptimoshenko, дописать условие и всё. например такое
[vba]
Код
Sub valuesToDate()
Dim r&
       With Sheets("Данные")
           If Sheets("Ввод данных").Cells(4, 1) <> "" Then
               r = Application.WorksheetFunction.Match(Sheets("Ввод данных").[A4], .Columns("A:A"), 0)
               Sheets("Ввод данных").[B4:G4].Copy
               .Cells(r, 2).PasteSpecial Paste:=xlPasteValues
           End If
       End With
       Sheets("Ввод данных").[a4:G4].ClearContents
End Sub
[/vba]

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

Excel 2010
Спасибо всем за помощь!
 
Ответить
СообщениеСпасибо всем за помощь!

Автор - ptimoshenko
Дата добавления - 15.01.2014 в 10:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных со строки одного листа на другой по дате (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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