Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Αντιγραφή & Επικόλληση

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 31-03-11, 21:44
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 66
Προεπιλογή Αντιγραφή & Επικόλληση

Καλησπέρα σε όλους

Έχω ένα αρχείο Excel απο το οποίο αντιγράφω δεδομένα και τα επικολλώ σε ένα άλλο αρχείο που είναι αποθηκευμένο σε ένα άλλο δίσκο (S).
Αυτοματοποίησα την διαδικασία γράφοντας τον παρακάτω κώδικα:
Κώδικας:
Sub Insert()
Rows("8:8").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
ChDir "S:\test"
    Workbooks.Open Filename:= _
        "S:\test\test1.xls"
    Windows("test1.xls").Activate
Dim FirstBlankCell As Range
Set FirstBlankCell = Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
FirstBlankCell.Activate
ActiveSheet.Paste
FirstBlankCell.Select
ThisWorkbook.Activate
ActiveWorkbook.Save
Windows("test1.xls").Activate
ActiveWorkbook.Save
Application.Quit
End Sub
Ο κώδικας λειτουργεί καλά εκτός από 2 περιπτώσεις.
1) Όταν το αρχείο ("test1.xls") είναι ανοικτό μου βγάζει
Run-time error '1004':
Paste method of Worksheet class failed
2) Όταν δεν έχω πρόσβαση στον δίσκο (S) (Δίσκος Δικτύου) μου βγάζει
Run-time error '76':
Path not found
Το ζητούμενο είναι η σύνταξη του κώδικα έτσι ώστε στην πρώτη περίπτωση να έχουμε
ένα MsgBox που να λέει (Κλείστε το αρχείο "test1.xls")
και στη δεύτερη να λέει (είστε εκτός δικτύου)

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

Γιώργος
Απάντηση με παράθεση
  #2  
Παλιά 31-03-11, 23:58
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Φίλε Γιώργο,
δες τα παραδείγματα σε αυτό το άρθρο (How to Use "On Error" to Handle Errors in a Macro) στη Knowledge Base της Microsoft.
Νομίζω ότι το 2o παράδειγμα που περιέχεται στο άρθρο είναι πανομοιότυπο με αυτό που ζητάς.

Θανάσης.
Απάντηση με παράθεση
  #3  
Παλιά 01-04-11, 18:40
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 66
Προεπιλογή

Θανάση ευχαριστώ
Προσάρμοσα τον κώδικα στα μέτρα μου και όλα καλά.
Και πάλι ευχαριστώ.

Γιώργος
Απάντηση με παράθεση
  #4  
Παλιά 01-04-11, 19:12
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Φίλε Γιώργο,
πολύ χαίρομαι για την ελάχιστη βοήθεια που έδωσα, αλλά χαίρομαι πολύ περισσότερο γιατί διέκρινα στα λόγια σου την ικανοποίηση του "Τα κατάφερα μόνος μου"

Μπράβο σου!!!

Ευχαριστώ με την σειρά μου για την ανταπόκρισή σου.
Τα λέμε
Θανάσης
Απάντηση με παράθεση
  #5  
Παλιά 01-04-11, 21:59
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα κι από μένα!
Γιώργο, επίτρεψε μου να σου πω και εγώ ένα μπράβο για την προσπάθεια σου!
Εκτός από το Error trapping, θα πρέπει στον προγραμματισμό με VBA να αναφερόμαστε απευθείας στα αντικείμενα
της Excel χωρίς Select, Selection, ActiveCell, Activate γιατί εκτός τη κατά πολύ μειωμένη ταχύτητα εκτέλεσης που προσφέρουν,
προκαλούν την συνεχή ανανέωση της οθόνης και το κυριότερο: προκαλούν λάθη!

Γενικά θα πρέπει να αποφεύγουμε τις πολλές εναλλαγές στην οθόνη (δεν είναι ότι καλύτερο αισθητικά)
Δες τον κώδικα σου με κάποιες αλλαγές και χωρίς τη χρήση Select που δεν θα χρειαστεί πολύ δουλειά στην αποσφαλμάτωση του:

Κώδικας:
Option Explicit

Sub Insert()
    Dim strFile As String, wb As Workbook, wks As Worksheet, rng As Range
    strFile = "C:\test 1\test1.xls"
    With Application
        .ScreenUpdating = False
        .ShowWindowsInTaskbar = False
        If Dir(strFile, vbDirectory) <> vbNullString Then
            Set rng = Rows("8:8")
            Set wb = Workbooks.Open(Filename:=strFile, IgnoreReadOnlyRecommended:=True)
            Set wks = wb.Worksheets("Sheet3")
            rng.Copy
            wks.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteAll
            wb.Save
            wb.Close False
            .ScreenUpdating = True
            .ShowWindowsInTaskbar = True
            'ThisWorkbook.Save
            '.Quit
        End If
    End With
End Sub
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #6  
Παλιά 04-04-11, 22:23
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-09-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 66
Προεπιλογή

Καλησπέρα
Φίλε Θανάση σ’ ευχαριστώ για την φιλοφρόνηση.
Φίλε Τάσο σ’ ευχαριστώ πάρα πολύ για τις υποδείξεις .
Είναι για μένα μάθημα.
Από την πρώτη στιγμή που έγινα μέλος του Forum κατάλαβα ότι ο Διαχειριστής και κάποια άλλα μέλη λειτουργούν σαν δάσκαλοι.
Κάποιος μου είπε ότι αν δώσεις σε κάποιον ένα ψάρι θα ικανοποιήσει την πείνα του για 1 μέρα , αν τον μάθεις να ψαρεύει δεν θα πεινάσει ποτέ.
Έτσι λοιπόν μας μαθαίνεται να ψαρεύουμε.

Και πάλι σας ευχαριστώ.

Γιώργος
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
vba


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Αντιγραφή και επικόλληση (Copy-Paste) parara Access - Ερωτήσεις / Απαντήσεις 6 04-03-16 16:28
[Μορφοποίηση] Αντιγραφή - Επικόλληση Γιώργος Κ. Excel - Ερωτήσεις / Απαντήσεις 3 11-01-16 11:46
[Γενικά] Αντιγραφή επικόλληση στο πρώτο κενό κελί PANIK Excel - Ερωτήσεις / Απαντήσεις 4 22-04-12 10:39
[Excel07] Αντιγραφή/Επικόλληση χωρίς να χάνεται η εντολή mtheristis Excel - Ερωτήσεις / Απαντήσεις 2 15-08-11 19:26
[ Φόρμες ] Αντιγραφή και επικόλληση mgeorge Access - Ερωτήσεις / Απαντήσεις 8 12-06-11 20:52


Η ώρα είναι 18:58.