Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Το επισυναπτόμενο αρχείο περιέχει τον παρακάτω κώδικα Κώδικας: Sub InsertMultiData() Dim FileArray As Variant Dim i As Integer Application.ScreenUpdating = False FileArray = Application.GetOpenFilename(MultiSelect:=True) If Not IsArray(FileArray) Then MsgBox "Δεν ειλέξατε αρχείο." _ & vbLf & "Ξαναπροσπαθείστε!!!!!!!", vbInformation Exit Sub End If If IsArray(FileArray) Then For i = LBound(FileArray) To UBound(FileArray) Workbooks.Open FileArray(i) Range("A8:Q8").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.ScreenUpdating = False Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select Next i Else: MsgBox "Επιτυχής εισαγωγή δεδομένων" End If End Sub Τα ζητούμενα 2 1ον)Πως πρέπει να δομηθεί ο κώδικας ούτως ώστε το αρχείο προέλευσης των δεδομένων που ανοίγει (Workbooks.Open FileArray(i)), μετά την διαδικασία αντιγραφής και επικόλλησης να σώζεται και να κλείνει. 2ον)Επειδή η αρχή της περιοχής των δεδομένων που αντιγράφονται από τα αρχεία προέλευσης δεν είναι πάντα η περιοχή A8:Q8 ζητείται τροποποίηση του κώδικα ούτως ώστε η αρχή αυτή να προσδιορίζεται ως η περιοχή μετά τις επικεφαλίδες (Δηλ. από το επόμενο κελί μετά το κελί που έχει τιμή (Πωλητής) της στήλης Α έως τη στήλη Q). Περιμένοντας τη βοήθειά σας, σας ευχαριστώ εκ των προτέρων. Γιώργος |
#2
| |
![]() Παράθεση:
α) Πρόσθεσε στην Sub InsertMultiData() την δήλωση Dim wbk As Workbook β) Αντικατάστησε την Workbooks.Open FileArray(i) με την Set wbk = Application.Workbooks.Open(FileArray(i)) γ) Πριν την Next i πρόσθεσε τις παρακάτω δύο γραμμές Application.CutCopyMode = False wbk.Close Πες μας αν έγινε. Για το δεύτερο ερώτημα, τα πράγματα είναι πιο σύνθετα το αφήνω λοιπόν στους ειδικούς ![]() Θανάσης |
#3
| |||
| |||
![]()
Θανάση σ' εχαριστώ. ![]() Επειδή εκτελώντας τον κώδικα μου προτείνεται αν θέλω να σώσω η όχι τα αρχεία προέλευσης προσθέτοντας ανάμεσα στο Application.CutCopyMode = False & το wbk.Close το wbk.Save η το Application.DisplayAlerts = False ο κώδικας μετά δουλεύει απόλυτα. Και πάλι σ' ευχαριστώ Γιώργος |
#4
| |||
| |||
![]()
Καλησπέρα Γιώργο, αντικατέστησε τις γραμμές κώδικα : 1. Τη γραμμή: Dim i As Integer με την: Dim i As Integer, J as Long 2. την: Range("A8:Q8").Select με τις γραμμές: j = WorksheetFunction.Match("Πωλητής", Range("A:A")) + 1 Range(Cells(j, 1), Cells(j, 17)).Select. Φιλικά/Γιώργος |
#5
| ||||
| ||||
![]()
Καλησπέρα! Θα πρέπει να αποφεύγουμε τα Copy-Paste (αν μας ενδιαφέρουν μόνο τα δεδομένα μιας περιοχής) καθώς και τα Select και Activate μέσα στον κώδικα. Υπάρχουν άλλες μεθόδοι που είναι πιο αποδοτικές. Το συνημμένο παράδειγμα εισάγει δεδομένα από το πρώτο φύλλο ενός ή περισσότερων βιβλίων εργασίας. Παράλληλα αν θελήσει ο χρήστης, μπορεί κάνοντας κλικ σε Checkbox που υπάρχει στο φύλλο Total Data να ενεργοποιήσει την καταγραφή της διαδρομής των αρχείων στο φύλλο Log και να αποκλείσει έτσι την εισαγωγή τους για δεύτερη φορά. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 16-03-12 στις 10:03. |
#6
| |
![]() Παράθεση:
![]() Η πρότασή μου είχε Dim, Set, Application και Close. ούτε Select ούτε τίποτα άλλο κακό !!! Τα λέμε Θ. ![]() |
#7
| |||
| |||
![]()
Σας ευχαριστώ όλους ![]() ![]() ![]() Ειδικά τον Διαχειριστή του Forum μας τον Τάσο που πέρα από την λύση του προβλήματος μας δίνει και τον σωστό τρόπο σκέψης για την σύνταξη του κώδικα, και όχι μόνο. Πολύ διδακτικό !!!!!!!!!!!! Και πάλι σας ευχαριστώ Γιώργος |
#8
| |||
| |||
![]()
καλησπερα σε όλους Θα ήθελα την βοηθεια σας οσον αφορά το πρόγραμμα του αγαπητου Τάσο " xlImportWorksheets ". Γίνετε να μην ειναι απαραιτητα η επικεφαλιδα Πωλητής - Ημερομηνία - Πελάτης -Data 1- κ.λ.π. Δηλ σε ολα τα αλλα αρχεια δεν μπορεί να ειναι αλλη επικεφαλίδα με αλλα ονόματα ???? Ευχαριστώ Γρηγόρης |
#9
| ||||
| ||||
![]()
Καλησπέρα σε όλους! Αγαπητέ Γρηγόρη, η λύση και η λογική του συγκεκριμένου αρχείου βασίζεται στο ζητούμενο του θέματος όπου περιέχεται. Αν θέλεις δημιούργησε ένα νέο θέμα στο φόρουμ και περίγραψε μας το ζητούμενο σου. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Συναρτήσεις] Πολλαπλό φιλτράρισμα και διαγραφή δεδομένων | pm4698 | Excel - Ερωτήσεις / Απαντήσεις | 6 | 28-02-14 13:30 |
Ενσωμάτωση αρχείων απο outlook σε βάση δεδομένων | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 8 | 15-02-14 15:11 |
Άνοιγμα αρχείων μέσω cmd button από φόρμα στην access | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 19 | 25-11-13 16:32 |
Εισαγωγή πολλαπλών αρχείων Excel στην Access | prittpritt | Access - Ερωτήσεις / Απαντήσεις | 5 | 16-02-13 20:30 |
Άνοιγμα μιας φόρμας από μια άλλη φόρμα και ταυτόχρονη εισαγωγή κάποιων πεδίων | soc07 | Access - Ερωτήσεις / Απαντήσεις | 19 | 19-03-11 09:05 |
Η ώρα είναι 06:30.