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

Καλημέρα σε όλους!
Αγαπητέ Αλέξανδρε, το ζητούμενο σου δεν μπορεί να επιτευχθεί με συναρτήσεις.

Σου επισυνάπτω ένα παράδειγμα με VBA όπου μπορείς κάνοντας διπλό κλικ στο κελί A1

του φύλλου "Φύλλο1" στο βιβλίο excel1.xlsm

να παίρνεις την τιμή

του κελιού A1 του φύλλου "Φύλλο1" από το βιβλίο excel2.xlsm

και αντίστροφα.

Δεν χρειάζεται να είναι και τα 2 βιβλία ανοιχτά.

Η συνάρτηση που χρησιμοποιείται είναι:

Κώδικας:
Public Function SyncValue( _
        ByVal remoteWorkbookPath As String, _
        ByVal remoteWorkbookName As String, _
        ByVal remoteWorksheetName As String, _
        ByVal remoteCellReference As String) As Variant
    SyncValue = ExecuteExcel4Macro("'" & _
            remoteWorkbookPath & "\[" & _
            remoteWorkbookName & "]" & _
            remoteWorksheetName & "'!" & _
            Range(remoteCellReference).Address(True, True, xlR1C1))
End Function
Η παραπάνω συνάρτηση VBA είναι η ίδια και στα 2 βιβλία και βρίσκεται στο ThisWorkbook (Αν πατήσεις ALT + F11 για να ανοίξει ο VBE θα το δεις πάνω αριστερά)

Ο κώδικας που καλεί τη συνάρτηση αυτή είναι:

Κώδικας:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = "$A$1" Then   ' Όταν γίνει διπλό κλικ στο κελί A1
        Cancel = True ' Αποτρέπει την επεξεργασία του κελιού
        Target = ThisWorkbook.SyncValue( _
                remoteWorkbookPath:=ThisWorkbook.Path, _
                remoteWorkbookName:="excel2.xlsm", _
                remoteWorksheetName:="Φύλλο1", _
                remoteCellReference:="A1")
    End If
End Sub
Ο παραπάνω κώδικας βρίσκεται "Sheet1" στον VBE και εκτελείται αυτόματα όταν κάνεις διπλό κλικ στο κελί A1 του συγκεκριμένου φύλλου.


Αν χρειαστεί να προσαρμόσεις τα ονόματα λάβε υπόψη σου τις παρακάτω επεξηγήσεις:
  • remoteWorkbookPath = Η διαδρομή του φακέλου που βρίσκεται το απομακρυσμένο αρχείο Πχ. F:\Desktop
  • remoteWorkbookName = Το όνομα του αρχείου + κατάληξη ονόματος πχ. excel2.xlsm
  • remoteWorksheetName = Το όνομα του φύλλου εργασίας του απομακρυσμένου αρχείου πχ. Φύλλο1
  • remoteCellReference = Η διεύθυνση του κελιού του απομακρυσμένου αρχείου πχ. A1

Καλή συνέχεια

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm excel1.xlsm (16,5 KB, 52 εμφανίσεις)
Τύπος Αρχείου: xlsm excel2.xlsm (16,6 KB, 37 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση