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

Вход

Регистрация

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

 

= Мир MS Excel/Формирование заказа клиента макросом. - Мир MS Excel

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

Excel 2013
Добрый день. Нашел макрос на формирование заказа,

при выделение любой ячейки переносит все описание с ценой в новую книгу которую всегда создает заного.(так было удобно менеджеру). Не могу разобраться как сделать так что бы он всегда записывал в определенный файл а не делал новый, если этот файл закрыт открывал его. И как именно поменять диапазон ячеек который он переносит (со столба С), когда пытаюсь менять значения вызывает ошибку. Подскажите пожалуйста.
[moder]Код нужно кнопкой # обтягивать!
Поправила на первый раз.[/moder]
К сообщению приложен файл: 123.xls(60Kb)


Сообщение отредактировал Manyasha - Вторник, 09.02.2016, 15:30
 
Ответить
СообщениеДобрый день. Нашел макрос на формирование заказа,

при выделение любой ячейки переносит все описание с ценой в новую книгу которую всегда создает заного.(так было удобно менеджеру). Не могу разобраться как сделать так что бы он всегда записывал в определенный файл а не делал новый, если этот файл закрыт открывал его. И как именно поменять диапазон ячеек который он переносит (со столба С), когда пытаюсь менять значения вызывает ошибку. Подскажите пожалуйста.
[moder]Код нужно кнопкой # обтягивать!
Поправила на первый раз.[/moder]

Автор - mortalwindos
Дата добавления - 09.02.2016 в 15:23
Manyasha Дата: Вторник, 09.02.2016, 16:04 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1832
Репутация: 766 ±
Замечаний: 0% ±

Excel 2007, 2010
mortalwindos, здравствуйте.
записывал в определенный файл

[vba]
Код
Sub newWb()
    Application.ScreenUpdating = False
    On Error Resume Next
    Set wb = Workbooks("1.xlsx")
    If wb Is Nothing Then Set wb = Workbooks.Open("C:\1.xlsx")
    ThisWorkbook.Sheets(1).Activate
    Application.ScreenUpdating = True
    Beep
End Sub
[/vba]

что это? :)
Цитата
il = .Cells(.Rows.Count, 1).End(IIf(Len(.Range("A" & .Rows.Count)), xlDown, xlUp)).Row

может лучше так?[vba]
Код
il = .Cells(.Rows.Count, 1).End(xlUp).Row
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеmortalwindos, здравствуйте.
записывал в определенный файл

[vba]
Код
Sub newWb()
    Application.ScreenUpdating = False
    On Error Resume Next
    Set wb = Workbooks("1.xlsx")
    If wb Is Nothing Then Set wb = Workbooks.Open("C:\1.xlsx")
    ThisWorkbook.Sheets(1).Activate
    Application.ScreenUpdating = True
    Beep
End Sub
[/vba]

что это? :)
Цитата
il = .Cells(.Rows.Count, 1).End(IIf(Len(.Range("A" & .Rows.Count)), xlDown, xlUp)).Row

может лучше так?[vba]
Код
il = .Cells(.Rows.Count, 1).End(xlUp).Row
[/vba]

Автор - Manyasha
Дата добавления - 09.02.2016 в 16:04
mortalwindos Дата: Вторник, 09.02.2016, 16:27 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, Спасибо, все работает. specool
 
Ответить
СообщениеManyasha, Спасибо, все работает. specool

Автор - mortalwindos
Дата добавления - 09.02.2016 в 16:27
mortalwindos Дата: Вторник, 09.02.2016, 22:24 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Возник еще один вопрос. Можно ли сделать так, что при копирование в новую книгу, помимо данных с перечисленных ячеек, указывалась дата и время добавление этой строки.
Сейчас макрос выглядит так [vba]
Код
Option Explicit
Dim wb As Object

Sub viborka()
    Dim il As Long, col As Variant
    col = InputBox("ВВЕДИТЕ Количество", "Укажите заказанное количество")
    If col <> "" Then
        '    If Not wb Is Nothing Then
        If Sh_Exist(wb) Then
        Else
            newWb
        End If
        With wb.Sheets(1)
            il = .Cells(.Rows.Count, 1).End(xlUp).Row
            Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 4)).Copy .Cells(il + 1, 1)
            .Cells(il + 1, 4) = Val(col)
            .UsedRange.EntireColumn.AutoFit
            Beep
        End With
    End If
End Sub

Sub newWb()
    Application.ScreenUpdating = False
    On Error Resume Next
    Set wb = Workbooks("z2.xlsx")
    If wb Is Nothing Then Set wb = Workbooks.Open("C:\Users\Rus\YandexDisk\exel\z2.xlsx")
    ThisWorkbook.Sheets(1).Activate
    Application.ScreenUpdating = True
    Beep
End Sub

Function Sh_Exist(sName)
Dim wsSh As Worksheet
On Error Resume Next
Set wsSh = sName.Sheets(1)
Sh_Exist = Not wsSh Is Nothing
End Function
[/vba] в ручную получаеться это сделать так, в пустую ячейку А1 листа 1, пишу формулу =ТДАТА(), копирую ячейку и вставляю значение без формулы. Тогда дата фиксируеться на моменте добавления строки. НО, если оставить ТДАТА в А1 время там не меняется :( и в следующий раз дата уже не актуальна при копирование, необходимо ее удалять, после каждого раза. Подскажите, как к макросу дописать, что бы он вставлял в диапазон А1-А30 формулу =ТДАТА() , брал этой строкой [vba]
Код
Range(Cells(ActiveCell.Row, [b]1[/b]), Cells(ActiveCell.Row, 3)).Copy .Cells(il + 1, 1)
[/vba] только значение (без формулы) и потом удалял из первого листа формулу =ТДАТА() в диапазоне А1-А30 ? Надеюсь вы поняли что я пытался объяснить :)
К сообщению приложен файл: 12.xlsm(21Kb) · z2.xlsx(9Kb)
 
Ответить
СообщениеВозник еще один вопрос. Можно ли сделать так, что при копирование в новую книгу, помимо данных с перечисленных ячеек, указывалась дата и время добавление этой строки.
Сейчас макрос выглядит так [vba]
Код
Option Explicit
Dim wb As Object

Sub viborka()
    Dim il As Long, col As Variant
    col = InputBox("ВВЕДИТЕ Количество", "Укажите заказанное количество")
    If col <> "" Then
        '    If Not wb Is Nothing Then
        If Sh_Exist(wb) Then
        Else
            newWb
        End If
        With wb.Sheets(1)
            il = .Cells(.Rows.Count, 1).End(xlUp).Row
            Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 4)).Copy .Cells(il + 1, 1)
            .Cells(il + 1, 4) = Val(col)
            .UsedRange.EntireColumn.AutoFit
            Beep
        End With
    End If
End Sub

Sub newWb()
    Application.ScreenUpdating = False
    On Error Resume Next
    Set wb = Workbooks("z2.xlsx")
    If wb Is Nothing Then Set wb = Workbooks.Open("C:\Users\Rus\YandexDisk\exel\z2.xlsx")
    ThisWorkbook.Sheets(1).Activate
    Application.ScreenUpdating = True
    Beep
End Sub

Function Sh_Exist(sName)
Dim wsSh As Worksheet
On Error Resume Next
Set wsSh = sName.Sheets(1)
Sh_Exist = Not wsSh Is Nothing
End Function
[/vba] в ручную получаеться это сделать так, в пустую ячейку А1 листа 1, пишу формулу =ТДАТА(), копирую ячейку и вставляю значение без формулы. Тогда дата фиксируеться на моменте добавления строки. НО, если оставить ТДАТА в А1 время там не меняется :( и в следующий раз дата уже не актуальна при копирование, необходимо ее удалять, после каждого раза. Подскажите, как к макросу дописать, что бы он вставлял в диапазон А1-А30 формулу =ТДАТА() , брал этой строкой [vba]
Код
Range(Cells(ActiveCell.Row, [b]1[/b]), Cells(ActiveCell.Row, 3)).Copy .Cells(il + 1, 1)
[/vba] только значение (без формулы) и потом удалял из первого листа формулу =ТДАТА() в диапазоне А1-А30 ? Надеюсь вы поняли что я пытался объяснить :)

Автор - mortalwindos
Дата добавления - 09.02.2016 в 22:24
Manyasha Дата: Среда, 10.02.2016, 10:11 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1832
Репутация: 766 ±
Замечаний: 0% ±

Excel 2007, 2010
mortalwindos, дам краткий ответ: используйте функцию Now.

Если не получится, создавайте новую тему, т.к. вопрос не имеет отношения к исходной проблеме открытия книги.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеmortalwindos, дам краткий ответ: используйте функцию Now.

Если не получится, создавайте новую тему, т.к. вопрос не имеет отношения к исходной проблеме открытия книги.

Автор - Manyasha
Дата добавления - 10.02.2016 в 10:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формирование заказа клиента макросом. (Макросы/Sub)
Страница 1 из 11
Поиск:

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