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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение данных на другой лист и восстановить их обратно - Мир MS Excel

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

Excel 2003
Вечер добрый. Помогите написать макрос.
Есть два листа в одной книге "Данные" и "База". В первом листе заполняются данные в определенных ячейках, после чего, при нажатии кнопки, их нужно сохранить в Базу, но с учетом того, что если номер такой уже есть, то данные перезаписываются, если нет, то добавляются снизу.
И наоборот, чтобы из Базы можно было восстановить данные обратно из Базы.
Заранее спасибо.
К сообщению приложен файл: vba.xls(16Kb)


Сообщение отредактировал Myxomop - Вторник, 08.11.2016, 19:32
 
Ответить
СообщениеВечер добрый. Помогите написать макрос.
Есть два листа в одной книге "Данные" и "База". В первом листе заполняются данные в определенных ячейках, после чего, при нажатии кнопки, их нужно сохранить в Базу, но с учетом того, что если номер такой уже есть, то данные перезаписываются, если нет, то добавляются снизу.
И наоборот, чтобы из Базы можно было восстановить данные обратно из Базы.
Заранее спасибо.

Автор - Myxomop
Дата добавления - 08.11.2016 в 19:30
KuklP Дата: Вторник, 08.11.2016, 21:14 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

Помогите написать макрос.
В чем конкретно нужна помощь? Что у Вас не получается? В файле Ваших попыток нет.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Помогите написать макрос.
В чем конкретно нужна помощь? Что у Вас не получается? В файле Ваших попыток нет.

Автор - KuklP
Дата добавления - 08.11.2016 в 21:14
Manyasha Дата: Вторник, 08.11.2016, 21:56 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
Myxomop, здравствуйте. Так пойдет?
[vba]
Код
Sub addData()
    Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long
    Set sh1 = ThisWorkbook.Sheets("Данные")
    Set sh2 = ThisWorkbook.Sheets("База")
    With sh2
        Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole)
        If x Is Nothing Then
            r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        Else
            r = x.Row
        End If
        .Cells(r, 1) = sh1.Cells(3, 2)
        .Cells(r, 2) = sh1.Cells(5, 2)
        .Cells(r, 2).NumberFormat = "dd.mm.yyyy"
        .Cells(r, 3) = sh1.Cells(7, 2)
        .Cells(r, 4) = sh1.Cells(8, 2)
        .Cells(r, 5) = sh1.Cells(9, 2)
    End With
End Sub
Sub fromBase()
    Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long
    Set sh1 = ThisWorkbook.Sheets("Данные")
    Set sh2 = ThisWorkbook.Sheets("База")
    With sh2
        Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole)
        If Not x Is Nothing Then
            r = x.Row
            sh1.Cells(3, 2) = .Cells(r, 1)
            sh1.Cells(5, 2) = .Cells(r, 2)
            sh1.Cells(7, 2) = .Cells(r, 3)
            sh1.Cells(8, 2) = .Cells(r, 4)
            sh1.Cells(9, 2) = .Cells(r, 5)
        Else
            MsgBox "Нет данных"
            'Если нужно очистить ячейки
            sh1.Cells(3, 2).Resize(7) = ""
        End If
    End With
End Sub
[/vba]
К сообщению приложен файл: vba-1.xls(46Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеMyxomop, здравствуйте. Так пойдет?
[vba]
Код
Sub addData()
    Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long
    Set sh1 = ThisWorkbook.Sheets("Данные")
    Set sh2 = ThisWorkbook.Sheets("База")
    With sh2
        Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole)
        If x Is Nothing Then
            r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        Else
            r = x.Row
        End If
        .Cells(r, 1) = sh1.Cells(3, 2)
        .Cells(r, 2) = sh1.Cells(5, 2)
        .Cells(r, 2).NumberFormat = "dd.mm.yyyy"
        .Cells(r, 3) = sh1.Cells(7, 2)
        .Cells(r, 4) = sh1.Cells(8, 2)
        .Cells(r, 5) = sh1.Cells(9, 2)
    End With
End Sub
Sub fromBase()
    Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long
    Set sh1 = ThisWorkbook.Sheets("Данные")
    Set sh2 = ThisWorkbook.Sheets("База")
    With sh2
        Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole)
        If Not x Is Nothing Then
            r = x.Row
            sh1.Cells(3, 2) = .Cells(r, 1)
            sh1.Cells(5, 2) = .Cells(r, 2)
            sh1.Cells(7, 2) = .Cells(r, 3)
            sh1.Cells(8, 2) = .Cells(r, 4)
            sh1.Cells(9, 2) = .Cells(r, 5)
        Else
            MsgBox "Нет данных"
            'Если нужно очистить ячейки
            sh1.Cells(3, 2).Resize(7) = ""
        End If
    End With
End Sub
[/vba]

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

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