ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Γενικά] ΔΙΑΣΠΑΣΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΑΡΧΕΙΑ EXCEL

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 16-01-15, 09:24
Όνομα: Μάνος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2012
Μηνύματα: 83
Προεπιλογή ΔΙΑΣΠΑΣΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΑΡΧΕΙΑ EXCEL

Καλημέρα.
Εχω ένα θέμα και δεν ξέρω πως μπορώ να το αντιμετωπίσω.

Έχω ένα αρχείο excel και σε ένα φύλλο έχω ανα 20 γραμμές απο έναν πίνακα.
Το ερώτημα είναι το εξής. Υπάρχει τρόπος να εξάγω αυτούς τους πίνακες σε ξεχωριστά αρχεία excel;
Ευχαριστώ.
Απάντηση με παράθεση
  #2  
Παλιά 16-01-15, 14:51
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Καλησπέρα
Αγαπητέ Μάνο,
Επειδή προφανώς, η λύση θα είναι με κώδικα,
οι πληροφορίες που δίνεις, δεν είναι αρκετές, για να έχουμε σαφή άποψη για το ζητούμενο.
Για παράδειγμα:
Οι πίνακες που αναφέρεις, είναι πραγματικοί πίνακες ή περιοχές;
Σε ποιο σημείο ακριβώς, θα αποθηκεύονται τα αρχεία που θα δημιουργηθούν;
Με ποιο όνομα;
Τι είδους αρχείο θα δημιουργηθεί; (πχ. .xls, .xlsx κλπ)

Σε κάθε περίπτωση ο πιο κάτω γενικός κώδικας,

Κώδικας:
Sub ReCreateTblNewWb()
    Dim FName As String
    Dim i As Integer

    For i = 1 To Sheet1.ListObjects.Count

        Range("Table" & i & "[#All]").Copy
        Workbooks.Add
        ActiveSheet.Paste
        FName = "testBook" & i
        ActiveWorkbook.SaveAs Filename:=FName & ".xlsx"
        ActiveWindow.Close
        
    Next i
End Sub
δημιουργεί, τόσα αρχεία .xlsx στην επιφάνεια εργασίας, όσοι και οι πίνακες που υπάρχουν, στο Sheet1 του μητρικού βιβλίου.
Το όνομα του νέου αρχείου είναι testBook + ο αριθμός του πίνακα που έχει αντιγραφεί σε αυτό.
Στα νέα αρχεία, κάθε πίνακας, έχει επικολληθεί στο κελί a1.

