Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Εκχώρηση τιμής πεδίου φόρμας στο φύλλο

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-04-12, 10:39
Το avatar του χρήστη JSARAK2001
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-04-2012
Περιοχή: ΚΑΛΑΜΑΤΑ
Μηνύματα: 49
Προεπιλογή Εκχώρηση τιμής πεδίου φόρμας στο φύλλο

Πως γίνεται να δημιουργηθεί μια απλή φόρμα και κάθε πεδίο που συμπληρώνεται από έναν χρήστη να γράφετε στο "Φύλλο1" το οποίο στη συνέχεια θα εκτυπώνεται.

Απλή ερώτηση αλλά νομίζω λειτουργική και πρακτικά χρήσιμη.

Όταν ανοίξετε το συνημμένο αρχείο θα καταλάβετε
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm ΗΛΕΚΤΡΟΝΙΚΗ ΦΟΡΜΑ ΑΔΕΙΑΣ.xlsm (31,3 KB, 43 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 18-04-12, 11:40
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.006
Προεπιλογή

Αγαπητέ Ιωάννη καλημέρα!

Όρισε ένα όνομα σε κάθε κελί του φύλλου που θα πάρει την τιμή του από το αντίστοιχο πεδίο της φόρμας.
Για παράδειγμα το κελί B3 όρισε το όνομα Surname, στο κελί B4 το όνομα sName, στο κελί B5 το όνομα FName κοκ.

Κατόπιν στη φόρμα, στην ιδιότητα ControlSource των πεδίων κειμένου, πέρασε τα ονόματα που έχεις ορίσει στα αντίστοιχα κελιά του φύλλου.

Με τη μέθοδο αυτή τα πεδία θα εμφανίζουν αλλά και θα τροποποιούν τα περιεχόμενα των κελιών.

Αφού ορίσεις την περιοχή εκτύπωσης στο φύλλο Φύλλο1, πέρασε τον παρακάτω κώδικα στη φόρμα για εκτύπωση και προεπισκόπηση εκτύπωσης:

Κώδικας:
Private Sub CommandButton1_Click()
    Dim shname As String
    shname = Range(TextBox1.ControlSource).Parent.Name
    If shname <> vbNullString Then
        Sheets(shname).PrintOut
    End If
End Sub

Private Sub CommandButton2_Click()
    Dim shname As String
    shname = Range(TextBox1.ControlSource).Parent.Name
    If shname <> vbNullString Then
        Me.Hide
        Sheets(shname).PrintPreview
        Me.Show
    End If
End Sub
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word
Απάντηση με παράθεση
  #3  
Παλιά 19-04-12, 13:33
Το avatar του χρήστη JSARAK2001
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-04-2012
Περιοχή: ΚΑΛΑΜΑΤΑ
Μηνύματα: 49
Προεπιλογή

Ένα ΩΩΩΩΩΩΩΩΩΩΩΩ!!!!! μεγάλο και ένα μεγάλο ευχαριστώ!! Πολύτιμη η βοήθεια!!!!
Βέβαια καταλαβαίνω ότι λείπουν πολλά ακόμα προκειμένου να ελέγχεται πιο αποτελεσματικά η φόρμα.
Κι αυτό όμως είναι σημαντικό.
Επίσης αν μπορούσατε να μου υποδείξετε με ποιον τρόπο θα μπορούσα να ελέγξω τα checkbox.
Δηλαδή όταν "τσεκαριστεί" το "μόνιμος" να μην μπορεί να τσεκαριστεί κάποιο άλλο στην "ομάδα".
Και πάλι ευχαριστώ κι αν επιτρέπεται να σας λέω την εξέλιξή της. Γιατί όπως καταλαβαίνετε το κάνω ως άσκηση, αλλά αν ολοκληρωθεί θα διαδοθεί στην υπηρεσία μου.
Ευχαριστώ
Απάντηση με παράθεση
  #4  
Παλιά 19-04-12, 14:50
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.006
Προεπιλογή

Καλησπέρα σε όλους!

Ιωάννη,

αντί για CheckBox χρησιμοποίησε στοιχεία OptionButton που θα τα τοποθετείς σε ενα πλαίσιο ομαδοποίησης ( Frame ) για να λειτουργούν σαν ομάδα.

Τα στοιχεία OptionButton που βρίσκονται στην ίδια ομαδοποίηση επιτρέπουν την επιλογή μόνο ενός στοιχείου από την ομάδα.

Αυτό σημαίνει ότι θα πρέπει να δημιουργήσεις περισσότερες ομαδοποιήσεις στοιχείων OptionButton (μια για κάθε κατηγορία εναλλαγών) στη φόρμα σου.

Παράδειγμα για την Σχέση εργασίας: στα ΣΤΟΙΧΕΙΑ ΥΠΗΡΕΣΙΑΣ (εκεί υπάρχει ήδη πλαίσιο ομαδοποίησης):

Όρισε 3 ονόματα:
enploymentType1,
enploymentType2,
enploymentType3

στα κελιά M1:M3 ένα για κάθε κελί.
Πέρασε σε αυτά τα 3 κελιά την τιμή FALSE (για μια και μοναδική φορά).

Κατόπιν στα κελιά N1:N3 πέρασε τις τιμές
Μόνιμος
Αορίστου
Ορισμένου


Στο κελί B10 γράψε τον τύπο: =INDEX(N1:N3;MATCH(TRUE;M1:M3;))

Εφόσον έχεις περάσει τον παραπάνω τύπο, μπορείς να μετακινήσεις την περιοχή M1:Ν3 σέ αλλο σημείο του φύλλου ή και να την αποκρύψεις αν χρειαστεί.

Τώρα στη φόρμα:

Αντικατέστησε τα 3 CheckBox (Μόνιμος, Αορίστου, Ορισμένου) με 3 OptionButton.

Αυτά τα 3 OptionButton είναι ήδη ομαδοποιημένα αφου βρίσκονται μέσα στο πλαίσιο Frame1.


Πέρασε στην ιδιότητα ControlSource των στοιχείων OptionButton τα αντίστοιχα ονόματα
που έχεις ορίσει στο φύλλο ( enploymentType1, enploymentType2, enploymentType3).

Καλή συνέχεια!


Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word
Απάντηση με παράθεση
  #5  
Παλιά 19-04-12, 16:03
Όνομα: ΤΖΙΜΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-02-2011
Περιοχή: Πύργος Ηλείας
Μηνύματα: 232
Προεπιλογή

Γιάννη αν μπορείς ανέβασέτο και σε 2003 να το δούμε.
Απάντηση με παράθεση
  #6  
Παλιά 19-04-12, 21:16
Το avatar του χρήστη JSARAK2001
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-04-2012
Περιοχή: ΚΑΛΑΜΑΤΑ
Μηνύματα: 49
Προεπιλογή ΦΟΡΜΑ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ (ΔΙΑΦΟΡΑ ΧΡΗΣΙΜΑ)

Ευχαριστώ πολύ για την πολυτιμότατη βοήθεια. Όλα αυτά θα τα εφαρμόσω και φυσικά θα το μετατρέψω και σε 2003 για όλους που θέλουν να την δουν.

Νομίζω ότι έτσι σιγά σιγά αποκτούμε πολλές γνώσεις.

Ελπίζω και ο Σπύρος να παρακολουθεί.

Ευχαριστώ παιδιά και αύριο αφού την προχωρήσω θα την ανεβάσω.
Απάντηση με παράθεση
  #7  
Παλιά 19-04-12, 21:27
Το avatar του χρήστη JSARAK2001
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-04-2012
Περιοχή: ΚΑΛΑΜΑΤΑ
Μηνύματα: 49
Προεπιλογή ΦΟΡΜΑ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ (ΔΙΑΦΟΡΑ ΧΡΗΣΙΜΑ)

Tasos
_______

Τάσο και κάτι άλλο σχετικά με τις τρεις επιλογές.
Είχα κάνει τη σκέψη να φτιάξω μια ρουτίνα με την CASE
Δεν ξέρω αν θα δούλευε! Απλά σκεφτόμουν ότι:

- Αν το πρώτο chechbox ----> τσεκαριζόταν ----> να πήγαινε έξω από την ρουτίνα
- Αν αφηνόταν κενό ----> να ελεγχόταν το δεύτερο

- αν τσεκαριζόταν -------> να πήγαινε έξω από την ρουτίνα

αν αφηνόταν κενό-----> να πήγαινε στο τρίτο
κοκ.

Δεν ξέρω αν η CASE θα βοηθούσε με αυτό τον τρόπο δεν την έχω δουλέψει.

Αλλά τελικά θα κάνω ListBox νομίζω είναι καλύτερη η λύση που προτείνεις.
Ευχαριστώ
Απάντηση με παράθεση
  #8  
Παλιά 19-04-12, 21:32
Το avatar του χρήστη JSARAK2001
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 13-04-2012
Περιοχή: ΚΑΛΑΜΑΤΑ
Μηνύματα: 49
Προεπιλογή ΦΟΡΜΑ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ (ΔΙΑΦΟΡΑ ΧΡΗΣΙΜΑ)

Αλλά τελικά θα κάνω OptionBox , νομίζω είναι καλύτερη η λύση που προτείνεις.
Ευχαριστώ
Απάντηση με παράθεση
  #9  
Παλιά 19-04-12, 23:03
Όνομα: Θανάσης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2012
Μηνύματα: 234
Προεπιλογή

Καλησπέρα
σε όλους
Ιωάννη κοίτα το συνημμένο με λίγες αλλαγές που κρατά και αρχείο για τις άδειες και τους υπαλλήλους, με λίγα μικρά προβλήματα που θέλουν πιθανές διορθώσεις
Θανάσης
Συνημμένα Αρχεία
Τύπος Αρχείου: xls ΗΛΕΚΤΡΟΝΙΚΗ ΦΟΡΜΑ ΑΔΕΙΑΣ.xls (113,0 KB, 70 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 20-04-12, 08:06
Όνομα: Θανάσης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2012
Μηνύματα: 234
Προεπιλογή Αδειες φόρμα

Καλημέρα σε όλους
διευκρινήσεις για το πρόγραμμα που έχω ανεβάσει , 1ο για να κάνεις νέα εγγραφή πρέπει το cbox επιλογή υπαλλήλου να είναι κενό , διαφορετικά κάνει διόρθωση στη τρέχουσα εγγραφή, 2ο οι ημέρες αδείας εισάγονται στο txtbox κατω απο το σύνολο αδειών ως αριθμός η ημερομηνια εως υπολογίζεται αθροιστικά, για διαγραφές γίνονται στα Φύλλα το data και παραμ εδώ τα δεδομένα είναι σε λίστες, και 3ο πάνω στη φόρμα εμφανίζονται σε λίστα οι ημέρες αδείας για κάθε κατηγορία ξεχωριστά και 4ο μου δόθηκε η ευκαιρία να ξαναθυμηθώ τις εντολές πάνω σε φόρμες. Οποιδήποτε τροποποίηση δεκτή .
θανασης
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Αντιγραφή της τιμής πεδίου Ηλίας Σκα Access - Ερωτήσεις / Απαντήσεις 3 08-04-13 13:06
Ενημέρωση Πεδίου Δευτερεύουσας Φόρμας μέσω Βοηθητικής Φόρμας Χρήστος Access - Ερωτήσεις / Απαντήσεις 1 17-04-12 19:18
Απόδοση τιμής Υπολογιζόμενου Πεδίου σε πεδίο πίνακα. foxone Access - Ερωτήσεις / Απαντήσεις 6 14-10-11 11:32
Διατήρηση τιμής αριθμητικού πεδίου σε φόρμα καταχώρησης pnikolareas Access - Ερωτήσεις / Απαντήσεις 2 26-09-11 11:48
[ Φόρμες ] Επιλογή αναφοράς ανάλογα τιμής πεδίου serviceman Access - Ερωτήσεις / Απαντήσεις 15 23-05-10 01:07


Η ώρα είναι 15:24.