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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных в заданную ячейку по нажатию кнопки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Перенос данных в заданную ячейку по нажатию кнопки (Формулы/Formulas)
Перенос данных в заданную ячейку по нажатию кнопки
Дми3й Дата: Суббота, 01.08.2015, 14:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день, добрым людям! Нужна подмога! Хочу сделать такую кнопочку, при нажатии которой, данные переносились в нужную ячейку в зависимости от заданной даты.

Например, ставлю дату "5 января 2016", ставлю в строку топливо "100", нажимаю кнопку и БАЦ!, во вкладке "БАЗА" появляется в нужном месте "100"
К сообщению приложен файл: 5404635.xlsx (16.3 Kb)
 
Ответить
СообщениеДобрый день, добрым людям! Нужна подмога! Хочу сделать такую кнопочку, при нажатии которой, данные переносились в нужную ячейку в зависимости от заданной даты.

Например, ставлю дату "5 января 2016", ставлю в строку топливо "100", нажимаю кнопку и БАЦ!, во вкладке "БАЗА" появляется в нужном месте "100"

Автор - Дми3й
Дата добавления - 01.08.2015 в 14:28
KSV Дата: Суббота, 01.08.2015, 15:07 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Например, так:[vba]
Код
Private Sub CommandButton1_Click()
      Dim i&, d As Range
      Set d = BD.Columns(1).Find([C3])
      If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
      With [C6:C9]
          For i = 1 To .Rows.Count
              If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
          Next
      End With
