Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 21-10-12, 11:53
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα!
Γιώργο δοκίμασε:

Κώδικας:
Option Explicit

Sub test()
    Dim wb As Workbook, wbFullName As String, wbWasOpen As Boolean

    wbFullName = ThisWorkbook.Path & "\Book2.xlsm"    'Προσάρμοσε το όνομα του βιβλίου προορισμού

    For Each wb In Application.Workbooks
        If wb.FullName = wbFullName Then
            wbWasOpen = True
            Exit For
        End If
    Next

    If wb Is Nothing Then Set wb = ThisWorkbook

    On Error GoTo ExitHere

    If wb.FullName <> wbFullName Then
        Workbooks.Open Filename:=wbFullName, ReadOnly:=False
    End If

    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
        .EnableEvents = False

        Set wb = ActiveWorkbook

        ' Στην παρακάτω γραμμή προσάρμοσε τα ονόματα των φύλλων και τις διευθύνσεις των περιοχών των 2 βιβλίων.
        ' Οι διευθύνσεις των περιοχών των 2 βιβλίων μπορούν να διαφέρουν αλλά
        ' οι στήλες και οι γραμμές πρέπει να έχουν το ίδιο πλήθος.
        wb.Sheets("Αρχική").Range("A1:G100").Value = ThisWorkbook.Sheets("Sheet1").Range("A1:G100").Value

        If wbWasOpen Then
            wb.Save
            wb.Close
        End If

ExitHere:
        If Err <> 0 Then MsgBox Err & vbLf & Err.Description
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With

End Sub
Ο κώδικας αυτός κλείνει το βιβλίο προορισμού μετά από τη μεταφορά δεδομένων μόνο αν το βιβλίο ήταν κλειστό πριν την εκτέλεση της μακροεντολής.

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση