Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Excel07] Εισαγωγή εξωτερικών δεδομένων σε 2007 (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3083-eisagogi-eksoterikon-dedomenon-se-2007-a.html)

jockey17 30-03-14 16:17

Εισαγωγή εξωτερικών δεδομένων σε 2007
 
1 Συνημμένο(α)
Καλησπέρα στο φόρουμ.
Σε παλαιότερες εκδόσεις (Excel 2003 και πριν) σε εξωτερικά δεδομένα υπήρχε η δυνατότητα επιλογής "Συμπλήρωση των τύπων στις στήλες δίπλα από τα δεδομένα" ανεξάρτητα από τον τρόπο που έρχονταν τα εξωτερικά δεδομένα (Για να γίνω κατανοητός εδώ, επισυνάπτω το αρχείο "ImportExternalData.xlsx" με παραδείγματα).
Γνωρίζετε εάν συνεχίζει να υπάρχει κάπου αυτή η δυνατότητα επιλογής;

Ευχαριστώ εκ των προτέρων.
Δημήτρης

Tasos 30-03-14 21:46

Καλησπέρα!
Δημήτρη, η δυνατότητα επιλογής "Συμπλήρωση των τύπων στις στήλες δίπλα από τα δεδομένα" υπάρχει αλλά ισχύει μόνο για ερωτήματα που είχαν δημιουργηθεί με Excel 2003 ή για ερωτήματα που θα δημιουργηθούν προγραμματιστικά .

Από τη VBA μπορεί να δημιουργηθεί ερώτημα όπου τα δεδομένα του επιστρέφονται σε κανονική περιοχή του φύλλου και όχι σε πίνακα.
Σε αυτή την περίπτωση η δυνατότητα επιλογής είναι ορατή.

Ένας γενικότερος κώδικας VBA που δημιουργεί ένα ερώτημα σε περιοχή φύλλου είναι ο παρακάτω:
Κώδικας:

Sub CreateOldTypeQueryToAccDatabase()
    Dim strArr(1 To 4) As String
    strArr(1) = "ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
    strArr(2) = "DBQ=C:\USERS\ADMIN\DESKTOP\MovieDatabase.accdb;"
    strArr(3) = "DefaultDir=C:\;"
    strArr(4) = "Uid=Admin;Pwd=;"
    With ActiveSheet.QueryTables.Add(Connection:=Array(strArr), Destination:=Range("A1"))
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT `Movielist HD`.* FROM `C:\USERS\ADMIN\DESKTOP\MovieDatabase.accdb`", _
                            ".`Movielist HD` `Movielist HD`")
                           
        .Refresh BackgroundQuery:=False
    End With
End Sub

Οι πίνακες που περιέχουν δεδομένα ενός ερωτήματος (όχι όμως WEB - εκεί μπορεί να υπάρξει πρόβλημα) που δημιουργήθηκε από την επιφάνεια εργασίας στις νεότερες εκδόσεις Excel λόγω της κατασκευής τους επιτρέπουν την αυτόματη συμπλήρωση τύπων σε μια στήλη αξιόπιστα.

Δεν αποκλείεται βέβαια η δομή του τύπου να είναι τέτοια που να μην επιτρέπει τη σωστή συμπλήρωση του.

Δεδομένα από αρχείο *.csv μπορούν να εισαχθούν με τη βοήθεια του οδηγού εισαγωγής εξωτερικών δεδομένων από κείμενο. Μόνο εκεί υπάρχει η δυνατότητα επιλογής του χαρακτήρα διαχωρισμού των πεδίων (;).

Φιλικά

Τάσος

jockey17 31-03-14 20:19

Ευχαριστώ πολύ για την άμεση απάντηση.
Χρησιμοποίησα τον κώδικα και πράγματι δούλεψε άψογα.
Σου είναι εύκολο να μου εξηγήσεις πως μπορεί να δουλέψει για εισαγωγή από άλλο βιβλίο του Excel;
Να είσαι καλά.

Tasos 01-04-14 13:11

Καλησπέρα!

Δημήτρη δοκίμασε τον παρακάτω κώδικα (δεν είμαι σίγουρος αν λειτουργεί σε Excel 2007):

Κώδικας:

Sub CreateOldTypeQueryToExcel()
    Dim strArr(1 To 4) As String
    strArr(1) = "ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"
    strArr(2) = "DBQ=C:\USERS\ADMIN\DESKTOP\MovieDatabase.xlsx;"
    strArr(3) = "DefaultDir=C:\;"
    strArr(4) = "Uid=Admin;Pwd=;"
    With ActiveSheet.QueryTables.Add(Connection:=Array(strArr), Destination:=Range("A1"))
        .CommandType = xlCmdSql
        .CommandText = _
            Array("SELECT `'Movielist HD$'`.* FROM `C:\USERS\ADMIN\DESKTOP\MovieDatabase.xlsx`", _
            ".`'Movielist HD$'` `'Movielist HD$'`")
                           
        .Refresh BackgroundQuery:=False
    End With
End Sub

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


Τάσος

jockey17 01-04-14 20:37

Και πάλι σε ευχαριστώ πάρα πολύ!
Δούλεψε άψογα.
Τα λέμε...

Φιλικά
Δημήτρης


Η ώρα είναι 09:50.

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


Search Engine Optimization by vBSEO 3.3.2