End Sub
[/vba]
К сообщению приложен файл: 5404635.xls (44.5 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Суббота, 01.08.2015, 15:14
 
Ответить
СообщениеНапример, так:[vba]
Код
Private Sub CommandButton1_Click()
      Dim i&, d As Range
      Set d = BD.Columns(1).Find([C3])
      If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
      With [C6:C9]
          For i = 1 To .Rows.Count
              If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
          Next
      End With
End Sub
[/vba]

Автор - KSV
Дата добавления - 01.08.2015 в 15:07
МВТ Дата: Суббота, 01.08.2015, 15:21 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Как-то так (макрос "повесьте" на кнопку) [vba]
Код
Sub trans()
If Application.WorksheetFunction.Sum(Range("C6:C9")) = 0 Or [C3] = "" Then Exit Sub
With Sheets("ÁÀÇÀ")
Dim L As Long: L = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Dim arr: arr = Range("C6:C9").Value
arr = Application.WorksheetFunction.Transpose(arr)
.Cells(L, 1) = [C3]
.Range("B" & L & ":E" & L).Value = arr
.Range("A" & L - 1 & ":E" & L - 1).Copy
.Range("A" & L & ":E" & L).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
End Sub
[/vba]
 
Ответить
СообщениеКак-то так (макрос "повесьте" на кнопку) [vba]
Код
Sub trans()
If Application.WorksheetFunction.Sum(Range("C6:C9")) = 0 Or [C3] = "" Then Exit Sub
With Sheets("ÁÀÇÀ")
Dim L As Long: L = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Dim arr: arr = Range("C6:C9").Value
arr = Application.WorksheetFunction.Transpose(arr)
.Cells(L, 1) = [C3]
.Range("B" & L & ":E" & L).Value = arr
.Range("A" & L - 1 & ":E" & L - 1).Copy
.Range("A" & L & ":E" & L).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
End Sub
[/vba]

Автор - МВТ
Дата добавления - 01.08.2015 в 15:21
Дми3й Дата: Вторник, 15.09.2015, 14:30 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
[moder]Не нужно цитировать ВСЕ сообщение. Об этом в Правилах написано.[/moder]

KSV, большое спасибо за помощь! Есть еще небольшая просьба.. Вот, в вашем варианте стоит условие, что если дата не найдена в базе, то выводится сообщение на экран. А можно еще добавить условие, что если поле дата не заполнена вовсе, тогда тоже выводится такое же сообщение? А то он мне так в пустые поля данные пихает. Спасибо.


Сообщение отредактировал _Boroda_ - Вторник, 15.09.2015, 15:01
 
Ответить
Сообщение[moder]Не нужно цитировать ВСЕ сообщение. Об этом в Правилах написано.[/moder]

KSV, большое спасибо за помощь! Есть еще небольшая просьба.. Вот, в вашем варианте стоит условие, что если дата не найдена в базе, то выводится сообщение на экран. А можно еще добавить условие, что если поле дата не заполнена вовсе, тогда тоже выводится такое же сообщение? А то он мне так в пустые поля данные пихает. Спасибо.

Автор - Дми3й
Дата добавления - 15.09.2015 в 14:30
ShAM Дата: Среда, 16.09.2015, 08:28 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Так 1 строку добавьте:
[vba]
Код
Private Sub CommandButton1_Click()
     Dim i&, d As Range
     If [C3] = "" Then MsgBox "Введите дату в ячейку C3.": Exit Sub
     Set d = BD.Columns(1).Find([C3])
     If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
     With [C6:C9]
         For i = 1 To .Rows.Count
             If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
         Next
     End With
End Sub
[/vba]
 
Ответить
СообщениеТак 1 строку добавьте:
[vba]
Код
Private Sub CommandButton1_Click()
     Dim i&, d As Range
     If [C3] = "" Then MsgBox "Введите дату в ячейку C3.": Exit Sub
     Set d = BD.Columns(1).Find([C3])
     If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
     With [C6:C9]
         For i = 1 To .Rows.Count
             If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
         Next
     End With
End Sub
[/vba]

Автор - ShAM
Дата добавления - 16.09.2015 в 08:28
Дми3й Дата: Воскресенье, 27.09.2015, 13:41 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем спасибо за помощь! А я вот еще хотел усложнить задачку.
[vba]
Код

Private Sub CommandButton1_Click()
     Dim i&, d As Range
     Set d = BD.Columns(1).Find([C3])
     If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
     With [C6:C9]
         For i = 1 To .Rows.Count
             If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
         Next
     End With
End Sub
[/vba]
Как изменить этот макрос если у меня не одно условие, а несколько:
Так на первом листе у меня список товаров и их количество

И, по нажатии на кнопку, количество товара попадает во вкладку "склад", в зависимости от наименования товара.
 
Ответить
СообщениеВсем спасибо за помощь! А я вот еще хотел усложнить задачку.
[vba]
Код

Private Sub CommandButton1_Click()
     Dim i&, d As Range
     Set d = BD.Columns(1).Find([C3])
     If d Is Nothing Then MsgBox "Дата " & [C3] & " не найдена в базе данных.", vbExclamation: Exit Sub
     With [C6:C9]
         For i = 1 To .Rows.Count
             If Len(.Cells(i, 1)) Then d.Offset(, i) = .Cells(i, 1)
         Next
     End With
End Sub
[/vba]
Как изменить этот макрос если у меня не одно условие, а несколько:
Так на первом листе у меня список товаров и их количество

И, по нажатии на кнопку, количество товара попадает во вкладку "склад", в зависимости от наименования товара.

Автор - Дми3й
Дата добавления - 27.09.2015 в 13:41
Canopm Дата: Суббота, 16.02.2019, 22:34 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Сайт отличный и много по уже готовым примерам изучил, внедрил и применяю. Спасибо что Вы есть!

Я не совсем понял работу Visual Basic и соответственно не смог применить это к своему случаю.
прошу помощи специалистов.
А именно мне не понятна работа строки
Цитата
Set d = BD.Columns(1).Find([C3])


BD.Columns(1) – что это и откуда оно в экселе?

В моем случае надо такое...

При нажатии кнопки «СОХРАНИТЬ ДАННЫЕ» на листе «Простои 3см» необходимо занести данные из ячеек I83, J83, K83, N83, O83, P83, S83, T83, U83 в ячейки строк с теми же буквами, но в соответствующую из строк чья дата в ячейках G89:G119 на листе «Данные» равна дате в ячейке (C1-1), т.е. предыдущему числу на листе «Простои 3см»

Пример, если как в документе проставлена дата на листе «Простои 3см» в ячейке «С1» = 10.02.19, то по нажатию кнопки «СОХРАНИТЬ ДАННЫЕ» значения ячеек I83, J83, K83, N83, O83, P83, S83, T83, U83 на листе «Данные» неоходимо занести в соответствующие по буквам ячейки строки с датой 09.02.19, т.е. встроку 97.

Заранее благодарен!
К сообщению приложен файл: SaveToButton.xls (73.0 Kb)


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

Я не совсем понял работу Visual Basic и соответственно не смог применить это к своему случаю.
прошу помощи специалистов.
А именно мне не понятна работа строки
Цитата
Set d = BD.Columns(1).Find([C3])


BD.Columns(1) – что это и откуда оно в экселе?

В моем случае надо такое...

При нажатии кнопки «СОХРАНИТЬ ДАННЫЕ» на листе «Простои 3см» необходимо занести данные из ячеек I83, J83, K83, N83, O83, P83, S83, T83, U83 в ячейки строк с теми же буквами, но в соответствующую из строк чья дата в ячейках G89:G119 на листе «Данные» равна дате в ячейке (C1-1), т.е. предыдущему числу на листе «Простои 3см»

Пример, если как в документе проставлена дата на листе «Простои 3см» в ячейке «С1» = 10.02.19, то по нажатию кнопки «СОХРАНИТЬ ДАННЫЕ» значения ячеек I83, J83, K83, N83, O83, P83, S83, T83, U83 на листе «Данные» неоходимо занести в соответствующие по буквам ячейки строки с датой 09.02.19, т.е. встроку 97.

Заранее благодарен!

Автор - Canopm
Дата добавления - 16.02.2019 в 22:34
gling Дата: Воскресенье, 17.02.2019, 12:51 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2523
Репутация: 678 ±
Замечаний: 0% ±

2010
Раз модераторы не предупреждают о создание новой темы, наверное вопрос по теме. Хотя под это название может подойти очень много тем этого раздела. Думаю что большинство макросов включается от нажатия кнопки.
Вариант такой[vba]
Код
Private Sub CommandButton1_Click()
Dim i As Long
Application.ScreenUpdating = False
On Error GoTo Errors1
i = Application.Match(Sheets("Простои 3см").Range("C1"), Sheets("Данные").Range("G1:G200"), 0) - 1
With Sheets("Данные")
    .Range("I" & i & ":" & "U" & i) = .Range("I83:U83").Value
End With
    GoTo Ends:
Errors1:
    MsgBox ("В таблице на листе ""Данные"" нет строки с датой  " & Format(Sheets("Простои 3см").Range("C1"), "DD MMMM YYYY г."))
Ends:
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 6655729.xls (79.0 Kb)


ЯД-41001506838083
 
Ответить
СообщениеРаз модераторы не предупреждают о создание новой темы, наверное вопрос по теме. Хотя под это название может подойти очень много тем этого раздела. Думаю что большинство макросов включается от нажатия кнопки.
Вариант такой[vba]
Код
Private Sub CommandButton1_Click()
Dim i As Long
Application.ScreenUpdating = False
On Error GoTo Errors1
i = Application.Match(Sheets("Простои 3см").Range("C1"), Sheets("Данные").Range("G1:G200"), 0) - 1
With Sheets("Данные")
    .Range("I" & i & ":" & "U" & i) = .Range("I83:U83").Value
End With
    GoTo Ends:
Errors1:
    MsgBox ("В таблице на листе ""Данные"" нет строки с датой  " & Format(Sheets("Простои 3см").Range("C1"), "DD MMMM YYYY г."))
Ends:
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - gling
Дата добавления - 17.02.2019 в 12:51
aleshke Дата: Среда, 02.09.2020, 19:51 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Я только начал осваивать VBA, пока многое не понимаю, поэтому прошу помочь. За основу взял макрос из этой темы.
Мне нужно введенные значения на первом листе по кнопке передать в нужный лист (имя листа значение ячейки B3) в нужную строку (по году и месяцу). Файл с примером прилагаю.
К сообщению приложен файл: 3418253.xlsm (30.9 Kb)
 
Ответить
СообщениеЯ только начал осваивать VBA, пока многое не понимаю, поэтому прошу помочь. За основу взял макрос из этой темы.
Мне нужно введенные значения на первом листе по кнопке передать в нужный лист (имя листа значение ячейки B3) в нужную строку (по году и месяцу). Файл с примером прилагаю.

Автор - aleshke
Дата добавления - 02.09.2020 в 19:51
_Boroda_ Дата: Четверг, 03.09.2020, 15:46 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Прочитайте Правила форума. Создайте свою тему. Эта тема закрыта


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПрочитайте Правила форума. Создайте свою тему. Эта тема закрыта

Автор - _Boroda_
Дата добавления - 03.09.2020 в 15:46
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Перенос данных в заданную ячейку по нажатию кнопки (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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