Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] διαγραφή δεδομένων (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/849-diagrafi-dedomenon.html)

misirlis 26-11-10 21:05

διαγραφή δεδομένων
 
Παρακαλώ βοήθεια από την κοινότητα στο εξής πρόβλημα.Μετά από αντιγραφή δεδομένων στην περοχή A8:Q15 στο φύλλο a2 να γίνεται διαγραφή των δεδομένων από το σημείο που σταματά η αντιγραφή και κάτω.Η περιοχή που σταματουν οι εγγραφές μπορεί να ειναι και διαφορετική π.χ A8:Q25.,ανάλογα τις σειρές του πίνακα.Ευχαριστώ εκ των προτέρων.

Chris 27-11-10 00:50

Φίλε Νίκο καλημέρα

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

Πάντως έχε υπόψη σου ότι η χρήση της VBA επιβάλλετε σε τέτοιου είδους αυτοματισμό.

Περιμένουμε νέα σου.

misirlis 27-11-10 11:26

αντιγραφή
 
Χρήστο προασπαθώ να αντιγράψω τα δεδομένα από το φύλλο εργασίας με το όνομα mmm στο φύλλο εργασίας ΑΑ .Τα δεδομένα στο φύλλο εργασίας με το όνομα mmm διαφέρουν πολλες φορές.Την αντιγραφή την κάνω με το CommandButton1 (Χ)στο φύλλο εργασίας ΑΑ .

nisgia 27-11-10 14:10

Καλησπέρα Νίκο!

Το CommandButton1 (Χ) δεν κάνει αυτό που λες.
Βασικά ο κώδικάς του δεν κάνει τίποτα έτσι όπως είναι στο αρχείο ΑΑ.xls που μας έστειλες.

Δοκίμασε όμως με τον παρακάτω μήπως και γίνεται αυτό που ζητάς.
(Το βιβλίο mmm.xls πρέπει να είναι ανοιχτό)

Κώδικας:

Private Sub CommandButton1_Click()
    Dim rngCopy As Range

    On Error Resume Next
    'Προσπάθεια σύνδεσης με την περιοχή αντιγραφής (προέλευσης).
    Set rngCopy = Workbooks("mmm.xls").Worksheets(1).Range("Print_Area")
    If rngCopy Is Nothing Then
        'Ενημέρωση αν δεν βρέθηκε.
        MsgBox "Source range not found!", vbExclamation, "Copy range"
    Else
        With Range("A3:Q60")                'Περιοχή επικόλλησης.
            .ClearContents                'Απαλοιφή περιεχομένων.
            rngCopy.Copy                'Αντιγραφή περιοχής προέλευσης.
            .PasteSpecial xlPasteValues        'Επικόλληση τιμών στην περιοχή προορισμού.
        End With
        'Ενημέρωση αν προέκυψε κάποιο σφάλμα κατά την επικόλληση.
        If Err Then MsgBox Err.Description, vbExclamation, "Paste error"
        Application.CutCopyMode = False 'Καθάρισμα του clipboard.
    End If
End Sub

Φιλικά, Γιάννης.

misirlis 27-11-10 17:09

Φίλε Γιάννη ευχαριστώ πολύ,λειτουργεί η επικόλληση .Θέλω να σου πω όμως την διαδικασία που ακολουθούσα εγώ.Το φύλλο εργασίας mmm είναι διαφορετικό κάθε φορά.Εγω έκανα επιλογή την περιοχή αντιγραφής του εκάστοτε φύλλου(η περιοχή που παίρνω τα στοιχεία είναι A:Q σταθερή πάντοτε) και πηγαίνοντας στο σταθερό φύλλο εργασίας ΑΑ,ενεργοποιόντας το (χ)έκανα την επικκόληση.Επειδή τα δεδομένα που προέρχονται από το εκαστοτε φύλλο εργασίας διαφέρουν ως προς τον αριθμό των γραμμών,οταν έκανα επικόλληση 10 σειρών και η προηγουμένη επικόλληση ήταν π.χ 15 σειρές παρέμεναν οι πέντε.Ζητούσα λοιπόν με έναν αυτοματισμό και συμπληρώνοντας τον κώδικα (χ)τα δεδομένα από την προηγούμενη αντιγραφή που περισσεύουν να σβήνονται.Βοήθεια δεκτή.

nisgia 27-11-10 19:14

Φίλε μου Γιώργο, νομίζω πως αυτή τη φορά έγινες κατανοητός. :dft010:
Άλλαξε λοιπόν τη διαδικασία του CommandButton1 (Χ) με την παρακάτω
και πες μας αν έγινε αυτό που ζητάς:
Κώδικας:

Private Sub CommandButton1_Click()
    On Error Resume Next
    Range("A3").PasteSpecial xlPasteValues
    With Selection
        .Rows(.Rows.Count).Offset(1).Resize(100 - .Rows.Count).ClearContents
    End With
    If Err Then MsgBox Err.Description, vbExclamation, "Paste error"
End Sub

Η περιοχή "ευθύνης" της είναι 100 γραμμές κάτω από τη γραμμή 3 (περιοχή A3:Q102).
Αν θέλεις να αυξομειώσεις αυτόν τον αριθμό, άλλαξε το κόκκινο 100 στον κώδικά της.

Τα λέμε!
Γιάννης

misirlis 27-11-10 20:42

Γιάννη σε υπερ ευχαριστώ,να ΄σαι καλά.

Tasos 28-11-10 20:52

1 Συνημμένο(α)
Καλησπέρα σε όλους!

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

Δες ένα παράδειγμα στο συνημμένο που λειτουργεί ως εξής:

Στο κελί Α2 του φύλλου Data περνούμε τη διαδρομή του φακέλου που περιέχει τα αρχεία προέλευσης δεδομένων.

Στο ίδιο φύλλο και στο κελί A4 περνάμε την κατάληξη των αρχείων που θέλουμε να εμφανιστούν στην λίστα (Περιοχή A8:A58).

Κάνοντας διπλό κλικ πάνω στο επιθυμητό όνομα του αρχείου στη λίστα, η εφαρμογή φέρνει τα δεδομένα του φύλλου a2 στο φύλλο ImportSheet.

Από κει και πέρα με απλούς τύπους στο φύλλο Data θα μπορείς να εμφανίζεις επιλεκτικά τα δεδομένα που ήδη έχουν αποθηκευτεί στο φύλλο ImportSheet.

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

Φιλικά

Τάσος


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

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


Search Engine Optimization by vBSEO 3.3.2