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/1438-metafora-dedomenon-se-neo-fillo.html)

chris1978 15-10-11 16:16

Μεταφορά δεδομένων σε νεο φύλλο.
 
1 Συνημμένο(α)
Kαλησπέρα !
Δημιούργησα μια απλή εφαρμογή για να πραρακολουθώ την απόδοση ενος χαρτοφυλακίου μετοχών.
Συγκεκριμένα στο φύλλο DATA και στο κελί F22 κομίζω την ημερήσια απόδοση.
Στο φύλλο 1 θέλω να μεταφερεται η ημερήσια αποδοση δίπλα στην ημερομηνία την οποία πραγματοποιήθηκε. Ευχαριστώ.

Lefteris 17-10-11 16:39

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

Χρήστο, όπως επανειλλημένα έχω πεί δεν έχω ιδέα από VBA.

Το θέμα σου μού άρεσε και ασχολήθηκα αρκετά για να βρώ λύση με συναρτήσεις. Δεν τα κατάφερα.

Μπορεί(αν κρίνω και από το ότι κανένας φίλος δεν έχει απαντήσει ακόμη) και να μην γίνεται.

Βρήκα κάτι όμως, που νομίζω ότι με μικρές μετατροπές(από εσένα, αν έχεις γνώσεις VBA, ή από άλλον Φίλο που γνωρίζει το αντικείμενο), είναι ακριβώς αυτό που ζητάς.

Δές το και τα λέμε.

chris1978 17-10-11 18:31

Καλησπέρα !

Φίλε λευτέρη σ ευχαριστώ για το ενδιαφέρον σου δυστηχώς και εγω δεν έχω γνώσεις VBA
το συννημένο σου περιέχει τον παρακάτω κώδικα :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B1")) Is Nothing Then
With ThisWorkbook.Worksheets("Sheet2")
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = Me.Range("A1").Value
.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = Me.Range("B1").Value

End With
End If

End Sub

αλλα δεν γνωρίζω πως να το προσαρμόσω στα δικα μου δεδομένα.:unsure:

gr8styl 17-10-11 18:46

Αγαπητέ Χρήστο,
αν και δεν είναι σαφές το που βρίσκεται η "... ημερομηνία την οποία πραγματοποιήθηκε ..."
Θεώρησα ότι μπορείς να χρησιμοποιήσεισς το κελί DATA!$F$1 (αν θέλεις χρησιμοποίησε τον τύπο =TODAY() στο F1)

Ο παρακάτω κώδικας αντιγράφει την ημερομηνία (κελί F1) και την απόδοση (κελί F22)
από το φύλλο DATA, στην τελευταία γραμμή (lastrow) στις στήλες Α και Β του φύλλου "REGISTRATION CHANGES"
Κώδικας:

Sub save_changes()
Dim lastrow
    With Worksheets("REGISTRATION CHANGES")
        lastrow = 1 + .Cells(Rows.Count, "A").End(xlUp).Row
        .Cells(lastrow, "A") = Worksheets("DATA").Range("F1").Value
        .Cells(lastrow, "B") = Worksheets("DATA").Range("F22").Value
    End With
End Sub

Προσάρμοσε τα ονόματα των φύλλων και τα κελιά ή τις στήλες στα μέτρα σου αν χρειάζεται.

Τώρα για λύση με συναρτήσεις θα έλεγα ότι δεν γίνεται αφου το "REGISTRATION CHANGES" έχει τα αποτελέσματα από το DATA σε μια δεδομένη στιγμή.
Με συναρτήσεις δεν μπορούμε να διατηρήσουμε την τιμή κάποιου κελιού μιας προηγούμενης δεδομένης στιγμής.

Θανάσης

chris1978 17-10-11 19:52

2 Συνημμένο(α)
Φίλε Θανάση σ' ευχαριστώ για τη λύση που προτείνες δουλεύει άψογα.
'Εχεις απολύτα δίκιο οταν λες ότι δεν είναι σαφες η ημερομηνία που πραγματοποιήθηκε
την τοποθετούσα εσφαλμένα σε λάθος φύλλο.Επισυνάπτω ένα αρχείο με τη λύση που έδωσες
και ένα αρχειο με την λύση που πρότεινε ο Λευτέρης η οποία με ένα δικό μου πιθανά ""μπακαλίστικο"" τρόπο δουλεύει .
Σ ευχαριστώ και τους δύο για την βοήθεια και το ενδιαφερόν σας.


Η ώρα είναι 09:00.

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


Search Engine Optimization by vBSEO 3.3.2