Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Μεταφορά κελιών (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5039-metafora-kelion.html)

skomat 09-10-18 07:59

Μεταφορά κελιών
 
1 Συνημμένο(α)
Καλημέρα ομάδα. Έχω ένα βιβλίο excel που καταχωρούμε συνδρομητές στο φύλλο 1 και έχει την μορφή του συνημμένου. Υπάρχει δυνατότητα να μπορώ με κάποια μακροεντολή να μεταφέρω τις εγγραφές επιλεκτικά? Δηλαδή θέλω να μεταφέρω της εγγραφές που υπάρχει στην στήλη Β1 έως Β8 και της εγγραφές που υπάρχουν στην στήλη G1 έως G8, στο φύλλο 3 πχ!!! Σας ευχαριστώ προκαταβολικά!!

Spirosgr 09-10-18 10:11

Καλημέρα
Επειδή υπάρχουν ασάφειες στο ερώτημα, πχ
Οι επιλογές θα έχουν πάντα ίδιο ύψος; (γραμμές)
Που ακριβώς στο φύλλο 3, θα πάνε;

Ο πιο κάτω κώδικας, λέει το εξής:
Επιλέγουμε οτιδήποτε θέλουμε, από την Used Range του πρώτου φύλλου.
Με το Ctrl, έχουμε πολλαπλές επιλογές...

Αν δεν επιλέξουμε κάτι, μνμ σφάλματος.

Ορίζουμε στο Input, την στήλη προορισμού στο φύλλο πχ 3 = C
Η μεταφορά, γίνεται από την επιλεγμένη στήλη (έως όπου είναι... συνεχόμενα) και
από την γραμμή 2 και κάτω (για τυχόν κεφαλίδες)

Αν θέλουμε τις υπάρχουσες κεφαλίδες του φύλλου 1
τις επιλέγουμε και αλλάζουμε το:
Selection.Copy Destination:=Sheet3.Cells(2, iInput) σε:
Selection.Copy Destination:=Sheet3.Cells(1, iInput)
Κώδικας:

Sub CopySelection()
    Dim iColumn As Integer
    If Intersect(Selection, Sheet1.UsedRange) Is Nothing Then
        MsgBox "Η επιλογή δεν είναι σωστή"
        GoTo ExitHR:
    End If

    On Error GoTo ExitHR:
    Dim iInput As Integer
    iInput = Application.InputBox _
            ("Ok = ENTER, Cancel = ESC", "Εισάγετε Αριθμό Στήλης Προορισμού", 1, Type:=1)

    Sheet3.UsedRange.ClearContents
    Selection.Copy Destination:=Sheet3.Cells(2, iInput)
    Application.CutCopyMode = False
    Sheet3.UsedRange.Columns.AutoFit
ExitHR:
End Sub


skomat 09-10-18 10:25

Καλημέρα Σπυρο. Ναι θα εχουν παντα το ιδιο υψος γραμμης, αυτό που θελω στην ουσια είναι από το φυλλο 1, να μεταφερω εγγραφες στο φυλλο 3, χωρις να μεσολαβουν οι εγγραφες από το φυλλο 1 που δεν με ενδιαφερουν. Δηλαδη στο φυλλο 1 εχω (ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ- ΕΠΩΝΥΜΟ-ΟΝΟΜΑ-ΟΝΟΜΑ ΠΑΤΡΟΣ-ΟΝΟΜΑ ΜΗΤΡΟΣ-ΗΜΕΡΟΜΗΝΙΑ ΕΓΓΡΑΦΗΣ-ΗΜΕΡΟΜΗΝΙΑ ΛΗΞΗΣ ΣΥΝΔΡΟΜΗΣ) και θελω στο φυλλο 3 πχ να μεταφερω τον ΑΡΙΘΜΟ ΜΗΤΡΩΟΥ, ΤΟ ΕΠΩΝΥΜΟ, ΚΑΙ ΤΗΝ ΗΜΕΡΟΜΗΝΙΑ ΕΓΓΡΑΦΗΣ, και δεν θελω να μεταφερθουν το ΟΝΟΜΑ ΠΑΤΡΟΣ, ΟΝΟΜΑ ΜΗΤΡΟΣ και ΗΜΕΡΟΜΗΝΙΑ ΛΗΞΗΣ ΣΥΝΔΡΟΜΗΣ, ώστε να τα εχω καθαρα προς εκτυπωση.
Ελπιζω να εγινα κατανοητος.

Spirosgr 09-10-18 13:22

1 Συνημμένο(α)
Στο βιβλίο και οι δύο λύσεις,
αφού μπορούμε να χρησιμοποιήσουμε και την επιλογή, που αναφέραμε πρίν...
Η Δεύτερη λύση είναι προσαρμοσμένη ακριβώς στο ζητούμενο (στήλες κλπ)
Τo φύλλο Data1 πάει στο Copy1
Τo φύλλο Data2 πάει στο Copy2

*όπου Sheet1,2,3,4 το κωδικό όνομα των φύλλων

Με τον τρόπο που είναι γραμμένος ο κώδικας (TransferColumns),
μπορεί κανείς πολύ εύκολα, μέσα στο For,
να προσθέσει μια ή περισσότερες στήλες, αν χρειαστεί...

skomat 10-10-18 10:03

Καλημέρα. οκ σε ευχαριστω πολύ για το παράδειγμα, ο κωδικας transfercolumns με βολεψε αφανταστα. Και παλι σε ευχαριστω πολύ.

Spirosgr 10-10-18 11:52

Να 'σαι καλά, καλή συνέχεια.


Η ώρα είναι 02:35.

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


Search Engine Optimization by vBSEO 3.3.2