Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#11
| ||||
| ||||
Καλημέρα Γιώργο! Για να ανακεφαλαιώσουμε... Το ζητούμενο σου όπως εξελίχθηκε μέσα από τη συζήτηση είναι: Τα δεδομένα της τελευταίας χρησιμοποιημένης γραμμής (ας πούμε πηγή) να αντιγράφονται στην πρώτη ελεύθερη γραμμή όπου κι αν βρίσκεται αυτή δηλ. πριν ή μετά τηνπηγή. Αν μέχρι εδώ συμφωνούμε τότε ο κώδικας διαμορφώνεται έτσι: Κώδικας: Sub CopyLastRow() Dim FirstFreeLine As Range, LastLine As Range With Range("Table") If Trim(.Cells(1)) <> vbNullString Then Set FirstFreeLine = .Cells(1).Offset(-1).End(xlDown).Offset(1).Resize(1, .Columns.Count) Else Set FirstFreeLine = .Cells(1).Resize(1, .Columns.Count) End If Set LastLine = .Offset(.Rows.Count + 1).End(xlUp).Resize(1, .Columns.Count) If FirstFreeLine.Row <> LastLine.Row And FirstFreeLine.Row <= .Rows(.Rows.Count).Row Then FirstFreeLine.Value = LastLine.Value 'LastLine.ClearContents ' Διαγραφει την τελευταία γραμμή FirstFreeLine.Resize(1, 1).Offset(, .Columns.Count - 1).Select ' ή .ClearContents 'SendKeys "{F2}" ' φέρνει το κελί σε κατάσταση επεξεργασίας End If End With End Sub Τις γραμμές LastLine.ClearContents και SendKeys "{F2}" δεν τις ενεργοποίησα γιατί δεν μπορώ να γνωρίζω αν θα χρησίμευαν στο παρόν σενάριο. Δεν έχει σημασία το ότι είσαι αρχάριος στην VBA. Κάθε διόρθωση, απάντηση, σχόλιο από τα μέλη μας είναι ευπρόσδεκτη! Δεν υπάρχουν συντακτικά ή προγραμματιστικά λάθη στους κώδικες που παρουσιάστηκαν στο θέμα αυτό από τον Γιάννη κι από μένα. Υπάρχουν λογικά λάθη που οφείλονται στη λανθασμένη κατανόηση του ζητούμενου. Μετά από πείρα 15 χρόνων στο χώρο, έμαθα ότι η σωστή περιγραφή ενός προβλήματος παίζει καθοριστικό ρόλο στη λύση του. Καλή σου μέρα και καλή συνέχεια! Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 29-11-10 στις 23:12. |
#12
| ||||
| ||||
Καλησπέρα και πάλι! Παράθεση:
η οποία θεωρούσε πως στην τελευταία γραμμή δεδομένων δεν υπάρχουν κενά κελιά με αποτέλεσμα η επιλογή της να εκτοπίζεται στα δεξιά του πίνακα. Έτσι, το επίμαχο κομμάτι κώδικα μετατρέπεται σε: Κώδικας: With Range("Table").SpecialCells(xlCellTypeConstants) With .Areas(.Areas.Count) With .Rows(.Rows.Count) Set rngLastLine = Cells(.Row, Range("Table").Column) _ .Resize(, Range("Table").Columns.Count) End With End With End With ακόμη και αν αυτή περιέχει 2~3 διάσπαρτα κελιά. Να σημειώσω πως η διαδικασία συνεχίζει να δρα μόνο στη τελευταία γραμμή και εντός των ορίων της περιοχής "Table". Ελπίζω τώρα να μην μας προκύψει και άλλο λογικό σφάλμα... Φιλικά, Γιάννης.
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
#13
| |||
| |||
Υποσχόμενος προσοχή σε μελοντικά μυνήματα για να αποφεύγονται τα (λογικά σφάλματα) Σας ευχαριστώ όλους Γιώργος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
Εργαλεία Θεμάτων | |
Τρόποι εμφάνισης | |
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Ειδική Επικόληση | xristos | Excel - Ερωτήσεις / Απαντήσεις | 8 | 26-05-15 15:06 |
[Γενικά] Αυτόματη επικόληση δεδομένων από λίστα σε άλλο φύλλο | xristos | Excel - Ερωτήσεις / Απαντήσεις | 0 | 08-07-14 17:22 |
[Συναρτήσεις] Στατιστικά από επικόληση σύνδεσης | xristos | Excel - Ερωτήσεις / Απαντήσεις | 10 | 18-12-13 09:40 |
[Συναρτήσεις] Στατιστικά από επικόληση σύνδεσης | xristos | Excel - Ερωτήσεις / Απαντήσεις | 11 | 30-09-13 20:17 |
[Συναρτήσεις] Επικόληση σύνδεσης | xristos | Excel - Ερωτήσεις / Απαντήσεις | 4 | 11-12-12 11:27 |
Η ώρα είναι 21:26.