Οι πίνακες, είναι πραγματικοί πίνακες (ListObjects) και
οι διαστάσεις τους είναι, χ στήλες, ψ γραμμές (αδιάφορο).
Οι πίνακες, πρέπει να έχουν ονομασίες Table1, Table2, Table3, και
η θέση τους μέσα στο φύλλο μπορεί να είναι οπουδήποτε.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm MainBook.xlsm (25,8 KB, 31 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη Spirosgr : 16-01-15 στις 16:27. Αιτία: Επισύναψη Αρχείου
Απάντηση με παράθεση
  #3  
Παλιά 21-01-15, 09:02
Όνομα: Μάνος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2012
Μηνύματα: 83
Προεπιλογή

Σπύρο καλημέρα.
Σε ευχαριστώ πολύ για την απάντησή σου.
Το αρχείο που έχω και θέλω να διασπάσω δεν είναι με αντικείμενα πίνακες είναι περιοχές.
Υπάρχει τρόπος να γίνει αυτό με περιοχές;
Ευχαριστώ.
Απάντηση με παράθεση
  #4  
Παλιά 21-01-15, 10:30
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Καλημέρα
Στο Sheet1 ενός βιβλίου, έχουμε περιοχές με δεδομένα.
Κάθε περιοχή, αρχίζει από την επόμενη γραμμή, που τελειώνει η προηγούμενη.
Παράδειγμα:
πρώτη: γραμμή 1 - 20
δεύτερη: γραμμή 21 - 40 κοκ

Το πλάτος κάθε περιοχής, είναι αδιάφορο - (ν) στήλες

Οι περιοχές, πρέπει να έχουν κεφαλίδες, στην πρώτη γραμμή τους,
ή να είναι «γεμάτες» με δεδομένα, όσον αφορά τουλάχιστον την πρώτη γραμμή τους.


Κώδικας:
Sub CreateWBsByRngs()
    Dim sRow As Long
    Dim eRow As Long
    Dim eCol As Long
    Dim fRow As Long
    Dim i As Integer
    Dim FName As String

    sRow = 1
    eRow = 20

    fRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To fRow / 20
        eCol = Sheet1.Cells(sRow, Columns.Count).End(xlToLeft).Column
        Sheet1.Range(Cells(sRow, 1), Cells(eRow, eCol)).Copy
        Workbooks.Add
        ActiveSheet.Paste
        FName = "testBook" & i
        ActiveWorkbook.SaveAs Filename:=FName & ".xlsx"
        ActiveWindow.Close

        sRow = sRow + 20
        eRow = eRow + 20

    Next i
End Sub
Ο κώδικας:
Δημιουργεί, τόσα αρχεία .xlsx στην επιφάνεια εργασίας,
ή όπου έχουμε ορίσει να αποθηκεύονται εξ' ορισμού στον υπολογιστή μας,
όσες και οι περιοχές που υπάρχουν, στο Sheet1 του μητρικού βιβλίου.
Το όνομα του νέου αρχείου είναι testBook + ένας αύξων αριθμός από το 1 έως (χ) - αριθμός περιοχών.
Στα νέα αρχεία, κάθε περιοχή, έχει επικολληθεί στο κελί a1.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm MainBook1.xlsm (24,1 KB, 18 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη Spirosgr : 21-01-15 στις 10:45. Αιτία: Επισύναψη Αρχείου
Απάντηση με παράθεση
  #5  
Παλιά 21-01-15, 12:24
Όνομα: Μάνος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2012
Μηνύματα: 83
Προεπιλογή

Δεν μου δουλεύει. Βγάζει ένα μήνυμα Run-time error'1004'
Method 'Range' of object'_Worksheet' Failed.
Ισως φταίει που στο δικό μου αρχείο η πρώτη γραμμή της κάθε περιοχής έχει μόνο στο πρώτο κελί κείμενο και η καθε επόμενη περιοχή ξεκινάει μετα απο 5 κενές σειρές.
Δεν ξέρω τι να πώ.
Μήπως έχεις κάποια ιδέα;
Ευχαριστώ
Απάντηση με παράθεση
  #6  
Παλιά 21-01-15, 15:32
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Καλησπέρα

Προφανώς έχεις Ελληνικό Office και θα πρέπει να αλλάξεις το Sheet1. στον κώδικα με το ανάλογο κωδικό όνομα φύλλου (πχ Φύλλο1,2...)

Από την άλλη και να τρέξει ο κώδικας, δεν θα έχει σωστό αποτέλεσμα σε αυτό που ζητάς τώρα.
Με τις παραμέτρους που αναφέρω, δουλεύει σίγουρα σωστά.

Μπες, στον ελάχιστο κόπο να ανεβάσεις ένα αρχείο, με το τι ακριβώς θέλεις,
για να είναι εμφανής η έκδοση Office και το ασαφές ζητούμενο σου ...

«πίνακες όχι πίνακες περιοχές, ανά 20 γραμμές όχι τώρα με 5 κενά ανάμεσα ή ότι άλλο.»
ώστε να σταματήσω να μαντεύω, και ίσως πάρεις απάντηση.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Πίνακες ] Συσχετισμός πινάκων απο διάσπαση. Ρούλα Access - Ερωτήσεις / Απαντήσεις 5 04-05-16 07:19
[Γενικά] Εύρεση κοινών κωδικών σε δυο αρχεία excel... xaniamike Excel - Ερωτήσεις / Απαντήσεις 2 31-05-15 16:51
[Excel07] Αυτόματη εισαγωγή δεδομένων σε κελιά από 2 αρχεία mantarinia Excel - Ερωτήσεις / Απαντήσεις 0 14-05-15 19:45
[Γενικά] Μεταφορά δεδομένων από 3 αρχεία xristos Excel - Ερωτήσεις / Απαντήσεις 4 26-04-14 16:40
[VBA] Έλεγχος ονόματος ενός φύλλου σε 850 αρχεία Excel! Charis Excel - Ερωτήσεις / Απαντήσεις 2 18-08-10 18:53


Η ώρα είναι 04:44.