Есть два файла: -Book1(допустим это бланк заказа); -Book2(это бланк счета, в который мы копируем инфо из Book1).
Проблема: хочу сохранить файл, но после Save As не срабатывает макрос, ибо имя файла, не соответсвует прописанному в коде. Вопрос: можно ли сделать что-то наподобии Workbooks("***k1.xls"), где к1 будет константой в названиях всех новых файлов, а вместо "***" будет новое имя?
Файлы-примеры в приложении (Нужно указать путь к Book2.xls).
Зарание, спасибо огромное!
Доброго времени суток, уважаемые форумчане!
Есть два файла: -Book1(допустим это бланк заказа); -Book2(это бланк счета, в который мы копируем инфо из Book1).
Проблема: хочу сохранить файл, но после Save As не срабатывает макрос, ибо имя файла, не соответсвует прописанному в коде. Вопрос: можно ли сделать что-то наподобии Workbooks("***k1.xls"), где к1 будет константой в названиях всех новых файлов, а вместо "***" будет новое имя?
Файлы-примеры в приложении (Нужно указать путь к Book2.xls).
когда я перенесу эту папочку в другое место, мне не пришлось бы снова открывать и переписывать код?
как вариант. [vba]
Код
With Application.FileDialog(msoFileDialogFilePicker) .Title = "Выберите файл" .Filters.Clear .Filters.Add "Excel", "*.xls*" .InitialFileName = ThisWorkbook.Path If .Show = 0 Then Exit Sub Filename = .SelectedItems(1) End With
когда я перенесу эту папочку в другое место, мне не пришлось бы снова открывать и переписывать код?
как вариант. [vba]
Код
With Application.FileDialog(msoFileDialogFilePicker) .Title = "Выберите файл" .Filters.Clear .Filters.Add "Excel", "*.xls*" .InitialFileName = ThisWorkbook.Path If .Show = 0 Then Exit Sub Filename = .SelectedItems(1) End With
KuklP, я обратил внимание тогда на слэш, но не до конца понял его суть. Спасибо! Попробую. Serge_007, злой Вы какой(. Перечитал еще раз (внимательно!) правила - поправил. В предь буду внимательней, бан не хочу!
З.Ы. Это я так строчки кода выделил, чтобы они не терялись в тексте.)
KuklP, я обратил внимание тогда на слэш, но не до конца понял его суть. Спасибо! Попробую. Serge_007, злой Вы какой(. Перечитал еще раз (внимательно!) правила - поправил. В предь буду внимательней, бан не хочу!
З.Ы. Это я так строчки кода выделил, чтобы они не терялись в тексте.)DAKRAY
Сообщение отредактировал DAKRAY - Суббота, 14.12.2013, 23:04
Я их удалил, потому что подумал - у меня слишком много информации в оформлении темы, а в правилах написано описать кратко и по теме. Простите, что не теми тэгами оформил. Теперь это навсегда запомню.
Что-то не получается. По разному пробовал поставить эту строчку(ThisWorkbook.Path & "\" ), но что-то она нигде ставится не хочет.( Или ее нужно прописать в модуль книги (ThisWorkbook)? Объясните ослу!?
[vba]
Код
Private Sub CommandButton1_Click()
Workbooks.Open ("G:\Data\test\Book2.xls") Dim sourcerange As Range Dim destrange As Range Dim wkbWorkbook1 As Workbook Dim wksWorkbook1 As Worksheet Dim wkbWorkbook2 As Workbook Dim wksWorkbook2 As Worksheet Set wkbWorkbook1 = Workbooks("Book1.xls") Set wksWorkbook1 = wkbWorkbook1.ActiveSheet Set wkbWorkbook2 = Workbooks("Book2.xls") Set wksWorkbook2 = wkbWorkbook2.ActiveSheet
Set sourcerange = wksWorkbook1.Range("A1:C5") Set destrange = wksWorkbook2.Range("A6:C10")
Я их удалил, потому что подумал - у меня слишком много информации в оформлении темы, а в правилах написано описать кратко и по теме. Простите, что не теми тэгами оформил. Теперь это навсегда запомню.
Что-то не получается. По разному пробовал поставить эту строчку(ThisWorkbook.Path & "\" ), но что-то она нигде ставится не хочет.( Или ее нужно прописать в модуль книги (ThisWorkbook)? Объясните ослу!?
[vba]
Код
Private Sub CommandButton1_Click()
Workbooks.Open ("G:\Data\test\Book2.xls") Dim sourcerange As Range Dim destrange As Range Dim wkbWorkbook1 As Workbook Dim wksWorkbook1 As Worksheet Dim wkbWorkbook2 As Workbook Dim wksWorkbook2 As Worksheet Set wkbWorkbook1 = Workbooks("Book1.xls") Set wksWorkbook1 = wkbWorkbook1.ActiveSheet Set wkbWorkbook2 = Workbooks("Book2.xls") Set wksWorkbook2 = wkbWorkbook2.ActiveSheet
Set sourcerange = wksWorkbook1.Range("A1:C5") Set destrange = wksWorkbook2.Range("A6:C10")
Есть два файла: -Book1(допустим это бланк заказа); -Book2(это бланк счета, в который мы копируем инфо из Book1).
Чем дальше в лес - тем больше дров. И тяжелее их тащить. DAKRAY, с макросами у Вас и так сложности, а Вы еще больше усложняете. Мой совет, сделайте все в одной книге. Материалы, бланк заказа, счета и накладные. Так, Вам, задачу решить будет проще. А, как сохранять каждый документ по отдельности, я выложил в примере предыдущей темы. И все там делается как надо, и кнопки удаляются и формулы переводятся в значения.
Есть два файла: -Book1(допустим это бланк заказа); -Book2(это бланк счета, в который мы копируем инфо из Book1).
Чем дальше в лес - тем больше дров. И тяжелее их тащить. DAKRAY, с макросами у Вас и так сложности, а Вы еще больше усложняете. Мой совет, сделайте все в одной книге. Материалы, бланк заказа, счета и накладные. Так, Вам, задачу решить будет проще. А, как сохранять каждый документ по отдельности, я выложил в примере предыдущей темы. И все там делается как надо, и кнопки удаляются и формулы переводятся в значения.Wasilich
Я, кажется, уже где-то говорил, что ещё лет десять назад для юзеров, которым ни жить, ни быть без кнопочек на каждом листе (включая выходные формы) - додумался до размещения интерфейса на "плавающих" юзерформах-менюшках (дабы "не портить" основные меню и ПКМ, ведь риббона ещё не было ). Зато никаких проблем с печатью или экпортом...
Я, кажется, уже где-то говорил, что ещё лет десять назад для юзеров, которым ни жить, ни быть без кнопочек на каждом листе (включая выходные формы) - додумался до размещения интерфейса на "плавающих" юзерформах-менюшках (дабы "не портить" основные меню и ПКМ, ведь риббона ещё не было ). Зато никаких проблем с печатью или экпортом...AndreTM
Wasilic, дело в том что у меня изначально это и было все в одной тарелке. Но дело в том, что такой файл весит больше 4-5 раз чем лист с бланком заказа. В день мы обрабатываем достаточно много заказов, а большая часть не нуждается в счетах и накладных, они просто для частников. А когда нужно будет сделать счет или накладную, тогда уже по кнопке перехожу в файл, где все остальное. Эх. Ругаете меня все.(
Та у меня почти все готово, осталась совсем малость)) И я перестану вас забавлять своей тупостью) Повторю вопрос: можно ли прописать название книги тип Workbooks("***k1.xls"), где часть названия(например "к1.xls") будет константой в названиях всех новых файлов, а вместо "***" будет какое-то новое название? Естестенно звездочки я поставил потому, что не знаю что туда поставить и можно ли это вообще осуществить.
[vba]
Код
Private Sub CommandButton1_Click()
Workbooks.Open ("G:\Data\test\Book2.xls") Dim sourcerange As Range Dim destrange As Range Dim wkbWorkbook1 As Workbook Dim wksWorkbook1 As Worksheet Dim wkbWorkbook2 As Workbook Dim wksWorkbook2 As Worksheet Set wkbWorkbook1 = Workbooks("Book1.xls") ...
[/vba]
П.С. KuklP, отлично! Получилось! Именно то что нужно!!! Спасибо! Еще бы с этими новыми именами разобратся и я супердоволен!
Wasilic, дело в том что у меня изначально это и было все в одной тарелке. Но дело в том, что такой файл весит больше 4-5 раз чем лист с бланком заказа. В день мы обрабатываем достаточно много заказов, а большая часть не нуждается в счетах и накладных, они просто для частников. А когда нужно будет сделать счет или накладную, тогда уже по кнопке перехожу в файл, где все остальное. Эх. Ругаете меня все.(
Та у меня почти все готово, осталась совсем малость)) И я перестану вас забавлять своей тупостью) Повторю вопрос: можно ли прописать название книги тип Workbooks("***k1.xls"), где часть названия(например "к1.xls") будет константой в названиях всех новых файлов, а вместо "***" будет какое-то новое название? Естестенно звездочки я поставил потому, что не знаю что туда поставить и можно ли это вообще осуществить.
[vba]
Код
Private Sub CommandButton1_Click()
Workbooks.Open ("G:\Data\test\Book2.xls") Dim sourcerange As Range Dim destrange As Range Dim wkbWorkbook1 As Workbook Dim wksWorkbook1 As Worksheet Dim wkbWorkbook2 As Workbook Dim wksWorkbook2 As Worksheet Set wkbWorkbook1 = Workbooks("Book1.xls") ...
[/vba]
П.С. KuklP, отлично! Получилось! Именно то что нужно!!! Спасибо! Еще бы с этими новыми именами разобратся и я супердоволен!DAKRAY
Сообщение отредактировал DAKRAY - Воскресенье, 15.12.2013, 01:15
Такой файл будет только один по ссылочному пути? А если не один, то как определять, какой из них открывать? Вот пример: [vba]
Код
Public Sub asd() Dim p$ p = Dir(ThisWorkbook.Path & "\*k1.xls") If p <> "" Then _ Workbooks.Open ThisWorkbook.Path & "\" & p End Sub
[/vba] [p.s.]При чем тут тупость? Мы все не родились с сегодняшними знаниями. А то, что Вы пытаетесь делать самостоятельно, достойно уважения. Грех не помочь.
Такой файл будет только один по ссылочному пути? А если не один, то как определять, какой из них открывать? Вот пример: [vba]
Код
Public Sub asd() Dim p$ p = Dir(ThisWorkbook.Path & "\*k1.xls") If p <> "" Then _ Workbooks.Open ThisWorkbook.Path & "\" & p End Sub
[/vba] [p.s.]При чем тут тупость? Мы все не родились с сегодняшними знаниями. А то, что Вы пытаетесь делать самостоятельно, достойно уважения. Грех не помочь.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Воскресенье, 15.12.2013, 01:18
Я открываю заказ, вбиваю все что мне нужно и сохраняю его например Cook1.xls, приходит следующий клиент, записываю заказ, сохраняю Pook1.xls - и этому заказу мне понадобилось выписать счет. В бланке заказа Book1.xls у меня есть кнопка, которая копирует данные в Book2.xls (бланк счета). Если я его сохраню как Pook1.xls соответсвенно кнопка уже не выполнит свою функцию, ибо в коде у меня прописано как
Я открываю заказ, вбиваю все что мне нужно и сохраняю его например Cook1.xls, приходит следующий клиент, записываю заказ, сохраняю Pook1.xls - и этому заказу мне понадобилось выписать счет. В бланке заказа Book1.xls у меня есть кнопка, которая копирует данные в Book2.xls (бланк счета). Если я его сохраню как Pook1.xls соответсвенно кнопка уже не выполнит свою функцию, ибо в коде у меня прописано как
А если не один, то как определять, какой из них открывать?
Ну или если они открыты, то какой из них присваивать переменной? Впрочем, если надо открывать файл, то можно через диалог. Андрей в №2 показал, как.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
В бланке заказа Book1.xls у меня есть кнопка, которая копирует данные в Book2.xls (бланк счета).
Ну и сколько же этот бланк весит, что его необходимо держать в отдельной книге? А также другие бланки? Не понимаю. У меня есть книги по 5-7 мегабайт, и работают безукоризненно. На счет сохранения. Что мешает сохранять доки в виде Pook1заказ.xls, Pook1счет.xls Pook1ТТН.xls и т.д.
В бланке заказа Book1.xls у меня есть кнопка, которая копирует данные в Book2.xls (бланк счета).
Ну и сколько же этот бланк весит, что его необходимо держать в отдельной книге? А также другие бланки? Не понимаю. У меня есть книги по 5-7 мегабайт, и работают безукоризненно. На счет сохранения. Что мешает сохранять доки в виде Pook1заказ.xls, Pook1счет.xls Pook1ТТН.xls и т.д.Wasilich
Кажется я перегрелся и ничерта не понимаю, либо не понятно изъясняюсь. Открывать кнопка будет все время один и тот же файл, т.е. Book2.xls - это бланк счета. В нем не будет никакой кнопки. В него только вставляем диапазон ячеек из Book1.xls, печатаем, сохраняем с каким-нибудь там именем и забываем.
Book1.xls это пустой бланк заказа, в котором я по своим причинам не хочу держать другие листы. Как я заполнил заказ, и сохраню с другим именем (Bazook1.xls например) кнопка больше не будет копировать данные в Book2.xls потому, что теперь вместо Book1, что прописан в коде, есть Bazook1, который нигде в коде не появляется. Ну вот откройте приложеные файлы. Нажав кнопку, все работает. Закройте оба файла. Открываем еще раз Book1. Допустим тот диапазон (уже заполненный) я только что заполнил. Кнопку не нажимаем, сохраняем файл с другим именем, и пробуем нажать кнопку - она уже не работает, потому что имя файла изменилось. Вот как сделать, чтобы она всегда работала? я просто думал, что для того чтобы это сделать нужно хоть какую-то часть в названии файла оставить неизменной(которую можно как-то описать, чтобы макрос мог опираться хоть на часть имени). Может можно заставить кнопку работать и при совсем другом имени, я не знаю. Ну если и сейчас я непонятен, то можете убить мою репутацию.
З.Ы. Book1.xls сохранился как 8016802.xls(36Kb) Book2.xls как 8992098.xls(14Kb) нужно ренэйм сделать.
Кажется я перегрелся и ничерта не понимаю, либо не понятно изъясняюсь. Открывать кнопка будет все время один и тот же файл, т.е. Book2.xls - это бланк счета. В нем не будет никакой кнопки. В него только вставляем диапазон ячеек из Book1.xls, печатаем, сохраняем с каким-нибудь там именем и забываем.
Book1.xls это пустой бланк заказа, в котором я по своим причинам не хочу держать другие листы. Как я заполнил заказ, и сохраню с другим именем (Bazook1.xls например) кнопка больше не будет копировать данные в Book2.xls потому, что теперь вместо Book1, что прописан в коде, есть Bazook1, который нигде в коде не появляется. Ну вот откройте приложеные файлы. Нажав кнопку, все работает. Закройте оба файла. Открываем еще раз Book1. Допустим тот диапазон (уже заполненный) я только что заполнил. Кнопку не нажимаем, сохраняем файл с другим именем, и пробуем нажать кнопку - она уже не работает, потому что имя файла изменилось. Вот как сделать, чтобы она всегда работала? я просто думал, что для того чтобы это сделать нужно хоть какую-то часть в названии файла оставить неизменной(которую можно как-то описать, чтобы макрос мог опираться хоть на часть имени). Может можно заставить кнопку работать и при совсем другом имени, я не знаю. Ну если и сейчас я непонятен, то можете убить мою репутацию.
З.Ы. Book1.xls сохранился как 8016802.xls(36Kb) Book2.xls как 8992098.xls(14Kb) нужно ренэйм сделать.DAKRAY
это бланк счета. В нем не будет никакой кнопки. В него только вставляем диапазон ячеек из Book1.xls, печатаем, сохраняем с каким-нибудь там именем и забываем.
Вот и не правильно! Кнопка нужна для сохранения этого заполненного счета. Сохранили и остались в этом бланке и файл новый есть и бланк остался со своим именем. Последний раз пытаюсь убедить!!!
это бланк счета. В нем не будет никакой кнопки. В него только вставляем диапазон ячеек из Book1.xls, печатаем, сохраняем с каким-нибудь там именем и забываем.
Вот и не правильно! Кнопка нужна для сохранения этого заполненного счета. Сохранили и остались в этом бланке и файл новый есть и бланк остался со своим именем. Последний раз пытаюсь убедить!!!Wasilich
Уже второй файл от Вас, Wasilic, из которого меня выкидывает, даже кнопку не успеваю нажать.( Почему так?
Сохраню я заказ как отдельный лист, а потом позже мне придется из него сделать счет. Я уже ничего не смогу сделать, ибо он ведь будет сохранен без макросов, верно? Вот по этому отделил заказ от накладных и счетов. Вообще мы на разных языках говорим. Пойду треснусь головой о стену.
Простите, если утомил уже.
Уже второй файл от Вас, Wasilic, из которого меня выкидывает, даже кнопку не успеваю нажать.( Почему так?
Сохраню я заказ как отдельный лист, а потом позже мне придется из него сделать счет. Я уже ничего не смогу сделать, ибо он ведь будет сохранен без макросов, верно? Вот по этому отделил заказ от накладных и счетов. Вообще мы на разных языках говорим. Пойду треснусь головой о стену.
У меня файл Wasilic открылся и работает без проблем. DAKRAY, видимо придется Вам Офис переустанавливать. Мои файлы у Вас тоже вылетали. Хотя файлы и мои и Wasilic практически пустые. Нечему там глючить.
У меня файл Wasilic открылся и работает без проблем. DAKRAY, видимо придется Вам Офис переустанавливать. Мои файлы у Вас тоже вылетали. Хотя файлы и мои и Wasilic практически пустые. Нечему там глючить.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728