| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλημέρα, Έχω το συνημμένο αρχείο και προσπαθώ να δημιουργήσω φόρμες αλλά τυγχάνω άσχετος. Έχω 2 ερωτήσεις. 1.Ποιά εντολή πρέπει να δώσω ώστε μετά το πάτημα του οκ να αποθηκεύονται μεν τα δεδομένα εκεί που έχω ορίσει αλλά και να καθαρίζει η φόρμα για νέα συμπλήρωση και τα δεδομένα να καταχωρούνται στη δεύτερη γραμμή. 2.Πως μπορώ να δημιουργήσω σύνδεση ενός κελιού με μακροεντολή? Δηλαδή πατώντας ο χρήστης πάνω σε ένα κελί να ανοίγει η φόρμα? Ευχαριστώ εκ των προτέρων |
|
#2
|
|
Καλημέρα Για το ζητούμενο χρειάζονται δύο κώδικες: Θεωρείται, ότι η γραμμή 1 του φύλλου, περιέχει κεφαλίδες. Ο πρώτος κώδικας μπαίνει στο φύλλο και ενεργοποιήται αν επιλέξουμε το πρώτο διαθέσιμο κενό κελί στην στήλη Α. Υπάρχουν και κάποιοι έλεγχοι, ώστε να μην «τρέχει» αν δεν επιλέξουμε το συγκεκριμένο κελί και μόνο. Κώδικας: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lr As Long
If Target.Column <> 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
Lr = Cells(Rows.Count, 1).End(xlUp).Row + 1
If UserForm1.Visible = True Then
Exit Sub
Else
If Target.Row = Lr Then UserForm1.Show
End If
End Sub
τα περιεχόμενα των text-boxes 1 και 2 στα κατάλληλα κελιά των στηλών Α και Β. Ταυτόχρονα, «καθαρίζει» τα text-boxes 1 και 2 και επιλέγει το επόμενο, κενό κελί. Κώδικας: Private Sub CommandButton1_Click()
Dim Lr As Long
Lr = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(Lr, 1).Value = TextBox1.Value
Cells(Lr, 2).Value = TextBox2.Value
TextBox1.Value = ""
TextBox2.Value = ""
TextBox1.SetFocus
Cells(Lr + 1, 1).Activate
End Sub
1 Οι κώδικες είναι παραδειγματικοί και θα πρέπει, να προσαρμοστούν στο ζητούμενο (αποτέλεσμα) του κάθε χρήστη, αν οι συγκεκριμένες λειτουργίες, δεν καλύπτουν το 100% του αποτελέσματος. 2 Στις ιδιότητες της φόρμας, έχει επιτραπεί η επιλογή κελιών, ενώ η φόρμα είναι «ανοιχτή». Παρατηρήσεις: 1 Το αυτοματοποιημένο άνοιγμα της φόρμας, για πολλούς λόγους ένας εκ των οποίων είναι το Undo, ίσως θα έπρεπε να μην υπάρχει και να γίνεται με κουμπί. 2 Επειδή, δεν διευκρινίζεται το περιεχόμενο των text-boxes, ίσως θα έπρεπε να υπάρχει μια μικρή διόρθωση αν είναι κείμενα, ακαίρεοι, δεκαδικοί, ημερομηνίες κλπ. 3 Επιλογή και διόρθωση, ήδη «γεμάτων» κελιών δεν υποστηρίζεται, μέσω φόρμας, αφού δεν ζητήθηκε. Τελευταία επεξεργασία από το χρήστη Spirosgr : 31-05-15 στις 11:23. |
|
#3
| |||
| |||
|
Ευχαριστώ για την άμεση απάντηση, Το δεύτερο δουλεύει μια χαρά αλλά το πρώτο για να είμαι ειλικρινής δεν το κατάλαβα καθότι άσχετος. Πως θα μπεί ο πρώτος κώδικας στο φύλλο? |
|
#4
|
|
Στο κάτω μέρος της εφαρμογής, υπάρχουν οι εττικέτες των φύλλων. Εκεί δηλ. που γράφουμε την ονομασία τους. Στο φύλλο που θέλουμε να «περάσουμε» ένα κώδικα, (συμβάν), κάνουμε δεξί κλικ και στο menu, επιλέγουμε «Προβολή κώδικα». Στον «χώρο» που ανοίγει, βάζουμε τον κώδικα που θέλουμε. Να επισημάνω και πάλι, ότι δεν θα έχεις Undo και καλύτερα, να χρησιμοποιήσεις κουμπί, στην εμφάνιση της φόρμας. |
|
#5
| |||
| |||
|
Ευχαριστώ Σπύρο για τις κατατοπιστικές απαντήσεις. Αυτό με το undo δεν το κατάλαβα. |
|
#6
|
|
Από την στιγμή που θα τρέξει ο κώδικας (τρέχει σε κάθε επιλογή - κλικ) δεν υπάρχει επιστροφή, σε καμία προηγούμενη ενέργεια. |
|
#7
| |||
| |||
|
Και μια τελευταία ερώτηση : Παράδειγμα : Στο πρώτο φύλλο θέλω όταν κάνω κλικ πχ στο A1 να ανοίγει το userform που έχω βάλει στο φύλλο2,και αντίστοιχα κλικ στο A2 του πρώτου φύλλου πάλι, να ανοίγει το userform του φύλλου3 |
|
#8
|
|
Οι φόρμες, δεν ανοίκουν αποκλειστικά σε κάποιο φύλλο. Μπορούμε να ανοίξουμε μια φόρμα, όποτε θέλουμε και πολλές με όποια σειρά θέλουμε. Οι παραπάνω κώδικες, δείχνουν την διαδικασία. Αντοιστιχίζουμε, στο όποιο φύλλο, όποια φόρμα θέλουμε. |
|
#9
| |||
| |||
|
Ευχαριστώ, Μπορείς να μου δώσεις μια λύση στο παράδειγμα που παράθεσα παραπάνω? |
|
#10
|
|
Καλημέρα Η απάντηση στο post #8, είναι σαφής. Μπορείς να ανοίγεις, από όποιο φύλλο θέλεις, όποια φόρμα θέλεις ως εξής: Παράδειγμα: Έχεις, 5 φύλλα και 3 φόρμες. Θέλεις, από το φύλλο1, να ανοίγει η UserForm2 από το φύλλο3, να ανοίγει η UserForm3 από το φύλλο5, να ανοίγει η UserForm1 Βάλε στα φύλλα, τον πρώτο κώδικα αντικαθιστόντας, το UserForm1 του παραδείγματος, με την φόρμα που θέλεις να ανοίγει από το συγκεκριμένο φύλλο. Μετά σε κάθε κουμπί φόρμας, βάζουμε τον δεύτερο κώδικα. Σημείωση: Το αρχικό ερώτημα, δεν έκανε λόγο για πολλές φόρμες. Η εκτέλεση ενός κώδικα, μπορεί να είναι «απλό» πράγμα. Η σωστή και ασφαλής λειτουργία, είναι «άλλο» κεφάλαιο. Κανονικά, θα πρέπει να ξέρει κανείς, πόσες φόρμες θα ανοίγουν, από που, να φτιάξει μοναδικά τις μεταβλητές όπου χρειάζεται, να ονομάσει μοναδικά τα Textboxes και κάποια άλλα πράγματα, που δεν είναι εύκολο να αναλυθούν εδώ. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Δημιουργία φόρμας αναζήτησης | Dimitriss | Access - Ερωτήσεις / Απαντήσεις | 10 | 15-12-15 18:51 |
| Δημιουργια φορμας πελατων. | shaft23 | Access - Ερωτήσεις / Απαντήσεις | 2 | 22-03-15 19:46 |
| Δημιουργία φόρμας - πίνακα | aristarchosel | Access - Ερωτήσεις / Απαντήσεις | 3 | 09-10-14 13:51 |
| [VBA] ΔΗΜΙΟΥΡΓΙΑ ΦΟΡΜΑΣ | nakosg | Excel - Ερωτήσεις / Απαντήσεις | 6 | 03-08-12 14:22 |
| Δημιουργία απλής φόρμας παραγγελίας | vaios84 | Access - Ερωτήσεις / Απαντήσεις | 4 | 27-04-12 14:28 |
Η ώρα είναι 12:49.


Υβριδικός τρόπος

