Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Μεταφορά κειμένου από word σε excel με vba (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2667-metafora-keimenoy-apo-word-se-excel-me-visual-basic-applications.html)

dim.konst 31-08-13 20:55

Μεταφορά κειμένου από word σε excel με vba
 
1 Συνημμένο(α)
Μεταφορά κειμένου από word σε excel με vba
Γεια σας και ευχαριστώ για τις γνώσεις που μας παρέχετε. Θα ήθελα τη βοήθεια σας, θέλω με μια μακροεντολή του excel να ανοίγω το συνημμένο αρχείο testword.doc ή κάποιο άλλο ίδιας μορφής και να αντιγράφω τα δεδομένα του σε κελιά του excel με τη μορφή του συνημμένου testexcel.xls. (δηλαδή ένα copy-paste αυτόματα)

Ευχαριστώ εκ των προτέρων !!!

Spirosgr 01-09-13 18:20

1 Συνημμένο(α)
Καλησπέρα
Ένα αρχείο .doc μπορεί να εισαχθεί απ' ευθείας σε excel ή να γίνει μετατροπή σε .txt
Η μέθοδος Copy - Paste δεν παρέχει ασφάλεια για να είμαστε σίγουροι ότι τα δεδομένα θα μπουν στην σωστή τους θέση.
Γι' αυτό πρέπει πρώτα να γίνει μετατροπή του .doc σε άλλες μορφές με βασικότερες τις .html και .txt

Εδώ θα δούμε μια μέθοδο για το πως γίνετε εισαγωγή .txt σε excel με VBA.
Ο κώδικας που χρησιμοποιήθηκε έγινε με recorder και προσαρμόστηκε κατόπιν αφού αφαιρέθηκαν και κάποιες (αρκετές) περιττές γραμμές.

Αφού μετατρέψουμε τα αρχεία μας σε .txt (Ανοίγουμε το αρχείο .doc και Save as.....txt)
και τα αποθηκεύσουμε ανοίγουμε το βιβλίο excel στο οποίο θέλουμε να εισάγουμε κάποιο ή κάποια από αυτά που για το παράδειγμα μας είναι το testxls.xls
Το βιβλίο περιέχει ένα φύλλο με το όνομα MainSheet.
Επιλέγουμε με τι όνομα (Tab) θέλουμε να δημιουργούνται τα νέα φύλλα και το πληκτρολογούμε στο κατάλληλο κελί.
Με κλικ στο κουμπί ανοίγει ένα msgbox με πληροφορίες και αφού πατήσουμε Yes ανοίγει παράθυρο διαλόγου στο οποίο εντοπίζουμε το αρχείο .txt που θέλουμε να εισαχθεί.
Με την επιλογή του αρχείου εισάγονται τα δεδομένα του σε ένα νέο excel φύλλο με την ονομασία που επιλέξαμε και έναν αριθμό (για να μην υπάρχει κατόπιν διπλότυπη ονομασία)
Ταυτόχρονα οι στήλες του φύλλου προσαρμόζονται στα δεδομένα.

dim.konst 01-09-13 20:22

Σπύρο είναι πολύ χρήσιμη η προσέγγιση σου, θα προσθέσω τον κώδικα στην υπάρχουσα μακροεντολή του excel (κάνει και άλλους υπολογισμούς μετά) και θα ενημερώσω για τα αποτελέσματα Ευχαριστώ για το χρόνο που αφιέρωσες !!!

dim.konst 02-09-13 12:51

1 Συνημμένο(α)
Τελικά η ιδέα σου Σπύρο μου χρησίμευσε πολύ σε μια άλλη περίπτωση αλλά για την συγκεκριμένη ήθελα να τα κάνω όλα μέσα από το Excel με μια ήδη υπάρχουσα μάκροεντολή οπότε ψάχνοντας στο internet βρήκα τον κώδικα που με κάποια προσαρμογή στα μέτρα μου πρόσθεσα στον ήδη υπάρχοντα και έλυσα το πρόβλημα μου.
Για να λειτουργήσει πρέπει πρώτα να ενεργοποιήσουμε από την οθόνη της VB του Excel το Tools-Reference Επιλογή Microsoft Word XX.0 Odject Library
Επισυνάπτω το αρχείο με τη μακροεντολή.

Tasos 02-09-13 13:57

Καλησπέρα!

Αγαπητέ Δημήτρη, ο κώδικας μου θα μπορούσες να χρησιμοποιήσεις χωρίς να εμφανίζεται καν το έγγραφο Word και χωρίς να χρειαστεί η αναφορά του Word Object είναι:

Κώδικας:


Sub CopyFromWord()
    Dim WD As Object, oDoc As Object, sFileName As Variant
    sFileName = Application.GetOpenFilename("Word Files (*.doc*)," & "*doc*")
    If sFileName <> False Then
        Set WD = CreateObject("Word.Application")
        Set oDoc = WD.Documents.Open(sFileName, , True)
        oDoc.Range.Copy
        Range("A1").Activate
      'ActiveSheet.Paste
        ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False
        WD.Quit False
        Set WD = Nothing
    End If
End Sub

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

Τάσος

dim.konst 02-09-13 18:07

Τάσο ο κώδικας που μου έδωσες λειτουργεί τέλεια, είναι πιο γρήγορος από το δικό μου, σε ευχαριστώ πολύ !!!

Tasos 02-09-13 18:18

Να είσαι καλά Δημήτρη!

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

Τάσος


Η ώρα είναι 12:51.

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


Search Engine Optimization by vBSEO 3.3.2