Страницы: 1
RSS
Сохранение данных в текущем файле в отдельном листе
 
Здравствуйте. Есть код, который отвечает за копирование и сохранение данных в вордовском файле. После этого файл excel закрывается без сохранений.
Возможно ли изменить код так чтобы каждый раз данные сохранялись в этом же файле в листе «9»,но именно так чтобы сохранялись только эти данные, а сам файл сохранял исходные вид, который был до открытия? И при каждом новом открытии файла и осуществлении нового сохранения чтобы данные вставлялись  не на то место, где уже есть данные, а правее в соседние ячейки.  
Код
Private Sub CommandButton1_Click()
Dim objWrdApp As Object, objWrdDoc As Object
    Set AppWord = CreateObject("Word.Application")
    Set objWrdDoc = AppWord.Documents.Add
    Sheets("8").Range("A1:" & Sheets("8").Range("V1").Value).Copy
    objWrdDoc.Range(0).Paste
    objWrdDoc.SaveAs Sheets("8").Range("W1").Value & ".docx"
    Application.CutCopyMode = False
    AppWord.Quit 0
    Set AppWord = Nothing
    Application.DisplayAlerts = False
  Application.Quit
End Sub
 
nerf, по сути, один вопрос - одна тема. Хоть вы и описали, но только еще больше запутали. Поэтому вам не отвечают. :)

Цитата
nerf написал: каждый раз данные сохранялись в этом же файле в листе «9»
Что-то типа ведения лога? Возможно.
Цитата
nerf написал: сам файл сохранял исходные вид, который был до открытия?
Поточнее? Вам необходимо, чтобы при открытии книги ячейки были так как вам нужно?
Код
Sub auto_open()
Cells(1, 2) = "Мужской"
etc...
End Sub
p.s. в листе 9 у вас пусто
 
Цитата
Jungl написал:
по сути, один вопрос - одна тема. Хоть вы и описали, но только еще больше запутали. Поэтому вам не отвечают.
Да вы правы, мне просто очень трудно все описать так чтобы было понятно.  :D

Я для примера скинул часть файла, сам файл очень большой. В файле содержится много различных форм. Поэтому я изначально сделал так, чтобы все данные после заполнения формы сохранялись в отдельный вордовский файл, а сам файл excel не сохранялся, чтобы каждый раз исходные данные формы, вручную не возвращать в исходный вид.
Но хотелось бы, чтобы данные сохранялись в лист 9. Но вся проблема в том, что если переписать сам код чтобы данные сохранялись в «лист 9», а не в вордовский файл, и при этом сохранить сам файл excel, то каждый раз придется исходные данные формы, вручную возвращать в исходный вид.
Изменено: nerf - 20.07.2016 15:31:19
 
А слияние в Wordе не подойдет? Шаблон и заполнение данных настраивается из excel как удобно.  
 
Я наоборот пытаюсь уйти от использования вордовских файлов, будет правильно если все данные будут сохранятся в самом файле excel.
 
Самый основной вопрос заключается в том, возможно ли сохранить не весь файл excel, а только изменения на "листе 9"? Может кто-то сталкивался уже с такой темой?  :)
Изменено: nerf - 20.07.2016 15:39:41
 
Сохраняются не листы, а вся книга.
Вопрос, ч то вы считаете изначальными данными?
Может в макросе копирования на лист9 сразу вставить обнуление до изначальных?  
 
Цитата
Полосатый написал: Вопрос, ч то вы считаете изначальными данными?
Т.е. сама не заполненная форма.
Допусти я открыл файл, потом заполнил форму, нажал на кнопку "закрыть". В итоге получилось, что те данные которые я указал в форме скопировались в лист "9" и файл закрылся. Если я снова открываю этот же файл, то форма по задумки должна быть не заполненная и если я ее снова заполняю и нажимаю на кнопку "закрыть", то новые данные формы так же копируются в соседние свободные столбцыв листе "9", форма возвращается в исходный вид, файл закрывается.
Цитата
Полосатый написал: Может в макросе копирования на лист9 сразу вставить обнуление до изначальных?
Может вы говорить о том что и нужно, но я к сожалению не знаю что это обозначает  :(
 
Я оказывается скинул файл для примера с заполненной формой. Прошу прощения. Вот файл с формой которая должна иметь изначальный вид.
 
Может как-то так?
Хотя по умному, надо что бы из списка он выбирал 1-ое значение, а не просто заменять в ячейке. ну и проверку 5 строки прикрутить))  
Изменено: Полосатый - 20.07.2016 18:48:19
 
Цитата
Полосатый написал:
Может как-то так?
Спасибо большое)) тоже по началу думал в коде прописать чтобы все значения возвращались обратно, но файл слишком большой и для каждой ячейки прописывать в коде слишком долго, но куда деваться, буду прописывать и подстраивать под себя ваш код.  :)
 
А еще может кто знает как можно изменить этот код, чтобы он создавал и сохранял вордовский файл уже под паролем?
Код
Private Sub CommandButton1_Click()
Dim objWrdApp As Object, objWrdDoc As Object
    Set AppWord = CreateObject("Word.Application")
    Set objWrdDoc = AppWord.Documents.Add
    Sheets("8").Range("A1:" & Sheets("8").Range("V1").Value).Copy
    objWrdDoc.Range(0).Paste
    objWrdDoc.SaveAs Sheets("8").Range("W1").Value & ".docx"
    Application.CutCopyMode = False
    AppWord.Quit 0
    Set AppWord = Nothing
    Application.DisplayAlerts = False
  Application.Quit
End Sub
 
Догадался как сделать, добавил строчку objWrdDoc.Password = "пароль", и все получилось  :)
Страницы: 1
Наверх