![]() |
Φόρμα και μεταφορά δεδομένων σε άλλο φύλλο Καλημέρα σας και ευχαριστώ εκ των προτέρων για την αποδοχή. Έχω λοιπόν δημιουργήσει μια φόρμα την οποία συμπληρώνω και μου βγάζει μια προσφορά για τον πελάτη μου(έχω βάλει τις κατάλληλες συναρτήσεις και παίρνω τα αποτελέσματα που θέλω). Αυτό που θέλω να κάνω είναι αυτά που θα συμπληρώνω στην φόρμα να περνάνε αυτόματα σε ένα άλλο φύλλο και έτσι να δημιουργείται το πελατολόγιο. Πάνω κάτω έχω βρεί πως να πέρναω ενα δεδομένο αλλά εγω θέλω να περνάνε όλα τα στοιχεία της φόρμας και φυσικά να αποθηκεύονται μιας και η φόρμα ανανεώνετε συνέχεια. |
1 Συνημμένο(α) Σωτήρη καλώς όρισες στο ms-office.gr Έστω λοιπόν, ότι το θέμα: http://www.ms-office.gr/forum/excel-...-se-forma.html είναι παρόμοιο με το ζητούμενό σου. Αν έχεις μια φόρμα, της μορφής (βλέπε εικόνα) τότε: Θα χρησιμοποιήσεις ένα κελί, πχ C2, ως «κουμπί» και θα εκτελεί κώδικα, με διπλό κλικ επάνω του. Στο φύλλο της φόρμας, θα αντιγράψεις τον κώδικα: Κώδικας: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Πήγαινε στο πελατολόγιο, και βάλε στο Κ2 το κελί που έχει την διεύθυνση του πελάτη (φόρμα) Θα επαναλάβεις όσες φορές χρειάζεσαι την γραμμή. Για όσα δηλαδή κελιά θέλεις να μεταφερθούν. Προσέχεις τα εξής: Όπου Sh2. θα βάλεις το κωδικό όνομα του πραγματικού φύλλου πελατολόγιο. Το πρώτο μέρος της ισότητας είναι ο προορισμός. Το δεύτερο η αφετηρία. Στις παρενθέσεις, πρώτα γραμμή μετά στήλη (πχ 2,4 = κελίD2) Το Offset, κατά τα γνωστά από το κελί C2 προς το κελί αφετηρία Τέλος πολύ σημαντικό αφού δεις τι κάνει ο κώδικας μεταφέροντας μια ολόκληρη γραμμή στην θέση της θα πρέπει να αλλάξεις τους αριθμούς γραμμών του προορισμού με μια μεταβλητή που θα βρίσκει την πρώτη κενή γραμμή στο πελατολόγιο. |
Σε ευχαριστώ για την απάντηση με βοήθησε να το καταλάβω. Η συνάρτηση που μου είπατε για αλλαγή γραμμής ποια είναι? |
Αφού λοιπόν, «έχουμε» τον μηχανισμό, θα βάλεις την έκφραση (όχι συνάρτηση): Dim NextRow As Long NextRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Η έκφραση αυτή, «δίνει» στην μεταβλητή NextRow, την πρώτη διαθέσιμη κενή γραμμή. Θα πρέπει να την βάλεις στον κώδικα, πριν γίνει χρήση του NextRow. Αν δεν συντρέχουν άλλοι λόγοι, μπορεί να μπεί αμέσως μετά το Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Όπου: Sheet1 = κωδικό όνομα φύλλου (πελατολόγιο) Rows.Count, 1 = το 1 είναι η στήλη Α. Θα το αλλάξεις, με πραγματική στήλη η οποία θα έχει πάντα τις απαιτούμενες γραμμές, για να σε καλύπτει. |
| Η ώρα είναι 20:55. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.