Am un fisier excel unde pe coloana B se gasesc zilele saptamanii corespunzatoare unei luni (in exemplul atasat am lasat doar luni si marti). Tot aici veti gasi si un buton care atunci cand este apasat deschide fisierul word "centralizator" iar apoi pe rand fisierele corespunzatoare din coloana B pe care le copiaza in centralizator. Totul functioneaza ok, doar ca atunci cand copiaza informatia dintr-un fisier si o lipeste in centralizator se mareste cu cateva randuri (nu-si pastreaza formatarea exacta pe care o are). Centralizatorul are exact aceleasi setari ca si oricare din celelalte fisiere, iar daca copiez manual un fisier in centralizator informatia copiata are aceeasi "lungime" ca in fisierul de unde am copiat.
(Atunci cand se copiaza automat folosind excelul, fisierele word nu trebuiesc deschide de catre utilizator, se deschid si inchid singure)
Care sa fie problema?
Am inregistrat si un macro atunci cand am copiat si lipit manual iar codul rezultat este acelasi ca cel pe care-l folosesc si in codul din excel
pentru copy
Cod: Selectaţi tot
Selection.WholeStory
Cod: Selectaţi tot
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Cod: Selectaţi tot
Sub CopyWordToWord()
Dim originalDoc As Word.Application, tempDoc As Word.Application
Dim TIMP As Date
INCEPUT = Time
'' Application.ScreenUpdating = False
sPath = ActiveWorkbook.Path
Set originalDoc = New Word.Application
originalDoc.Visible = True
originalDoc.Activate
originalDoc.Documents.Open (sPath & "\" & "centralizator.doc")
Application.ScreenUpdating = False
''Options.Pagination = False ''pus ulterior
Set centra = originalDoc
For Each c In Range("B1:B" & Range("B65500").End(xlUp).Row)
Set tempDoc = New Word.Application
tempDoc.Visible = False 'se pune True daca vrem sa vedem fisierul in timp ce copiaza
''tempDoc.Activate 'se activeaza aceasta linie daca avem True la Visible
tempDoc.Documents.Open (sPath & "\" & c & ".doc")
tempDoc.Selection.WholeStory
tempDoc.Selection.Copy
centra.Activate
'' centra.Selection.Paste
centra.Selection.PasteAndFormat (wdFormatOriginalFormatting)
tempDoc.Quit SaveChanges:=False
Set tempDoc = Nothing
Next c
Application.ScreenUpdating = True
''Options.Pagination = True ''pus ulterior
centra.Activate
'centra.Quit SaveChanges:=True
'' Application.ScreenUpdating = True
SFARSIT = Time
TIMP = SFARSIT - INCEPUT
MsgBox "Timpul de executie : " & TIMP, vbInformation
End Sub