Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Ενημέρωση κελιών σε δυο βιβλία!! (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2153-enimerosi-kelion-se-dyo-biblia.html)

skomat 31-10-12 08:40

Ενημέρωση κελιών σε δυο βιβλία!!
 
Καλημερα. Εχω δυο βιβλια σε excel π.χ. τα excel1 και excel2, και θελω απο ενα κελι στο excel1 στο φυλλο A1 τα δεδομενα που καταχορω χειρογραφα εκει, να περνιουνται αυτοματα και στο excel2 στο φυλλο A1 καθως επισης και αντιστροφα!!

Tasos 31-10-12 10:49

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

Σου επισυνάπτω ένα παράδειγμα με 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

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

Τάσος

skomat 31-10-12 11:01

Σε ευχαριστω πολυ Τασο και παλι, εισαι πολυ κατατοπιστικος, να σου κανω αλλη μια ερωτηση, αν θελω να γινεται μονομερη αντιγραφη των data?? Δηλαδη τα data του βιβλιου ενα, να ερχονται στο βιβλιο 2?? Υπαρχει κατι πιο.... απλο???

Spirosgr 31-10-12 12:58

Καλησπέρα
Έστω Book1 το βιβλίο με τα δεδομένα (αρχικό) και στο φύλλο Sheet1 A1:A30 τα δεδομένα μας
Έστω Book2 το βιβλίο με τα δεδομένα (που θα ενημερώνονται αυτόματα) και στο φύλλο Sheet1 A1:A30 τα δεδομένα μας (για ενημέρωση)
Βάζουμε στο Α1 του Book2 Sheet1 τον τύπο
IF(OR('J:\Desktop\[Book1.xlsx]Sheet1'!A1="";'J:\Desktop\[Book1.xlsx]Sheet1'!A1=0);"";'J:\Desktop\[Book1.xlsx]Sheet1'!A1)
και τραβάμε κάτω όσο χρειάζεται
Αν δεν μας απασχολεί το να υπάρχουν μηδενικά σε θέση κενών κελιών ή κελιών με μηδέν το κόκκινο κομμάτι του τύπου μπορεί να παραληφθεί
Τα αρχεία πρέπει να αποθηκεύονται στον ίδιο φάκελο ( Έγγραφά μου, Desctop κλπ)
Πρέπει ακόμα να προσαρμοστεί η διαδρομή J:\Desktop\ στον υπολογιστή μας
Ακόμη αν ρυθμίσουμε την excel να κάνει αυτόματη ενημέρωση link δεν είναι απαραίτητο να ανοίγουν και τα δύο αρχεία μαζί
Καλή συνέχεια!

skomat 31-10-12 16:25

Καλησπερα Σπυρο και σε ευχαριστω πολυ. Δεν καταλαβα μοναχα ενα σημειο, αυτο που λες οτι: Ακόμη αν ρυθμίσουμε την excel να κάνει αυτόματη ενημέρωση link δεν είναι απαραίτητο να ανοίγουν και τα δύο αρχεία μαζί, αυτο πως το κανουμε???
Και παλι σας ευχαριστω ολους σας!

Spirosgr 31-10-12 18:02

1 Συνημμένο(α)
Καλησπέρα
Ρίξε μια ματιά στην εικόνα

skomat 31-10-12 18:11

Καλησπερα και παλι. Οκ σε ευχαριστω πολυ!!!!!


Η ώρα είναι 16:03.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2