Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 14:33   #1
ElenaKorneva
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 17
По умолчанию Перенос данных в другую книгу при нажатии кнопки

Нужно, чтобы при нажатии кнопки: "След. день" происходило следующее:
1) создавался автоматически новый файл и менялась дата в нем на сегоднюшнюю
2) на листе 2 остаток на вечер переносился на следующий день в остаток на утро, а приход был удален

Возможно ли такое?
Помогите пожалуста.
Вложения
Тип файла: rar Excel.rar (6.7 Кб, 19 просмотров)
ElenaKorneva вне форума Ответить с цитированием
Старый 09.04.2010, 15:04   #2
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Примерно вот так вот?
Вложения
Тип файла: zip Excel.zip (12.8 Кб, 35 просмотров)
Tirendus вне форума Ответить с цитированием
Старый 09.04.2010, 15:14   #3
ElenaKorneva
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Tirendus Посмотреть сообщение
Примерно вот так вот?
Немного не поняли. Здесь меняется только дата при нажатии кнопки.
Мне нужно, чтобы при нажатии кнопки, создавался новый файл, и там уже была новая дата, а старый так и остался как был. Т.е. мне нужно чтобы у меня на каждый день был отчет
ElenaKorneva вне форума Ответить с цитированием
Старый 09.04.2010, 16:13   #4
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

При первом запуске этой штуки, откройте нужную вам книгу (ту, которую вы выложили первой), нажмите alt+f11, откроется ideшка, в левой верхней части окна будет "VBAProject (PERSONAL.XLSB)", откройте её, откройте окошко с модулями, там нажмите insert -> module, переименуйте модуль в Tomorrow в окне properties -> name, в модуль вставьте этот код

Код:
Sub Tomorrow()
    Application.ScreenUpdating = False
    Dim i As Integer: i = 1
            
    Application.Workbooks.Add
    ActiveSheet.Buttons.Add(126.75, 19.5, 98.25, 28.5).Select
    Selection.OnAction = "PERSONAL.XLSB!Tomorrow"
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "След. День"
    With Selection.Characters(start:=1, Length:=10).Font
        .Name = "Calibri"
        .FontStyle = "обычный"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
    End With
    Range("A6").Value = "Дата:"
    Range("b6").Value = Format(Date, "dd.mm.yyyy")
    ActiveWindow.ActivateNext
    Worksheets("Лист2").Select
    Do
        i = i + 1
        Cells(i, 2) = Cells(i, 5).Value
        Cells(i, 3).ClearContents
    Loop Until Cells(i + 1, i).Value = ""
    Range("A1:E" & i).Copy
    ActiveWindow.ActivateNext
    Worksheets("Лист2").Select
    Range("A1").Paste
    ActiveWorkbook.SaveAs("C:\NewDay.xls")
    'Application.DisplayAlerts = False    ' - вот эта часть отклюит все уведомления
    'Application.Quit                          ' - эта закроет эксель, если нужно их использовать, уберите " ' " перед Application
    Application.ScreenUpdating = True
End Sub
Если вам всё таки тяжело это понять, можете связаться со мной по аське, объясню пошагово 307-521-763

Последний раз редактировалось Tirendus; 09.04.2010 в 16:29.
Tirendus вне форума Ответить с цитированием
Старый 10.04.2010, 12:16   #5
Робин
Форумчанин
 
Регистрация: 03.04.2010
Сообщений: 118
По умолчанию

Извините меня пожалуйста!
Но этот макрос спотыкается на строке Range("A1").Paste и ничего не вставляет в лист2 новой книги.
С уважением Робин!
Робин вне форума Ответить с цитированием
Старый 10.04.2010, 15:14   #6
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Это потому, что у вас Excel 2003, замените её на строку
ActiveSheet.Paste Destination:=Worksheets("Лист2").Ra nge("A1")

Кстати, эта тема уже не актуальна
Tirendus вне форума Ответить с цитированием
Старый 10.04.2010, 18:16   #7
Робин
Форумчанин
 
Регистрация: 03.04.2010
Сообщений: 118
По умолчанию

Кстати, эта тема уже не актуальна

Почему не актуальна? Очень даже актуальна
Например заменил предыдущую строку на новую, теперь ругается на нее

Код:
Sub Tomorrow()
    Application.ScreenUpdating = False
    Dim i As Integer: i = 1
    Application.Workbooks.Add
    ActiveSheet.Buttons.Add(126.75, 19.5, 98.25, 28.5).Select
    Selection.OnAction = "PERSONAL.XLSB!Tomorrow"
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Ñëåä. Äåíü"
    With Selection.Characters(Start:=1, Length:=10).Font
        .Name = "Calibri"
        .FontStyle = "îáû÷íûé"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
    End With
    Range("A6").Value = "Äàòà:"
    Range("b6").Value = Format(Date, "dd.mm.yyyy")
    ActiveWindow.ActivateNext
    Worksheets("Ëèñò2").Select
    Do
        i = i + 1
        Cells(i, 2) = Cells(i, 5).Value
        Cells(i, 3).ClearContents
    Loop Until Cells(i + 1, i).Value = ""
    Range("A1:E" & i).Copy
    ActiveWindow.ActivateNext
     Worksheets("Ëèñò2").Select '
    'Range("A1").Paste
    ActiveSheet.Paste Destination:=Worksheets("Ëèñò2").Range("A1")
    ActiveWorkbook.SaveAs ("C:\NewDay.xls")
    'Application.DisplayAlerts = False    
    'Application.Quit    Application.ScreenUpdating = True
End Sub
И, как видите, что то творится со шрифтами в самом коде
Ексель у меня действительно 3003. Пожалуйста приложите примерчик. Тогда будет понятнее.
Заранее Спасибо за ответ!

Последний раз редактировалось EducatedFool; 12.04.2010 в 13:13. Причина: пользуемся тегами для кода
Робин вне форума Ответить с цитированием
Старый 12.04.2010, 12:01   #8
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Робин, если у вас есть вопрос, нужно создать новую тему, лично я не вижу никакого вопроса в вашем предыдущем посте. Если вы учите VBA, то это явно не то, с чего стоит начинать.

Сначала нужно копировать код из VBA редактора в текстовик, потом отсылать куда-то, иначе весь русский текст заменяется на кракозяблину.

Неужели такую "ошибку", нельзя исправить самому?

Код:
ActiveSheet.Paste Destination:=Worksheets("Ëèñò2").Ra nge("A1")
я даже не знаю стоит ли тыкать пальцем на "проблемное" место...
Tirendus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при нажатии кнопки Skynet91 БД в Delphi 1 08.02.2010 19:45
Узнать, что посылаю при нажатии кнопки KiDoki Свободное общение 3 08.02.2009 22:59
Запустить окно закачки файла при нажатии кнопки iankov JavaScript, Ajax 3 11.01.2009 13:14
Перенос данных в из 1 таб. в другую... ivp88 БД в Delphi 12 11.01.2008 15:45
Рисование на Canvas при нажатии левой кнопки мыши. Ветас Помощь студентам 3 11.11.2007 22:02